Contract 0xeC0d0f2D7dDF5e6F1Ed18711fE5DD5C790E1C4d6 1

Contract Overview

Balance:
0 CRO

CRO Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x04973c3a9cd5005646b3847d7f2de6eb2bd1b749ca94f95e3441321a15f5ab8dApprove40775452022-08-09 8:11:515 hrs 28 mins ago0xc3261326f838fc2e10fbe5d8a0359920e11c0605 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2192127165210
0xd489809502c09be8abad9c9de508a0d8546d03cd4886a69d65fbe1de766bf2a1Approve40767002022-08-09 6:51:576 hrs 47 mins ago0xefb6e5f23d30ee9f0a5330d0a4d70a8e4354edc4 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.219280929837 4,945.88889023
0x76372b728784e86cc4ec93f10f5be8545f633906a30ddeb617a3ea59d998e6afApprove40738732022-08-09 2:25:0411 hrs 14 mins ago0x3a2b576ef1884f10c4b18c06d55e7c07fde4ec12 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.124323129892 4,946.018853141
0x829071a9e1bbf1ecabf6451b9623802394d087cfd0955770319d90542e9a5bd1Approve40738712022-08-09 2:24:5311 hrs 14 mins ago0x3a2b576ef1884f10c4b18c06d55e7c07fde4ec12 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.219286695931 4,946.018944693
0xfa597fb8dee714b6b88af58bcdf93cc209420ba9b37cac96e32c9000770fbfe4Approve40708652022-08-08 21:41:1315 hrs 58 mins ago0x22a7f193c8125bad22103dd89e45d289ce2e0ccf IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2192263451170
0x89ec0ec9c33e003989ad03b573c0c23dc0da8f8e410c89a538a8b11983b7a892Approve40620692022-08-08 7:45:501 day 5 hrs ago0x69907954d7118dcc971dd2f90a16a9c94f831ce3 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2192435378280
0xb2d96aad1463c85679c236de842448b23d2c475b1fbdf6b60d60a87864fbecb3Transfer Ownersh...40612022022-08-08 6:23:521 day 7 hrs ago0x13a8c79f57c6dfcd3b745ea4391065d1f22c2853 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.175862994072 4,946.084882223
0x442fbd79456b13e7c4400bf312eb0bb5421e4c2e8aa7538256c301129ec24cbbApprove40590292022-08-08 2:58:561 day 10 hrs ago0x5aeb0ee4b2a68848444176bd3e522810a224e35a IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2192497528330
0x804cf165dcd7065f8c0e1d72da22bddf23511ce18ef0acbe1cf12fcd1d0f3bd2Transfer40529812022-08-07 17:27:561 day 20 hrs ago0xbfc13bef7b634a9781d52e10c7186216e856d351 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO2.647317463953 4,946.962409749
0x55ef64fbb27f096078daa10b8c2a69380cc947f5771128dcda36ab4a0cbde99aTransfer40529602022-08-07 17:25:551 day 20 hrs ago0xe8ffea0e4bd040edc335e72b6218a9e54539c8b9 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO3.294286780093 4,946.963348645
0xe2ead922d7839912035fda351d7154ade71b332d18435e560015979e83a8584eApprove40520542022-08-07 16:00:221 day 21 hrs ago0x3861525aa9b505419d3a7c38e4e620e4c709fb42 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2192638670860
0x47e59fe3c0e3863c9ad6fc582ca822214919b9f98cd552ef6ffe0798a5666352Approve40516822022-08-07 15:25:111 day 22 hrs ago0x61d07ba641dec0b2e1457c16989b7815e34be2e4 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.219372120851 4,947.94570668
0xae345b700a18f83288b9542649601a06fa84672166544bd222248ab46c3ba0e7Approve40428072022-08-07 1:27:252 days 12 hrs ago0x095d4682314c5ec8a4549d1f35e5a61a8119d339 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2192828108480
0xd7661250ddcd2f954fef5ec31c128a2a8743437e99ee78401afe22d10b659e9dApprove40378482022-08-06 17:39:162 days 20 hrs ago0xc43e27824e7355274efa8409d3eac9d1fbe58026 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.219359279727 4,947.656074691
0x11d72fc12ad56601531306380c5d4a0271f7ee8a2d2b3a4d91652bc187c3aaa9Transfer40280942022-08-06 2:18:123 days 11 hrs ago0x54cf3ca422be962e22284e9fa4b0bc1643434957 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.9893202402040
0x28b7c040c102f6b6d3d297233423ce489a5234b68e5ee13971ea1743b0879cfdApprove40193382022-08-05 12:31:194 days 1 hr ago0xae1f627810b7bb10ad4db8a64c2d851d7dfae771 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2193302519690
0xba5b9fe362863828d1747c76c3d11e17c028e383fb8a04fbdf8b4814d670c445Approve40138192022-08-05 3:50:274 days 9 hrs ago0xf60fd90fc72e1eb4d2054a24f5dcf7658f166eda IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.221724336 5,001
0x63950506ab7c4606e5fc1c698ecb301c7c7f7bdbfbe0f901f0e973c1347fe540Approve40123572022-08-05 1:32:374 days 12 hrs ago0xa56fc1f7ca2161978e5b54df5a8cc895ca61e1a1 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2193445357470
0x09d8933054d4aa991ddcf5e52679bbfb3cc0d2ee6dc17daf23735117da6e2291Approve40108332022-08-04 23:08:574 days 14 hrs ago0x9ba5fa4a53a6811518351052afb9d2068469d1e0 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2193476773660
0xe801775fbb0a244a1bb53f29122a670acf1b42aa16f8f085fd40be10d7a8832eApprove40077372022-08-04 18:16:354 days 19 hrs ago0xf7713e45ed69ca05f7fab452ac079031aa5234e5 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2193540098410
0xad529aefc5f949881b8e07a55b4b86f62e236a3911b252ec8443947dd5efcd75Approve39991912022-08-04 4:48:415 days 8 hrs ago0x29791c98350d81786540194404714b406e880325 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.1146037917920
0x773654f7d26dc1053572fe4c3e85f2f77dae70a53140544998b78a9f0d1d8476Approve39974792022-08-04 2:07:015 days 11 hrs ago0xa6b43f11d5a8a95be0d016f28f8a633f2058e87c IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2193745897810
0xf294eb28b89a713c74c9340213fdc4fe384d432ee6d27b19233a2b7ccf0c4d8eApprove39973522022-08-04 1:55:025 days 11 hrs ago0x05704caa4e9411592bdab0a70eebf3e7fe9dd037 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.219441341546 4,949.506981825
0x7686e27b0e202309209eccbf6bc321ea9b65406c65657bfdd71d2d8ae360d03eApprove39908022022-08-03 15:34:465 days 22 hrs ago0xc16d29e64c2fd50ed294c6d3881fff21e4a61c64 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.2193877807870
0x50726cdea750983566ab442095521d0a1cf8b0ee8dedf696d616ef63d384c07eApprove39898882022-08-03 14:07:475 days 23 hrs ago0xaf973cce620cf71838eedd3eb08f809f0782c613 IN  0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60 CRO0.219456017519 4,949.837998909
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1c95e92e651e3a3f829e867e164f1358a4d901833160dffc809ee1d4e5b75b3c40783692022-08-09 9:30:174 hrs 9 mins ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be31.474205444764148065 CRO
0x1c95e92e651e3a3f829e867e164f1358a4d901833160dffc809ee1d4e5b75b3c40783692022-08-09 9:30:174 hrs 9 mins ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60xc0f774b82dc60dd096e5414fd3797d5e7cd4cd3620.982803629842765377 CRO
0x1c95e92e651e3a3f829e867e164f1358a4d901833160dffc809ee1d4e5b75b3c40783692022-08-09 9:30:174 hrs 9 mins ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec3b7b79f069f1a29c2e1413403a030e34dfce4962.94841088952829613 CRO
0x1c95e92e651e3a3f829e867e164f1358a4d901833160dffc809ee1d4e5b75b3c40783692022-08-09 9:30:174 hrs 9 mins ago 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6115.405419964135209572 CRO
0x272aaa6adc92bcbd3894bf20b4a22033147196d032a16fa0223e83d290754e5a40706372022-08-08 21:19:4116 hrs 20 mins ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be170.226971627046632581 CRO
0x272aaa6adc92bcbd3894bf20b4a22033147196d032a16fa0223e83d290754e5a40706372022-08-08 21:19:4116 hrs 20 mins ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60xc0f774b82dc60dd096e5414fd3797d5e7cd4cd36113.484647751364421722 CRO
0x272aaa6adc92bcbd3894bf20b4a22033147196d032a16fa0223e83d290754e5a40706372022-08-08 21:19:4116 hrs 20 mins ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec3b7b79f069f1a29c2e1413403a030e34dfce49340.453943254093265162 CRO
0x272aaa6adc92bcbd3894bf20b4a22033147196d032a16fa0223e83d290754e5a40706372022-08-08 21:19:4116 hrs 20 mins ago 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6624.165562632504319465 CRO
0x4fac88b28eee2f57a15562b8b727b3f0fb8a0c3df671bd645fb74411a997212340590372022-08-08 2:59:411 day 10 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be43.215156403142774878 CRO
0x4fac88b28eee2f57a15562b8b727b3f0fb8a0c3df671bd645fb74411a997212340590372022-08-08 2:59:411 day 10 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60xc0f774b82dc60dd096e5414fd3797d5e7cd4cd3628.81010426876184992 CRO
0x4fac88b28eee2f57a15562b8b727b3f0fb8a0c3df671bd645fb74411a997212340590372022-08-08 2:59:411 day 10 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec3b7b79f069f1a29c2e1413403a030e34dfce4986.430312806285549756 CRO
0x4fac88b28eee2f57a15562b8b727b3f0fb8a0c3df671bd645fb74411a997212340590372022-08-08 2:59:411 day 10 hrs ago 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6158.455573478190174554 CRO
0xa32bb2df9042a5df417e236655beada5f3e766a023cd2177dcc791e0d37b3e0240524332022-08-07 16:36:121 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be61.695552986330585344 CRO
0xa32bb2df9042a5df417e236655beada5f3e766a023cd2177dcc791e0d37b3e0240524332022-08-07 16:36:121 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60xc0f774b82dc60dd096e5414fd3797d5e7cd4cd3641.130368657553723564 CRO
0xa32bb2df9042a5df417e236655beada5f3e766a023cd2177dcc791e0d37b3e0240524332022-08-07 16:36:121 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec3b7b79f069f1a29c2e1413403a030e34dfce49123.391105972661170688 CRO
0xa32bb2df9042a5df417e236655beada5f3e766a023cd2177dcc791e0d37b3e0240524332022-08-07 16:36:121 day 21 hrs ago 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6226.217027616545479596 CRO
0x07550527d306d6b002fd79011df93e0338690d80837335314c5f71d8c2342ff940524202022-08-07 16:34:581 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be61.695552986330585344 CRO
0x07550527d306d6b002fd79011df93e0338690d80837335314c5f71d8c2342ff940524202022-08-07 16:34:581 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60xc0f774b82dc60dd096e5414fd3797d5e7cd4cd3641.130368657553723564 CRO
0x07550527d306d6b002fd79011df93e0338690d80837335314c5f71d8c2342ff940524202022-08-07 16:34:581 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec3b7b79f069f1a29c2e1413403a030e34dfce49123.391105972661170688 CRO
0x07550527d306d6b002fd79011df93e0338690d80837335314c5f71d8c2342ff940524202022-08-07 16:34:581 day 21 hrs ago 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6226.217027616545479596 CRO
0x63017944ddb5039734037ea831120d1075a837981fa7230ed9cd9d934245201e40524172022-08-07 16:34:411 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be22.4870728641388706 CRO
0x63017944ddb5039734037ea831120d1075a837981fa7230ed9cd9d934245201e40524172022-08-07 16:34:411 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d60xc0f774b82dc60dd096e5414fd3797d5e7cd4cd3614.991381909425913735 CRO
0x63017944ddb5039734037ea831120d1075a837981fa7230ed9cd9d934245201e40524172022-08-07 16:34:411 day 21 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec3b7b79f069f1a29c2e1413403a030e34dfce4944.974145728277741201 CRO
0x63017944ddb5039734037ea831120d1075a837981fa7230ed9cd9d934245201e40524172022-08-07 16:34:411 day 21 hrs ago 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d682.452600501842525536 CRO
0xe98b5474df61ae527442278a3a77de98cfcc71d28641ddba9bf9ca4dbb2b2e5040451822022-08-07 5:11:302 days 8 hrs ago 0xec0d0f2d7ddf5e6f1ed18711fe5dd5c790e1c4d6 0xec0a7a0c2439e8cb67b992b12ecd020ea943c7be33.029153329888302677 CRO
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GDRTOKEN

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-06-28
*/

//SPDX-License-Identifier: Unlicensed

pragma solidity ^0.7.4;

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) { return 0; }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {

    using SafeMath for uint256;
    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IDEXRouter router;
    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 1 hours;
    uint256 public minDistribution = 2500000000 * (10**18);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (IDEXRouter _router) {
        router = _router;
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken
    {
        totalDividends = totalDividends.add(msg.value);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(msg.value).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            (bool success, ) = payable(shareholder).call{value: amount, gas: 30000}("");
            success = false;
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {

        require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

contract GDRTOKEN is IBEP20, Auth {
    
    using SafeMath for uint256;

    string constant _name = "GDRTOKEN";
    string constant _symbol = "GDRT";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0xeC0A7a0C2439E8Cb67b992b12ecd020Ea943c7Be; //CroDex router

    uint256 _totalSupply = 1000000000000000 * (10 ** _decimals);

    bool public tradingIsEnabled = false; 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isDividendExempt;
    mapping (address => bool) private _reducedFeesFor;
	mapping (address => bool) public isVested;

    uint256 public CroRewardsFee = 30;
    uint256 public developmentFee    = 10; 
    uint256 public liquidityFee  = 30;
    uint256 public totalFees     = CroRewardsFee + developmentFee + liquidityFee;
    uint256 public feeDenominator = 1000;
    uint256 public reducedFeePercentage = 0;

    address public devWallet = 0xc0f774b82dC60dD096E5414fd3797D5e7cD4cD36;

    IDEXRouter public router;
    address public pair;
	
	uint256 public launchedAt;
    uint256 public blocksSinceStart;
	uint256 public lockdays = 180 days;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 500000;

    // max wallet tools
    mapping(address => bool) private _isExcludedFromMaxWallet;
    bool private enableMaxWallet = true;
    uint256 private maxWalletRate = 20;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply / 1000;
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () Auth(msg.sender) {
        
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        dividendDistributor = new DividendDistributor(router);

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[msg.sender] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;

        // exclude from max wallet limit
        _isExcludedFromMaxWallet[msg.sender] = true;
        _isExcludedFromMaxWallet[address(0)] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[DEAD] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function name() external pure override returns (string memory) { return _name; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function getOwner() external view override returns (address) { return owner; }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function enableTrading() external onlyOwner {
        require(!tradingIsEnabled, "Trading is already enabled");
        tradingIsEnabled = true;
    }
	
	function setNewLockDays(uint256 newLockDays) external authorized {
        lockdays = newLockDays * 1 days;
	}
    
    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        
        if(exempt){
            dividendDistributor.setShare(holder, 0);
        }else{
            dividendDistributor.setShare(holder, _balances[holder]);
        }
    }

    function setFeeRates(uint256 _CroRewardsFee, uint256 _liquidityFee, uint256 _developmentFee, uint256 _feeDenominator) public onlyOwner {
            CroRewardsFee = _CroRewardsFee;
            liquidityFee = _liquidityFee;
            developmentFee = _developmentFee;
            totalFees = _CroRewardsFee + _liquidityFee + _developmentFee;
            feeDenominator = _feeDenominator;
            require(totalFees <= _feeDenominator / 4, "max 25%");
    }
	
	function sendAirDropsAndIncludeAutomatically(address[] calldata accounts, uint256[] calldata amount) external onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _balances[msg.sender] -=amount[i] * 10 ** _decimals;
            _balances[accounts[i]] += amount[i] * 10 ** _decimals;
            emit Transfer(msg.sender, accounts[i], amount[i] * 10 ** _decimals);
            dividendDistributor.setShare(accounts[i], amount[i] * 10 ** _decimals);
            isVested[accounts[i]] = true;
        }
    }

    function setDevWallet(address payable wallet) external onlyOwner{
        devWallet = wallet;
    }

    function reduceFeesFor(address account, bool reduce) public onlyOwner {
        require(_reducedFeesFor[account] != reduce, "Account already has reduced fees");
        _reducedFeesFor[account] = reduce;
    }

    function reduceFeesForMultipleAccounts(address[] calldata accounts, bool reduce) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _reducedFeesFor[accounts[i]] = reduce;
        }
    }

    function setReducedFeePercentage(uint256 percentage) public onlyOwner{
        require(percentage < 100);
        reducedFeePercentage = percentage;
    }

    function isReducedFeesFor(address account) public view returns(bool) {
        return _reducedFeesFor[account];
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool) {
        return _isExcludedFromMaxWallet[account];
    }

    function maxWalletAmount() public view returns (uint256) {
        return getCirculatingSupply().mul(maxWalletRate).div(1000);
    }

    function setmaxWalletAmountRateDenominator1000(uint256 _val) public onlyOwner {
        require(_val > 9, "Max wallet percentage cannot be lower than 1%");
        maxWalletRate = _val;
    }

    function setExcludeFromMaxWallet(address account, bool exclude) public onlyOwner {
          _isExcludedFromMaxWallet[account] = exclude;
    }

    function setenableMaxWallet(bool _val) public onlyOwner {
        enableMaxWallet = _val;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external authorized {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
        dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
    }

    function changeDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(tradingIsEnabled || (isFeeExempt[sender] || isFeeExempt[recipient]), "Trading is disabled");
        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        if (enableMaxWallet && maxWalletAmount() > 0) {
            if (
                _isExcludedFromMaxWallet[sender] == false
                && _isExcludedFromMaxWallet[recipient] == false &&
                recipient != pair
            ) {
                uint balance  = balanceOf(recipient);
                require(balance + amount <= maxWalletAmount(), "MaxWallet: Transfer amount exceeds the maxWalletAmount");
            }
        }

		blocksSinceStart = block.number - launchedAt;
		if(isVested[sender] && blocksSinceStart < lockdays){
                revert("Vested wallets cannot send for 180 days");
            }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ 
			swapBack();
		}

        bool takeFee = !inSwapAndLiquify;

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if(isFeeExempt[sender] || isFeeExempt[recipient]) {
            takeFee = false;
        }
        // no fee for wallet to wallet transfers
        if(sender != pair && recipient != pair) {
            takeFee = false;
        }
        
        uint256 finalAmount = amount;

        if(takeFee) {
            finalAmount = takeFees(sender, recipient, amount);
        }

        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try dividendDistributor.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        try dividendDistributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFees(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (recipient == pair) {
            totalFees;
        }

    	uint256 feeAmount = amount.mul(totalFees).div(feeDenominator);

        if (_reducedFeesFor[sender] || 
            _reducedFeesFor[recipient]) {
                feeAmount -= feeAmount.div(100).mul(reducedFeePercentage);
        } 

        if (recipient == pair) {
            totalFees;
        }

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBack() internal lockTheSwap {
        
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFees).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountCRO = address(this).balance;

        uint256 totalCroFee = totalFees.sub(liquidityFee.div(2));
        
        uint256 amountCroLiquidity = amountCRO.mul(liquidityFee).div(totalCroFee).div(2);
        uint256 amountCroReflection = amountCRO.mul(CroRewardsFee).div(totalCroFee);
        uint256 amountCroTeam = amountCRO.sub(amountCroLiquidity).sub(amountCroReflection);

        try dividendDistributor.deposit{value: amountCroReflection}() {} catch {}
                
        if(developmentFee > 0){
            payable(devWallet).transfer(amountCroTeam);
        }

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountCroLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            );
            emit AutoLiquify(amountCroLiquidity, amountToLiquify);
        }
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CroRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blocksSinceStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isReducedFeesFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isVested","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockdays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"reduce","type":"bool"}],"name":"reduceFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"reduce","type":"bool"}],"name":"reduceFeesForMultipleAccounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reducedFeePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"sendAirDropsAndIncludeAutomatically","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_CroRewardsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFeeRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLockDays","type":"uint256"}],"name":"setNewLockDays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setReducedFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setenableMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setmaxWalletAmountRateDenominator1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingIsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380548216905560048054821673ec0a7a0c2439e8cb67b992b12ecd020ea943c7be1790556d314dc6448d9338c15b0a000000006005556006805460ff19908116909155601e600d819055600a600e55600f81905560466010556103e860115560006012556013805490931673c0f774b82dc60dd096e5414fd3797d5e7cd4cd361790925562ed4e006018556207a120601a55601c805490911660011790556014601d55805462ff00001961ff0019909116610100171690556c0c9f2c9cd04674edea40000000601f55348015620000f357600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff191690921790915560048054601480549094166001600160a01b039182161793849055845163c45a015560e01b8152945193169363c45a01559381830193929091829003018186803b1580156200017357600080fd5b505afa15801562000188573d6000803e3d6000fd5b505050506040513d60208110156200019f57600080fd5b5051601454604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b158015620001ee57600080fd5b505afa15801562000203573d6000803e3d6000fd5b505050506040513d60208110156200021a57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200026a57600080fd5b505af11580156200027f573d6000803e3d6000fd5b505050506040513d60208110156200029657600080fd5b5051601580546001600160a01b0319166001600160a01b0392831617905530600090815260086020908152604080832060148054861685529252918290206000199055549051911690620002ea9062000463565b6001600160a01b03909116815260405190819003602001906000f08015801562000318573d6000803e3d6000fd5b50601980546001600160a01b0319166001600160a01b03928316179055336000818152600960209081526040808320805460ff19908116600190811790925530808652838620805483168417905560155488168652600a855283862080548316841790558686528386208054831684179055808652838620805483168417905560028054891687528487208054841685179055600354891687528487208054841685179055878752601b865284872080548416851790557f584f46c60af19681376031579adb04a2416e54ee5505351c2a8435e3766026ea805484168517905590865283862080548316841790555490961684528184208054909616179094556005548383526007825284832081905584519081529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a362000471565b610c65806200304a83390190565b612bc980620004816000396000f3fe60806040526004361061036f5760003560e01c8063760a2e8a116101c6578063af43396c116100f7578063dd62ed3e11610095578063f5e0b2711161006f578063f5e0b27114610cf2578063f708a64f14610d07578063f887ea4014610d42578063fe9fbb8014610d5757610376565b8063dd62ed3e14610c51578063f0b37c0414610c8c578063f2fde38b14610cbf57610376565b8063bad3ea6a116100d1578063bad3ea6a14610bfd578063bf56b37114610c12578063da00097d14610c27578063da391b7a14610c3c57610376565b8063af43396c14610b74578063b2061c5b14610ba0578063b6a5d7de14610bca57610376565b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610ac3578063a9f7864b14610afc578063aa4bde2814610b2c578063aa7cc1f114610b4157610376565b806398118cb414610a84578063a5f3d00314610a99578063a8aa1b3114610aae57610376565b80638a8c523c116101a05780638a8c523c14610a0a5780638ea5220f14610a1f578063929f136014610a3457806395d89b4114610a6f57610376565b8063760a2e8a1461097c57806382972f92146109af578063893d20e8146109d957610376565b8063313ce567116102a0578063479f66d81161023e57806364d42da31161021857806364d42da3146108a0578063658d4b7f146108db5780636dd3d39f1461091657806370a082311461094957610376565b8063479f66d81461082e5780634a74bb0214610858578063571ac8b01461086d57610376565b80633dab52691161027a5780633dab5269146107175780633f4218e0146107495780634355855a1461077c57806346a19c6d146107af57610376565b8063313ce5671461060857806336c41d671461063357806339234e391461070257610376565b80631b0f53271161030d57806327c4ca6d116102e757806327c4ca6d1461055a5780632b112e49146105845780632f54bf6e1461059957806330d2361e146105cc57610376565b80631b0f5327146104cd5780631f53ac02146104e257806323b872dd1461051757610376565b806309c58fcd1161034957806309c58fcd1461047957806313114a9d1461048e578063180b0d7e146104a357806318160ddd146104b857610376565b80630445b6671461037b57806306fdde03146103a2578063095ea7b31461042c57610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d8a565b60408051918252519081900360200190f35b3480156103ae57600080fd5b506103b7610d90565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103f15781810151838201526020016103d9565b50505050905090810190601f16801561041e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043857600080fd5b506104656004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610db2565b604080519115158252519081900360200190f35b34801561048557600080fd5b50610465610e19565b34801561049a57600080fd5b50610390610e22565b3480156104af57600080fd5b50610390610e28565b3480156104c457600080fd5b50610390610e2e565b3480156104d957600080fd5b50610390610e34565b3480156104ee57600080fd5b506105156004803603602081101561050557600080fd5b50356001600160a01b0316610e3a565b005b34801561052357600080fd5b506104656004803603606081101561053a57600080fd5b506001600160a01b03813581169160208101359091169060400135610e9f565b34801561056657600080fd5b506105156004803603602081101561057d57600080fd5b5035610f61565b34801561059057600080fd5b50610390610fe8565b3480156105a557600080fd5b50610465600480360360208110156105bc57600080fd5b50356001600160a01b0316611031565b3480156105d857600080fd5b50610515600480360360808110156105ef57600080fd5b5080359060208101359060408101359060600135611045565b34801561061457600080fd5b5061061d6110ee565b6040805160ff9092168252519081900360200190f35b34801561063f57600080fd5b506105156004803603604081101561065657600080fd5b81019060208101813564010000000081111561067157600080fd5b82018360208201111561068357600080fd5b803590602001918460208302840111640100000000831117156106a557600080fd5b9193909290916020810190356401000000008111156106c357600080fd5b8201836020820111156106d557600080fd5b803590602001918460208302840111640100000000831117156106f757600080fd5b5090925090506110f3565b34801561070e57600080fd5b5061039061133c565b34801561072357600080fd5b506105156004803603604081101561073a57600080fd5b50803515159060200135611342565b34801561075557600080fd5b506104656004803603602081101561076c57600080fd5b50356001600160a01b03166113a8565b34801561078857600080fd5b506104656004803603602081101561079f57600080fd5b50356001600160a01b03166113bd565b3480156107bb57600080fd5b50610515600480360360408110156107d257600080fd5b8101906020810181356401000000008111156107ed57600080fd5b8201836020820111156107ff57600080fd5b8035906020019184602083028401116401000000008311171561082157600080fd5b91935091503515156113d2565b34801561083a57600080fd5b506105156004803603602081101561085157600080fd5b503561146a565b34801561086457600080fd5b506104656114c6565b34801561087957600080fd5b506104656004803603602081101561089057600080fd5b50356001600160a01b03166114d4565b3480156108ac57600080fd5b50610515600480360360408110156108c357600080fd5b506001600160a01b03813516906020013515156114e2565b3480156108e757600080fd5b50610515600480360360408110156108fe57600080fd5b506001600160a01b03813516906020013515156115c4565b34801561092257600080fd5b506104656004803603602081101561093957600080fd5b50356001600160a01b0316611637565b34801561095557600080fd5b506103906004803603602081101561096c57600080fd5b50356001600160a01b0316611655565b34801561098857600080fd5b506104656004803603602081101561099f57600080fd5b50356001600160a01b0316611670565b3480156109bb57600080fd5b50610515600480360360208110156109d257600080fd5b5035611685565b3480156109e557600080fd5b506109ee6116da565b604080516001600160a01b039092168252519081900360200190f35b348015610a1657600080fd5b506105156116e9565b348015610a2b57600080fd5b506109ee611793565b348015610a4057600080fd5b5061051560048036036040811015610a5757600080fd5b506001600160a01b03813516906020013515156117a2565b348015610a7b57600080fd5b506103b7611810565b348015610a9057600080fd5b5061039061182e565b348015610aa557600080fd5b50610390611834565b348015610aba57600080fd5b506109ee61183a565b348015610acf57600080fd5b5061046560048036036040811015610ae657600080fd5b506001600160a01b038135169060200135611849565b348015610b0857600080fd5b5061051560048036036040811015610b1f57600080fd5b5080359060200135611856565b348015610b3857600080fd5b5061039061190e565b348015610b4d57600080fd5b5061046560048036036020811015610b6457600080fd5b50356001600160a01b0316611930565b348015610b8057600080fd5b5061051560048036036020811015610b9757600080fd5b5035151561194e565b348015610bac57600080fd5b5061051560048036036020811015610bc357600080fd5b50356119a4565b348015610bd657600080fd5b5061051560048036036020811015610bed57600080fd5b50356001600160a01b03166119f6565b348015610c0957600080fd5b506109ee611a60565b348015610c1e57600080fd5b50610390611a6f565b348015610c3357600080fd5b50610465611a75565b348015610c4857600080fd5b50610390611a84565b348015610c5d57600080fd5b5061039060048036036040811015610c7457600080fd5b506001600160a01b0381358116916020013516611a8a565b348015610c9857600080fd5b5061051560048036036020811015610caf57600080fd5b50356001600160a01b0316611ab5565b348015610ccb57600080fd5b5061051560048036036020811015610ce257600080fd5b50356001600160a01b0316611b19565b348015610cfe57600080fd5b50610390611bca565b348015610d1357600080fd5b5061051560048036036040811015610d2a57600080fd5b506001600160a01b0381351690602001351515611bd0565b348015610d4e57600080fd5b506109ee611d47565b348015610d6357600080fd5b5061046560048036036020811015610d7a57600080fd5b50356001600160a01b0316611d56565b601f5481565b60408051808201909152600881526723a2292a27a5a2a760c11b602082015290565b3360008181526008602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60065460ff1681565b60105481565b60115481565b60055490565b600d5481565b610e4333611031565b610e7d576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610f4c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610f27918490611d74565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610f57848484611e0b565b90505b9392505050565b610f6a33611031565b610fa4576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60098111610fe35760405162461bcd60e51b815260040180806020018281038252602d815260200180612ac9602d913960400191505060405180910390fd5b601d55565b60035460009061102c90611004906001600160a01b0316611655565b6002546110269061101d906001600160a01b0316611655565b60055490612359565b90612359565b905090565b6000546001600160a01b0390811691161490565b61104e33611031565b611088576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600d849055600f839055600e829055828401820160105560118190556004810460105411156110e8576040805162461bcd60e51b81526020600482015260076024820152666d61782032352560c81b604482015290519081900360640190fd5b50505050565b601290565b6110fc33611031565b611136576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60005b8381101561133557670de0b6b3a764000083838381811061115657fe5b336000908152600760209081526040909120805492909102939093013593909302909203905550670de0b6b3a764000083838381811061119257fe5b9050602002013502600760008787858181106111aa57fe5b602090810292909201356001600160a01b031683525081019190915260400160002080549190910190558484828181106111e057fe5b905060200201356001600160a01b03166001600160a01b0316336001600160a01b0316600080516020612b17833981519152601260ff16600a0a86868681811061122657fe5b90506020020135026040518082815260200191505060405180910390a36019546001600160a01b03166314b6ca9686868481811061126057fe5b905060200201356001600160a01b0316601260ff16600a0a86868681811061128457fe5b90506020020135026040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156112d257600080fd5b505af11580156112e6573d6000803e3d6000fd5b505050506001600c60008787858181106112fc57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611139565b5050505050565b60185481565b61134b33611d56565b61138a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601e80549215156101000261ff001990931692909217909155601f55565b60096020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b6113db33611031565b611415576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60005b828110156110e85781600b600086868581811061143157fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611418565b61147333611d56565b6114b2576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b081106114c157600080fd5b601a55565b601e54610100900460ff1681565b6000610e1382600019610db2565b6114eb33611031565b611525576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b0382166000908152600b602052604090205460ff1615158115151415611599576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420616c72656164792068617320726564756365642066656573604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6115cd33611d56565b61160c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b03166000908152601b602052604090205460ff1690565b6001600160a01b031660009081526007602052604090205490565b600c6020526000908152604090205460ff1681565b61168e33611031565b6116c8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b606481106116d557600080fd5b601255565b6000546001600160a01b031690565b6116f233611031565b61172c576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60065460ff1615611784576040805162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015290519081900360640190fd5b6006805460ff19166001179055565b6013546001600160a01b031681565b6117ab33611031565b6117e5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b60408051808201909152600481526311d1149560e21b602082015290565b600f5481565b600e5481565b6015546001600160a01b031681565b6000610f5a338484611e0b565b61185f33611d56565b61189e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601954604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b1580156118f257600080fd5b505af1158015611906573d6000803e3d6000fd5b505050505050565b600061102c6103e861192a601d54611924610fe8565b9061239b565b906123f4565b6001600160a01b03166000908152600b602052604090205460ff1690565b61195733611031565b611991576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601c805460ff1916911515919091179055565b6119ad33611d56565b6119ec576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6201518002601855565b6119ff33611031565b611a39576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6019546001600160a01b031681565b60165481565b601e5462010000900460ff1681565b60125481565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b611abe33611031565b611af8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b611b2233611031565b611b5c576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b60175481565b611bd933611d56565b611c18576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382163014801590611c3f57506015546001600160a01b03838116911614155b611c4857600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155611ce55760195460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b158015611cc857600080fd5b505af1158015611cdc573d6000803e3d6000fd5b50505050611d43565b6019546001600160a01b03838116600081815260076020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156118f257600080fd5b5050565b6014546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b60008184841115611e035760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611dc8578181015183820152602001611db0565b50505050905090810190601f168015611df55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60065460009060ff1680611e5957506001600160a01b03841660009081526009602052604090205460ff1680611e5957506001600160a01b03831660009081526009602052604090205460ff165b611ea0576040805162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b604482015290519081900360640190fd5b601e5460ff1615611ebd57611eb6848484612436565b9050610f5a565b601c5460ff168015611ed657506000611ed461190e565b115b15611f93576001600160a01b0384166000908152601b602052604090205460ff16158015611f1d57506001600160a01b0383166000908152601b602052604090205460ff16155b8015611f3757506015546001600160a01b03848116911614155b15611f93576000611f4784611655565b9050611f5161190e565b8382011115611f915760405162461bcd60e51b8152600401808060200182810382526036815260200180612b376036913960400191505060405180910390fd5b505b60165443036017556001600160a01b0384166000908152600c602052604090205460ff168015611fc65750601854601754105b156120025760405162461bcd60e51b8152600401808060200182810382526027815260200180612b6d6027913960400191505060405180910390fd5b6015546001600160a01b031633148015906120205750601e5460ff16155b80156120335750601e54610100900460ff165b80156120505750601f543060009081526007602052604090205410155b1561205d5761205d612505565b601e546040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03881660009081526007909152919091205460ff90921615916120b9918590611d74565b6001600160a01b03861660009081526007602090815260408083209390935560099052205460ff168061210457506001600160a01b03841660009081526009602052604090205460ff165b1561210d575060005b6015546001600160a01b0386811691161480159061213957506015546001600160a01b03858116911614155b15612142575060005b8281156121575761215486868661291f565b90505b6001600160a01b03851660009081526007602052604090205461217a9082612a09565b6001600160a01b038087166000908152600760209081526040808320949094559189168152600a909152205460ff1661221e576019546001600160a01b03878116600081815260076020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561220b57600080fd5b505af192505050801561221c575060015b505b6001600160a01b0385166000908152600a602052604090205460ff166122af576019546001600160a01b03868116600081815260076020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561229c57600080fd5b505af19250505080156122ad575060015b505b601954601a54604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561230257600080fd5b505af1925050508015612313575060015b50846001600160a01b0316866001600160a01b0316600080516020612b17833981519152836040518082815260200191505060405180910390a350600195945050505050565b6000610f5a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d74565b6000826123aa57506000610e13565b828202828482816123b757fe5b0414610f5a5760405162461bcd60e51b8152600401808060200182810382526021815260200180612af66021913960400191505060405180910390fd5b6000610f5a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a63565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054612487918490611d74565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546124b69083612a09565b6001600160a01b038085166000818152600760209081526040918290209490945580518681529051919392881692600080516020612b1783398151915292918290030190a35060019392505050565b601e805460ff1916600117905530600090815260076020526040812054601054600f549192916125409160029161192a91908290879061239b565b9050600061254e8383612359565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061258257fe5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156125d657600080fd5b505afa1580156125ea573d6000803e3d6000fd5b505050506040513d602081101561260057600080fd5b505181518290600190811061261157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601460009054906101000a90046001600160a01b03166001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156126cb5781810151838201526020016126b3565b505050509050019650505050505050600060405180830381600087803b1580156126f457600080fd5b505af1158015612708573d6000803e3d6000fd5b5050600f544792506000915061272c906127239060026123f4565b60105490612359565b9050600061274e600261192a8461192a600f548861239b90919063ffffffff16565b9050600061276b8361192a600d548761239b90919063ffffffff16565b9050600061277d826110268786612359565b9050601960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156127cf57600080fd5b505af1935050505080156127e1575060015b50600e5415612826576013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612824573d6000803e3d6000fd5b505b871561290a576014546002546040805163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991869160c48082019260609290919082900301818588803b1580156128a157600080fd5b505af11580156128b5573d6000803e3d6000fd5b50505050506040513d60608110156128cc57600080fd5b505060408051848152602081018a905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601e805460ff1916905550505050505050565b60008061293d60115461192a6010548661239b90919063ffffffff16565b6001600160a01b0386166000908152600b602052604090205490915060ff168061297f57506001600160a01b0384166000908152600b602052604090205460ff165b1561299957601254612996906119248360646123f4565b90035b306000908152600760205260409020546129b39082612a09565b30600081815260076020908152604091829020939093558051848152905191926001600160a01b03891692600080516020612b178339815191529281900390910190a3612a008382612359565b95945050505050565b600082820183811015610f5a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183612ab25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611dc8578181015183820152602001611db0565b506000838581612abe57fe5b049594505050505056fe4d61782077616c6c65742070657263656e746167652063616e6e6f74206265206c6f776572207468616e203125536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4d617857616c6c65743a205472616e7366657220616d6f756e74206578636565647320746865206d617857616c6c6574416d6f756e745665737465642077616c6c6574732063616e6e6f742073656e6420666f72203138302064617973a2646970667358221220ff09978fbc7bc37818a8857349057711a233964e1ac795fa9141ccdc9aa9afa364736f6c6343000706003360806040526ec097ce7bc90715b34b9f1000000000600a55610e10600b556b0813f3978f89409844000000600c5534801561003957600080fd5b50604051610c65380380610c658339818101604052602081101561005c57600080fd5b5051600180546001600160a01b039092166001600160a01b03199283161790556000805490911633179055610bcf806100966000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f761051c565b34801561026057600080fd5b506100f7610522565b34801561027557600080fd5b50610142610528565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b503561058d565b3480156102b457600080fd5b506100f7610672565b600a5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b038216600090815260056020526040902054156103015761030182610678565b60008111801561032757506001600160a01b038216600090815260056020526040902054155b1561033a5761033582610795565b61036d565b8015801561035f57506001600160a01b03821660009081526005602052604090205415155b1561036d5761036d826107f6565b6001600160a01b03821660009081526005602052604090205460065461039e918391610398916108e3565b9061092e565b6006556001600160a01b03821660009081526005602052604090208190556103c581610988565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b03811660009081526005602052604081205461040d5750600061046f565b6001600160a01b03821660009081526005602052604081205461042f90610988565b6001600160a01b0384166000908152600560205260409020600101549091508082116104605760009250505061046f565b61046a82826108e3565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600b91909155600c55565b60065481565b600c5481565b60075481565b60056020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b6007546104ed903461092e565b600755600654600a546105179161050e9161050890346109a5565b906109fe565b6009549061092e565b600955565b60095481565b60085481565b61053133610a40565b610582576040805162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000604482015290519081900360640190fd5b61058b33610678565b565b6000546001600160a01b031633146105a457600080fd5b600254806105b2575061066f565b60008060005a90505b84821080156105c957508383105b1561066a5783600d54106105dd576000600d555b6106096002600d54815481106105ef57fe5b6000918252602090912001546001600160a01b0316610a40565b1561063a5761063a6002600d548154811061062057fe5b6000918252602090912001546001600160a01b0316610678565b61064f6106485a83906108e3565b839061092e565b91505a600d80546001908101909155939093019290506105bb565b505050505b50565b600b5481565b6001600160a01b03811660009081526005602052604090205461069a5761066f565b60006106a5826103e8565b90508015610791576008546106ba908261092e565b6008556040516000906001600160a01b0384169061753090849084818181858888f193505050503d806000811461070d576040519150601f19603f3d011682016040523d82523d6000602084013e610712565b606091505b505050506001600160a01b03821660009081526004602090815260408083204290556005909152812060020154610749908361092e565b6001600160a01b038416600090815260056020526040902060028101919091555461077390610988565b6001600160a01b038416600090815260056020526040902060010155505b5050565b600280546001600160a01b039092166000818152600360205260408120849055600184018355919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b0319169091179055565b60028054600019810190811061080857fe5b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061084057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260039182905260408120546002805491939291600019810190811061088e57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108be57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061092583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a7c565b90505b92915050565b600082820183811015610925576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610928600a54610508600954856109a590919063ffffffff16565b6000826109b457506000610928565b828202828482816109c157fe5b04146109255760405162461bcd60e51b8152600401808060200182810382526021815260200180610b796021913960400191505060405180910390fd5b600061092583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b13565b600b546001600160a01b03821660009081526004602052604081205490914291011080156109285750600c54610a75836103e8565b1192915050565b60008184841115610b0b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ad0578181015183820152602001610ab8565b50505050905090810190601f168015610afd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610b625760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ad0578181015183820152602001610ab8565b506000838581610b6e57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a726e8724530d71e645a9c1c59f148431433d2ffde8ad3bea4944d43a59423f964736f6c63430007060033

Deployed ByteCode Sourcemap

10636:13758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12434:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13650:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14494:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11123:36;;;;;;;;;;;;;:::i;11619:76::-;;;;;;;;;;;;;:::i;11702:36::-;;;;;;;;;;;;;:::i;13912:88::-;;;;;;;;;;;;;:::i;11494:33::-;;;;;;;;;;;;;:::i;16831:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16831:101:0;-1:-1:-1;;;;;16831:101:0;;:::i;:::-;;19161:372;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19161:372:0;;;;;;;;;;;;;;;;;:::i;17970:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17970:194:0;;:::i;14092:142::-;;;;;;;;;;;;;:::i;10006:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10006:103:0;-1:-1:-1;;;;;10006:103:0;;:::i;15811:467::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15811:467:0;;;;;;;;;;;;;;;;;:::i;13826:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16284:539;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16284:539:0;;-1:-1:-1;16284:539:0;-1:-1:-1;16284:539:0;:::i;11995:34::-;;;;;;;;;;;;;:::i;18430:200::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18430:200:0;;;;;;;;;:::i;11284:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11284:44:0;-1:-1:-1;;;;;11284:44:0;;:::i;11335:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11335:49:0;-1:-1:-1;;;;;11335:49:0;;:::i;17160:225::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17160:225:0;-1:-1:-1;17160:225:0;;;;:::i;18846:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18846:139:0;;:::i;12333:40::-;;;;;;;;;;;;;:::i;14718:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14718:116:0;-1:-1:-1;;;;;14718:116:0;;:::i;16940:212::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16940:212:0;;;;;;;;;;:::i;15302:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15302:120:0;;;;;;;;;;:::i;17685:135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17685:135:0;-1:-1:-1;;;;;17685:135:0;;:::i;14242:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14242:105:0;-1:-1:-1;;;;;14242:105:0;;:::i;11444:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11444:41:0;-1:-1:-1;;;;;11444:41:0;;:::i;17393:157::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17393:157:0;;:::i;14006:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;14006:78:0;;;;;;;;;;;;;;15019:153;;;;;;;;;;;;;:::i;11793:69::-;;;;;;;;;;;;;:::i;18172:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18172:145:0;;;;;;;;;;:::i;13736:84::-;;;;;;;;;;;;;:::i;11579:33::-;;;;;;;;;;;;;:::i;11534:37::-;;;;;;;;;;;;;:::i;11902:19::-;;;;;;;;;;;;;:::i;18997:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18997:156:0;;;;;;;;:::i;18638:200::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18638:200:0;;;;;;;:::i;17828:134::-;;;;;;;;;;;;;:::i;17558:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17558:119:0;-1:-1:-1;;;;;17558:119:0;;:::i;18325:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18325:97:0;;;;:::i;15178:112::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15178:112:0;;:::i;9679:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9679:94:0;-1:-1:-1;;;;;9679:94:0;;:::i;12038:46::-;;;;;;;;;;;;;:::i;11928:25::-;;;;;;;;;;;;;:::i;12380:45::-;;;;;;;;;;;;;:::i;11745:39::-;;;;;;;;;;;;;:::i;14353:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14353:133:0;;;;;;;;;;:::i;9849:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9849:97:0;-1:-1:-1;;;;;9849:97:0;;:::i;10406:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10406:173:0;-1:-1:-1;;;;;10406:173:0;;:::i;11960:31::-;;;;;;;;;;;;;:::i;15430:373::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15430:373:0;;;;;;;;;;:::i;11871:24::-;;;;;;;;;;;;;:::i;10180:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10180:107:0;-1:-1:-1;;;;;10180:107:0;;:::i;12434:50::-;;;;:::o;13650:80::-;13722:5;;;;;;;;;;;;-1:-1:-1;;;13722:5:0;;;;13650:80;:::o;14494:216::-;14598:10;14569:4;14586:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14586:32:0;;;;;;;;;;;:41;;;14643:37;;;;;;;14569:4;;14586:32;;14598:10;;14643:37;;;;;;;;-1:-1:-1;14698:4:0;14494:216;;;;;:::o;11123:36::-;;;;;;:::o;11619:76::-;;;;:::o;11702:36::-;;;;:::o;13912:88::-;13985:12;;13912:88;:::o;11494:33::-;;;;:::o;16831:101::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;16906:9:::1;:18:::0;;-1:-1:-1;;;;;;16906:18:0::1;-1:-1:-1::0;;;;;16906:18:0;;;::::1;::::0;;;::::1;::::0;;16831:101::o;19161:372::-;-1:-1:-1;;;;;19291:19:0;;19261:4;19291:19;;;:11;:19;;;;;;;;19311:10;19291:31;;;;;;;;-1:-1:-1;;19291:46:0;19288:180;;19387:69;;;;;;;;;;;-1:-1:-1;;;19387:69:0;;;;;;;;-1:-1:-1;;;;;19387:19:0;;-1:-1:-1;19387:19:0;;;:11;:19;;;;;19407:10;19387:31;;;;;;;;;;:69;;19423:6;;19387:35;:69::i;:::-;-1:-1:-1;;;;;19353:19:0;;;;;;:11;:19;;;;;;;;19373:10;19353:31;;;;;;;:103;19288:180;19485:40;19499:6;19507:9;19518:6;19485:13;:40::i;:::-;19478:47;;19161:372;;;;;;:::o;17970:194::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;18074:1:::1;18067:4;:8;18059:66;;;;-1:-1:-1::0;;;18059:66:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18136:13;:20:::0;17970:194::o;14092:142::-;14220:4;;14145:7;;14172:54;;14210:15;;-1:-1:-1;;;;;14220:4:0;14210:9;:15::i;:::-;14199:4;;14172:33;;14189:15;;-1:-1:-1;;;;;14199:4:0;14189:9;:15::i;:::-;14172:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;14165:61;;14092:142;:::o;10006:103::-;10061:4;10096:5;-1:-1:-1;;;;;10096:5:0;;;10085:16;;;;10006:103::o;15811:467::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;15961:13:::1;:30:::0;;;16006:12:::1;:28:::0;;;16049:14:::1;:32:::0;;;16108:30;;::::1;:48:::0;::::1;16096:9;:60:::0;16171:14:::1;:32:::0;;;16257:1:::1;16188:15:::0;16239:19:::1;16226:9;;:32;;16218:52;;;::::0;;-1:-1:-1;;;16218:52:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;16218:52:0;;;;;;;;;;;;;::::1;;15811:467:::0;;;;:::o;13826:80::-;10825:2;13826:80;:::o;16284:539::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;16419:9:::1;16415:401;16434:19:::0;;::::1;16415:401;;;16511:15:::0;16499:6;;16506:1;16499:9;;::::1;;;;;16485:10;16475:21;::::0;;;:9:::1;16499;16475:21:::0;;;;;;;:51;;16499:9;;;::::1;::::0;;;::::1;;:27:::0;;;::::1;16475:51:::0;;::::1;::::0;;-1:-1:-1;16579:15:0;16567:6;;16574:1;16567:9;;::::1;;;;;;;;;;;:27;16541:9;:22;16551:8;;16560:1;16551:11;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;16551:11:0::1;16541:22:::0;;-1:-1:-1;16541:22:0;::::1;::::0;;;;;;-1:-1:-1;16541:22:0;:53;;;;;::::1;::::0;;16635:8;;16644:1;16635:11;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16635:11:0::1;-1:-1:-1::0;;;;;16614:62:0::1;16623:10;-1:-1:-1::0;;;;;16614:62:0::1;-1:-1:-1::0;;;;;;;;;;;10825:2:0::1;16660:15;;:2;:15;16648:6;;16655:1;16648:9;;;;;;;;;;;;;:27;16614:62;;;;;;;;;;;;;;;;;;16691:19;::::0;-1:-1:-1;;;;;16691:19:0::1;:28;16720:8:::0;;16729:1;16720:11;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;16720:11:0::1;10825:2;16745:15;;:2;:15;16733:6;;16740:1;16733:9;;;;;;;;;;;;;:27;16691:70;;;;;;;;;;;;;-1:-1:-1::0;;;;;16691:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16800:4;16776:8;:21;16785:8;;16794:1;16785:11;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;16785:11:0::1;16776:21:::0;;-1:-1:-1;16776:21:0;::::1;::::0;;;;;;-1:-1:-1;16776:21:0;:28;;-1:-1:-1;;16776:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16455:3:0::1;16415:401;;;;16284:539:::0;;;;:::o;11995:34::-;;;;:::o;18430:200::-;9564:24;9577:10;9564:12;:24::i;:::-;9556:48;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;;;;18540:21:::1;:39:::0;;;::::1;;;;-1:-1:-1::0;;18540:39:0;;::::1;::::0;;;::::1;::::0;;;18590:13:::1;:32:::0;18430:200::o;11284:44::-;;;;;;;;;;;;;;;:::o;11335:49::-;;;;;;;;;;;;;;;:::o;17160:225::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;17273:9:::1;17269:109;17288:19:::0;;::::1;17269:109;;;17360:6;17329:15;:28;17345:8;;17354:1;17345:11;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;17345:11:0::1;17329:28:::0;;-1:-1:-1;17329:28:0;::::1;::::0;;;;;;-1:-1:-1;17329:28:0;:37;;-1:-1:-1;;17329:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17309:3:0::1;17269:109;;18846:139:::0;9564:24;9577:10;9564:12;:24::i;:::-;9556:48;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;;;;18939:6:::1;18933:3;:12;18925:21;;;::::0;::::1;;18957:14;:20:::0;18846:139::o;12333:40::-;;;;;;;;;:::o;14718:116::-;14773:4;14797:29;14805:7;-1:-1:-1;;14797:7:0;:29::i;16940:212::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17029:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;::::1;;:34;;::::0;::::1;;;;17021:79;;;::::0;;-1:-1:-1;;;17021:79:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;17111:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:33;;-1:-1:-1;;17111:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16940:212::o;15302:120::-;9564:24;9577:10;9564:12;:24::i;:::-;9556:48;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15386:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15386:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15302:120::o;17685:135::-;-1:-1:-1;;;;;17779:33:0;17755:4;17779:33;;;:24;:33;;;;;;;;;17685:135::o;14242:105::-;-1:-1:-1;;;;;14326:18:0;14308:7;14326:18;;;:9;:18;;;;;;;14242:105::o;11444:41::-;;;;;;;;;;;;;;;:::o;17393:157::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;17494:3:::1;17481:10;:16;17473:25;;;::::0;::::1;;17509:20;:33:::0;17393:157::o;14006:78::-;14058:7;14076:5;-1:-1:-1;;;;;14076:5:0;14006:78;:::o;15019:153::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;15083:16:::1;::::0;::::1;;15082:17;15074:56;;;::::0;;-1:-1:-1;;;15074:56:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15141:16;:23:::0;;-1:-1:-1;;15141:23:0::1;15160:4;15141:23;::::0;;15019:153::o;11793:69::-;;;-1:-1:-1;;;;;11793:69:0;;:::o;18172:145::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18266:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:43;;-1:-1:-1;;18266:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18172:145::o;13736:84::-;13810:7;;;;;;;;;;;;-1:-1:-1;;;13810:7:0;;;;13736:84;:::o;11579:33::-;;;;:::o;11534:37::-;;;;:::o;11902:19::-;;;-1:-1:-1;;;;;11902:19:0;;:::o;18997:156::-;19077:4;19101:44;19115:10;19127:9;19138:6;19101:13;:44::i;18638:200::-;9564:24;9577:10;9564:12;:24::i;:::-;9556:48;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;;;;18754:19:::1;::::0;:76:::1;::::0;;-1:-1:-1;;;18754:76:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;18754:19:0;;::::1;::::0;:43:::1;::::0;:76;;;;;:19:::1;::::0;:76;;;;;;;;:19;;:76;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18638:200:::0;;:::o;17828:134::-;17876:7;17903:51;17949:4;17903:41;17930:13;;17903:22;:20;:22::i;:::-;:26;;:41::i;:::-;:45;;:51::i;17558:119::-;-1:-1:-1;;;;;17645:24:0;17621:4;17645:24;;;:15;:24;;;;;;;;;17558:119::o;18325:97::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;18392:15:::1;:22:::0;;-1:-1:-1;;18392:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18325:97::o;15178:112::-;9564:24;9577:10;9564:12;:24::i;:::-;9556:48;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;;;;15279:6:::1;15265:20;15254:8;:31:::0;15178:112::o;9679:94::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9739:19:0::1;;::::0;;;9761:4:::1;9739:19;::::0;;;;;;;:26;;-1:-1:-1;;9739:26:0::1;::::0;;::::1;::::0;;9679:94::o;12038:46::-;;;-1:-1:-1;;;;;12038:46:0;;:::o;11928:25::-;;;;:::o;12380:45::-;;;;;;;;;:::o;11745:39::-;;;;:::o;14353:133::-;-1:-1:-1;;;;;14455:19:0;;;14437:7;14455:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14353:133::o;9849:97::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9911:19:0::1;9933:5;9911:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;9911:27:0::1;::::0;;9849:97::o;10406:173::-;9395:19;9403:10;9395:7;:19::i;:::-;9387:38;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;-1:-1:-1;;;9387:38:0;;;;;;;;;;;;;;;10482:5:::1;:11:::0;;-1:-1:-1;;;;;;10482:11:0::1;-1:-1:-1::0;;;;;10482:11:0;::::1;::::0;;::::1;::::0;;10504:19;;;-1:-1:-1;10504:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;10504:26:0::1;::::0;;::::1;::::0;;;10546:25;;;;;;;::::1;::::0;;;;;;;;;::::1;10406:173:::0;:::o;11960:31::-;;;;:::o;15430:373::-;9564:24;9577:10;9564:12;:24::i;:::-;9556:48;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;-1:-1:-1;;;9556:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15527:23:0;::::1;15545:4;15527:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;15564:4:0::1;::::0;-1:-1:-1;;;;;15554:14:0;;::::1;15564:4:::0;::::1;15554:14;;15527:41;15519:50;;;::::0;::::1;;-1:-1:-1::0;;;;;15580:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;15580:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;15634:162:::1;;15659:19;::::0;:39:::1;::::0;;-1:-1:-1;;;15659:39:0;;-1:-1:-1;;;;;15659:39:0;;::::1;;::::0;::::1;::::0;:19:::1;:39:::0;;;;;;;;:19;::::1;::::0;:28:::1;::::0;:39;;;;;:19;;:39;;;;;;:19;;:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15634:162;;;15729:19;::::0;-1:-1:-1;;;;;15766:17:0;;::::1;15729:19;15766:17:::0;;;:9:::1;:17;::::0;;;;;;15729:55;;-1:-1:-1;;;15729:55:0;;::::1;::::0;::::1;::::0;;;;;;;;;:19;;;::::1;::::0;:28:::1;::::0;:55;;;;;;;;;;:19;;:55;::::1;;::::0;::::1;;;;::::0;::::1;15634:162;15430:373:::0;;:::o;11871:24::-;;;-1:-1:-1;;;;;11871:24:0;;:::o;10180:107::-;-1:-1:-1;;;;;10260:19:0;10236:4;10260:19;;;:14;:19;;;;;;;;;10180:107::o;425:190::-;511:7;547:12;539:6;;;;531:29;;;;-1:-1:-1;;;531:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:5:0;;;425:190::o;19541:2191::-;19658:16;;19633:4;;19658:16;;;:67;;-1:-1:-1;;;;;;19679:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;19702:22:0;;;;;;:11;:22;;;;;;;;19679:45;19650:99;;;;;-1:-1:-1;;;19650:99:0;;;;;;;;;;;;-1:-1:-1;;;19650:99:0;;;;;;;;;;;;;;;19763:16;;;;19760:73;;;19789:41;19804:6;19812:9;19823:6;19789:14;:41::i;:::-;19782:48;;;;19760:73;19849:15;;;;:40;;;;;19888:1;19868:17;:15;:17::i;:::-;:21;19849:40;19845:448;;;-1:-1:-1;;;;;19928:32:0;;;;;;:24;:32;;;;;;;;:41;;;:106;;-1:-1:-1;;;;;;19990:35:0;;;;;;:24;:35;;;;;;;;:44;19928:106;:144;;;;-1:-1:-1;20068:4:0;;-1:-1:-1;;;;;20055:17:0;;;20068:4;;20055:17;;19928:144;19906:376;;;20107:12;20123:20;20133:9;20123;:20::i;:::-;20107:36;;20190:17;:15;:17::i;:::-;20180:6;20170:7;:16;:37;;20162:104;;;;-1:-1:-1;;;20162:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19906:376;;20333:10;;20318:12;:25;20299:16;:44;-1:-1:-1;;;;;20351:16:0;;-1:-1:-1;20351:16:0;;;:8;:16;;;;;;;;:47;;;;;20390:8;;20371:16;;:27;20351:47;20348:135;;;20418:49;;-1:-1:-1;;;20418:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20348:135;20512:4;;-1:-1:-1;;;;;20512:4:0;20498:10;:18;;;;:39;;-1:-1:-1;20521:16:0;;;;20520:17;20498:39;:64;;;;-1:-1:-1;20541:21:0;;;;;;;20498:64;:109;;;;-1:-1:-1;20594:13:0;;20584:4;20566:24;;;;:9;:24;;;;;;:41;;20498:109;20495:136;;;20615:10;:8;:10::i;:::-;20659:16;;20735:53;;;;;;;;;;;-1:-1:-1;;;20735:53:0;;;;;;;;-1:-1:-1;;;;;20735:17:0;;20643:12;20735:17;;;:9;:17;;;;;;;;20659:16;;;;20658:17;;20735:53;;20757:6;;20735:21;:53::i;:::-;-1:-1:-1;;;;;20715:17:0;;;;;;:9;:17;;;;;;;;:73;;;;20804:11;:19;;;;;;;:45;;-1:-1:-1;;;;;;20827:22:0;;;;;;:11;:22;;;;;;;;20804:45;20801:92;;;-1:-1:-1;20876:5:0;20801:92;20966:4;;-1:-1:-1;;;;;20956:14:0;;;20966:4;;20956:14;;;;:35;;-1:-1:-1;20987:4:0;;-1:-1:-1;;;;;20974:17:0;;;20987:4;;20974:17;;20956:35;20953:82;;;-1:-1:-1;21018:5:0;20953:82;21077:6;21096:88;;;;21137:35;21146:6;21154:9;21165:6;21137:8;:35::i;:::-;21123:49;;21096:88;-1:-1:-1;;;;;21219:20:0;;;;;;:9;:20;;;;;;:37;;21244:11;21219:24;:37::i;:::-;-1:-1:-1;;;;;21196:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;21302:24;;;;;:16;:24;;;;;;;21298:127;;21347:19;;-1:-1:-1;;;;;21384:17:0;;;21347:19;21384:17;;;:9;:17;;;;;;;21347:55;;-1:-1:-1;;;21347:55:0;;;;;;;;;;;;;;:19;;;;;:28;;:55;;;;;;;;;;:19;;:55;;;;;;;;;;;;;;;;;;;;;;;;;21343:71;;-1:-1:-1;;;;;21441:27:0;;;;;;:16;:27;;;;;;;;21437:137;;21489:19;;-1:-1:-1;;;;;21529:20:0;;;21489:19;21529:20;;;:9;:20;;;;;;;21489:61;;-1:-1:-1;;;21489:61:0;;;;;;;;;;;;;;:19;;;;;:28;;:61;;;;;;;;;;:19;;:61;;;;;;;;;;;;;;;;;;;;;;;;;21485:77;;21590:19;;21618:14;;21590:43;;;-1:-1:-1;;;;;;21590:43:0;;;;;;;;;;-1:-1:-1;;;;;21590:19:0;;;;:27;;:43;;;;;:19;;:43;;;;;;;;:19;;:43;;;;;;;;;;;;;;;;;;;;;;;;;21586:59;21679:9;-1:-1:-1;;;;;21662:40:0;21671:6;-1:-1:-1;;;;;21662:40:0;-1:-1:-1;;;;;;;;;;;21690:11:0;21662:40;;;;;;;;;;;;;;;;;;-1:-1:-1;21720:4:0;;19541:2191;-1:-1:-1;;;;;19541:2191:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;623:224::-;681:7;705:6;701:25;;-1:-1:-1;722:1:0;715:8;;701:25;748:5;;;752:1;748;:5;:1;772:5;;;;;:10;764:56;;;;-1:-1:-1;;;764:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:132;913:7;940:39;944:1;947;940:39;;;;;;;;;;;;;;;;;:3;:39::i;21744:330::-;21874:53;;;;;;;;;;;-1:-1:-1;;;21874:53:0;;;;;;;;-1:-1:-1;;;;;21874:17:0;;21837:4;21874:17;;;:9;:17;;;;;;;:53;;21896:6;;21874:21;:53::i;:::-;-1:-1:-1;;;;;21854:17:0;;;;;;;:9;:17;;;;;;:73;;;;21961:20;;;;;;;:32;;21986:6;21961:24;:32::i;:::-;-1:-1:-1;;;;;21938:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;22009:35;;;;;;;21938:20;;22009:35;;;;-1:-1:-1;;;;;;;;;;;22009:35:0;;;;;;;;-1:-1:-1;22062:4:0;21744:330;;;;;:::o;22757:1568::-;12529:16;:23;;-1:-1:-1;;12529:23:0;12548:4;12529:23;;;22863:4:::1;12529:16:::0;22845:24;;;:9:::1;:24;::::0;;;;;22944:9:::1;::::0;22926:12:::1;::::0;22845:24;;12529:16;22906:55:::1;::::0;22959:1:::1;::::0;22906:48:::1;::::0;22944:9;22906:48;;22845:24;;22906:19:::1;:33::i;:55::-;22880:81:::0;-1:-1:-1;22972:20:0::1;22995:36;:15:::0;22880:81;22995:19:::1;:36::i;:::-;23068:16;::::0;;23082:1:::1;23068:16:::0;;;;;::::1;::::0;;22972:59;;-1:-1:-1;23044:21:0::1;::::0;23068:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23068:16:0::1;23044:40;;23113:4;23095;23100:1;23095:7;;;;;;;;-1:-1:-1::0;;;;;23095:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;23139:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;23139:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;23095:7;;23139:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;23139:13:0;23129:7;;:4;;23134:1:::1;::::0;23129:7;::::1;;;;;;;;;;:23;-1:-1:-1::0;;;;;23129:23:0::1;;;-1:-1:-1::0;;;;;23129:23:0::1;;;::::0;::::1;23165:6;;;;;;;;;-1:-1:-1::0;;;;;23165:6:0::1;-1:-1:-1::0;;;;;23165:57:0::1;;23237:12;23264:1;23280:4;23307;23327:15;23165:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;23165:188:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;23456:12:0::1;::::0;23386:21:::1;::::0;-1:-1:-1;23366:17:0::1;::::0;-1:-1:-1;23442:34:0::1;::::0;23456:19:::1;::::0;23473:1:::1;23456:16;:19::i;:::-;23442:9;::::0;;:13:::1;:34::i;:::-;23420:56;;23497:26;23526:51;23575:1;23526:44;23558:11;23526:27;23540:12;;23526:9;:13;;:27;;;;:::i;:51::-;23497:80;;23588:27;23618:45;23651:11;23618:28;23632:13;;23618:9;:13;;:28;;;;:::i;:45::-;23588:75:::0;-1:-1:-1;23674:21:0::1;23698:58;23588:75:::0;23698:33:::1;:9:::0;23712:18;23698:13:::1;:33::i;:58::-;23674:82;;23773:19;;;;;;;;;-1:-1:-1::0;;;;;23773:19:0::1;-1:-1:-1::0;;;;;23773:27:0::1;;23808:19;23773:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;23769:73:::0;23873:14:::1;::::0;:18;23870:91:::1;;23915:9;::::0;23907:42:::1;::::0;-1:-1:-1;;;;;23915:9:0;;::::1;::::0;23907:42;::::1;;;::::0;23935:13;;23915:9:::1;23907:42:::0;23915:9;23907:42;23935:13;23915:9;23907:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23870:91;23976:19:::0;;23973:345:::1;;24011:6;::::0;24185:4:::1;::::0;24011:227:::1;::::0;;-1:-1:-1;;;24011:227:0;;24087:4:::1;24011:227;::::0;::::1;::::0;;;;;;;:6:::1;:227:::0;;;;;;;;;;-1:-1:-1;;;;;24185:4:0;;::::1;24011:227:::0;;;;24208:15:::1;24011:227:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;24041:18;;24011:227;;;;;::::1;::::0;;;;;;;;;24041:18;24011:6;:227;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;24011:227:0;24258:48;;;;;24011:227:::1;24258:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;23973:345;-1:-1:-1::0;;12575:16:0;:24;;-1:-1:-1;;12575:24:0;;;-1:-1:-1;;;;;;;22757:1568:0:o;22082:667::-;22169:7;22257:17;22277:41;22303:14;;22277:21;22288:9;;22277:6;:10;;:21;;;;:::i;:41::-;-1:-1:-1;;;;;22335:23:0;;;;;;:15;:23;;;;;;22257:61;;-1:-1:-1;22335:23:0;;;:67;;-1:-1:-1;;;;;;22376:26:0;;;;;;:15;:26;;;;;;;;22335:67;22331:161;;;22459:20;;22436:44;;:18;:9;22450:3;22436:13;:18::i;:44::-;22423:57;;22331:161;22621:4;22603:24;;;;:9;:24;;;;;;:39;;22632:9;22603:28;:39::i;:::-;22594:4;22576:24;;;;:9;:24;;;;;;;;;:66;;;;22658:42;;;;;;;22594:4;;-1:-1:-1;;;;;22658:42:0;;;-1:-1:-1;;;;;;;;;;;22658:42:0;;;;;;;;;22720:21;:6;22731:9;22720:10;:21::i;:::-;22713:28;22082:667;-1:-1:-1;;;;;22082:667:0:o;94:179::-;152:7;184:5;;;208:6;;;;200:46;;;;;-1:-1:-1;;;200:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;995:189;1081:7;1116:12;1109:5;1101:28;;;;-1:-1:-1;;;1101:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1140:9;1156:1;1152;:5;;;;;;;995:189;-1:-1:-1;;;;;995:189:0:o

Swarm Source

ipfs://a726e8724530d71e645a9c1c59f148431433d2ffde8ad3bea4944d43a59423f9
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.