Contract 0x5ee36c0a5e96220f9dcde6a068c5f4e597f83fbb 1

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x930e7678e2eb01d4562240451079431a08cb73305533255f81f54cd881e63d65Approve121316022021-10-27 9:14:3313 hrs 12 mins ago0xb57ecdd9bdaa77623af59463d28affb9a6877fb0 IN  Get Doge: GETDOGE Token0 BNB0.0000741234
0xb9cbbc204b9d11490256256339bc9201647bc0b9a01e0e829d7e696832d977fcApprove121281072021-10-27 6:17:0816 hrs 9 mins ago0xad13084f829a8b3e689d19099ed3d192a7817d93 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0x17d7920dfbd0e3c1b8520bc81d5676269f6b12c248162bb59f0fdcc0a732ad43Approve121265062021-10-27 4:57:0217 hrs 29 mins ago0x909151cbcb8a33490f42f05c45a5c652641131a2 IN  Get Doge: GETDOGE Token0 BNB0.000222255
0x6e555dddee85afc939ab53d6d73f268ea580e7fe0cef9abbde3edbe5a1c79395Approve121113022021-10-26 16:09:091 day 6 hrs ago0x05d8b6a471cf45e423ddc5098fee735c2e46a262 IN  Get Doge: GETDOGE Token0 BNB0.000222255
0x12a67a2913e234aaf418a5390dc0332360b179b57b036c4069a8263cba43cb99Transfer120965812021-10-26 3:48:301 day 18 hrs ago0xf01d7f23c2a105fa1dacb790ea427fa443ca18e0 IN  Get Doge: GETDOGE Token0 BNB0.002250605
0x7225b52957df7557c1a069d627521d1a360c6495136128f6686a31136c3a1e46Approve120949542021-10-26 2:27:091 day 19 hrs ago0xef0260336388b53158a033d452ec7d8a556cc720 IN  Get Doge: GETDOGE Token0 BNB0.000222255
0xf38f47f2dedc619dbb41bd2c8f5a729d61747559a459d16cedb11dd2cbc47751Approve120713862021-10-25 6:41:422 days 15 hrs ago0x8f0658df17c7b3d72d34dc1e753e8388745577a5 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0x73e366cc77effd45caa0596730cf7b02488abe870b90a89af91f16dfa131c12dApprove120662102021-10-25 2:22:172 days 20 hrs ago0x92374128789f2d1e671b091931f88c07cfa25b32 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0x0b3ddb74eb089a17c5d529e59c9961b888f85b3df9ae2d1ff8f11aa559ea91d5Approve120548982021-10-24 16:51:543 days 5 hrs ago0x7065311bfb0ee75b87ec87b5f6763668c48de840 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xa5f3d17037d17c5cca60d4b87919141e9e1aab36e330faeb4a2b41d42d8da78bApprove120353212021-10-24 0:13:583 days 22 hrs ago0xf44ad638b1a586a6cd411d44d257732a2dad377f IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xf05afc9aa0627b48a9189f8b368cd0e11df6326a60adfed1b348b49083aa974aApprove120236492021-10-23 14:27:124 days 7 hrs ago0x54bfd7238510e87260743b3eb7696936f8f89f74 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xb778d9d07ec1ba87ca83c331677d77f5233a7c396b9aad64bab9c322a3a16363Approve120208282021-10-23 12:04:544 days 10 hrs ago0x07f20a466f873c142e14f281834c4aef5b54bf0b IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xa4ce41954fad95556358509e165665be8fc28b9c61ece09d1335a80215f6d5d6Approve120181632021-10-23 9:51:204 days 12 hrs ago0x395943d9912fc1441ea9ee56d3155a4baa2b8dfc IN  Get Doge: GETDOGE Token0 BNB0.00007267
0x0b3d3522e2003ab944fbd276714a3136daf6738dc8194c469562d4167c8ea0e4Approve120023872021-10-22 20:33:095 days 1 hr ago0x6e6dc1b56a2459ce58a3a8befad5ead601c33108 IN  Get Doge: GETDOGE Token0 BNB0.000266706
0x489205ded5df948d0427010740f8e86d57265fd53c02065289eb26c890c3d725Set Tx Limit119974422021-10-22 16:24:505 days 6 hrs agoGet Doge: Deployer IN  Get Doge: GETDOGE Token0 BNB0.000142405
0x213fbf359a4411f97a0dad9917b7c0622446bce23a5a9df8a77d65bd07a0ea4aApprove119913662021-10-22 11:19:125 days 11 hrs ago0x232eadb08c95ac099b02bf7f6539d628660a3b0a IN  Get Doge: GETDOGE Token0 BNB0.000222255
0x6903f23a3ee7b883adf130e42290e2f315aeb5ea8bb63a5bd3b4bc4d9cec202dApprove119692192021-10-21 16:22:346 days 6 hrs ago0xda2ed98129a52ed46478b5a634cbadae3d6bf915 IN  Get Doge: GETDOGE Token0 BNB0.000222255
0x14bf16f025ae6df1dbb0aacaa2b5848354b9527f4d54499baf7da1e7c47da29fApprove119620382021-10-21 10:07:446 days 12 hrs ago0x9ffb28416e4970afae41a7b4979e50e1d462fc75 IN  Get Doge: GETDOGE Token0 BNB0.000222255
0x5633ef82c10b5e4cde1df023b17742d28b67f03307f1ee0a8c92ba00c1d8dbbcApprove119617842021-10-21 9:55:026 days 12 hrs ago0xbdd48ff7708934f700905ea7965eae22ed5683d5 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xf4d9b36bff507bf864bdd590f3416233d9888eb2d8f2ebf347c043b18401e7eeApprove119161872021-10-19 19:16:118 days 3 hrs ago0xa3f985b9e65dcd16cf944eea3023c78ce32d58b8 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0x694781fa9ec3a8c0e8affbcd242de5d998e5d4f84266845e32b024f12e861d6dApprove119161862021-10-19 19:16:088 days 3 hrs ago0xa3f985b9e65dcd16cf944eea3023c78ce32d58b8 IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xc53df2d66a7d1da45914da03741bef36c26d24768c3fb20167d72c59375bf90aApprove119160772021-10-19 19:09:278 days 3 hrs ago0x17d368461378ee7af1347594e825bc60c3a3ae5c IN  Get Doge: GETDOGE Token0 BNB0.000124335
0x445b44f363ac6d111a7738e7ad415bd764757ddedb6cdd0117135f4b1efb1f24Approve119160692021-10-19 19:08:568 days 3 hrs ago0x17d368461378ee7af1347594e825bc60c3a3ae5c IN  Get Doge: GETDOGE Token0 BNB0.00007267
0xb1e787f095c1b2f05096f8e38f2612c73919761033aab32750442eff7e47cc0eApprove118678552021-10-18 2:35:049 days 19 hrs ago0x3093cf145cb375d8656a998466b4eab5c3f0a5ef IN  Get Doge: GETDOGE Token0 BNB0.0000741234
0xd77a20447c653691f286b01dd3dee34dbef8763e66d47c3f183e1d1b7f31d546Approve118677502021-10-18 2:29:499 days 19 hrs ago0x95ab157e213300b167a74ded695d620273728e69 IN  Get Doge: GETDOGE Token0 BNB0.000311157
[ Download CSV Export 

OVERVIEW

Get Doge is a decentralized BEP-20 Token on the Binance Smart Chain aiming to provide holders with Static Rewards in Dogecoin every 60 minutes. The token runs on a proprietary method that taxes each transaction on Buys/Sells and returns a 10% Dividend Paid in $DOGE Coin to its holders.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcfb8eb38cc36bc00b68b1cff57b96bb2f1fde2c2ea78dbd6f06b8e923c0d50a6105665042021-09-02 14:26:5255 days 8 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x07765aaae23758236c16f8c477ebea9bfddb32b001fa5b9c2eb6ca3ad0c36c9a105593592021-09-02 8:27:0755 days 13 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x39fa1413b9788e03a1f06de20c583e16088dec2af3efe63800a8aa5c46d8703c105592272021-09-02 8:20:3155 days 14 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x7778845aa855d87613d84bc06286e069fde1d88d656c48ce3e58123fcf08ec2c105589672021-09-02 8:07:3155 days 14 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0xfbc0a97e3c496fb795e21ec27a719d3059cc693a737121619b84283a6c9a8c39105474012021-09-01 22:23:2756 days 3 mins ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0xdfde852df6c3979571b831406d1e9bac6718c81ecadfb4be98b6b64182e3110c105397302021-09-01 15:55:4956 days 6 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x18c4cad55eb3861356694267d08c4bcf9e2931b75f4d6c260744325e2b30e1c3105350222021-09-01 11:57:5056 days 10 hrs ago Get Doge: GETDOGE Token0x288b7fba5f64b99fb31fc8892ca3fe0c7f68c1470.047330742904972698 BNB
0x18c4cad55eb3861356694267d08c4bcf9e2931b75f4d6c260744325e2b30e1c3105350222021-09-01 11:57:5056 days 10 hrs ago Get Doge: GETDOGE Token 0xe48fd1acb2ab5ea5f1333e4d7150d560250dd7ee0.094661485809945396 BNB
0x18c4cad55eb3861356694267d08c4bcf9e2931b75f4d6c260744325e2b30e1c3105350222021-09-01 11:57:5056 days 10 hrs ago PancakeSwap: Router v2 Get Doge: GETDOGE Token0.177490285893647619 BNB
0x6c83e7418dd2945f75ba0b41691f7d5a6324d32a26f2dd5d162098a42a2444cc105334992021-09-01 10:39:0456 days 11 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x3b723b74da88369b875998e4a0dc8172c9fcd46e51a1cd6766f1724665833f49105252042021-09-01 3:37:3256 days 18 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x0f1e77b1c592a04eaf22cf9c8cb3064405be5d6f275931361a1043d056d2ffb0105182012021-08-31 21:40:3757 days 46 mins ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x0f1e77b1c592a04eaf22cf9c8cb3064405be5d6f275931361a1043d056d2ffb0105182012021-08-31 21:40:3757 days 46 mins ago Get Doge: GETDOGE Token0x288b7fba5f64b99fb31fc8892ca3fe0c7f68c1470.048030146614408352 BNB
0x0f1e77b1c592a04eaf22cf9c8cb3064405be5d6f275931361a1043d056d2ffb0105182012021-08-31 21:40:3757 days 46 mins ago Get Doge: GETDOGE Token 0xe48fd1acb2ab5ea5f1333e4d7150d560250dd7ee0.096060293228816705 BNB
0x0f1e77b1c592a04eaf22cf9c8cb3064405be5d6f275931361a1043d056d2ffb0105182012021-08-31 21:40:3757 days 46 mins ago PancakeSwap: Router v2 Get Doge: GETDOGE Token0.180113049804031323 BNB
0xd4c09e6703db5d879993b120d4a9ac13125f67e50c4b9c0f590ec16809c2dcca105091562021-08-31 14:02:3657 days 8 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x82fe7d8ab4a22f76d2e3aa93881b02db2daa02cd14484c7f63928f0f4234de45104998072021-08-31 6:06:4757 days 16 hrs ago Get Doge: GETDOGE Token0x288b7fba5f64b99fb31fc8892ca3fe0c7f68c1470.048196925712724645 BNB
0x82fe7d8ab4a22f76d2e3aa93881b02db2daa02cd14484c7f63928f0f4234de45104998072021-08-31 6:06:4757 days 16 hrs ago Get Doge: GETDOGE Token 0xe48fd1acb2ab5ea5f1333e4d7150d560250dd7ee0.096393851425449291 BNB
0x82fe7d8ab4a22f76d2e3aa93881b02db2daa02cd14484c7f63928f0f4234de45104998072021-08-31 6:06:4757 days 16 hrs ago PancakeSwap: Router v2 Get Doge: GETDOGE Token0.180738471422717422 BNB
0xcd3404336737e6a8ba0af7ad9e8528c7327cacb5c05b2c438c0594fb36446cf3104990592021-08-31 5:28:3157 days 16 hrs ago Get Doge: GETDOGE Token PancakeSwap: Router v20.01 BNB
0x03a898b93f45271154cdcf0c97b6cf8d02f7543763498d7f1efc0bcba2a64039104939332021-08-31 1:08:2157 days 21 hrs ago Get Doge: GETDOGE Token0x288b7fba5f64b99fb31fc8892ca3fe0c7f68c1470.048674510953076245 BNB
0x03a898b93f45271154cdcf0c97b6cf8d02f7543763498d7f1efc0bcba2a64039104939332021-08-31 1:08:2157 days 21 hrs ago Get Doge: GETDOGE Token 0xe48fd1acb2ab5ea5f1333e4d7150d560250dd7ee0.09734902190615249 BNB
0x03a898b93f45271154cdcf0c97b6cf8d02f7543763498d7f1efc0bcba2a64039104939332021-08-31 1:08:2157 days 21 hrs ago PancakeSwap: Router v2 Get Doge: GETDOGE Token0.182529416074035919 BNB
0xf744094f14e60e200bb30144309aa8b0cada4393a299e7138f696a0d3b9694a1104934022021-08-31 0:41:2857 days 21 hrs ago Get Doge: GETDOGE Token0x288b7fba5f64b99fb31fc8892ca3fe0c7f68c1470.048775787768606911 BNB
0xf744094f14e60e200bb30144309aa8b0cada4393a299e7138f696a0d3b9694a1104934022021-08-31 0:41:2857 days 21 hrs ago Get Doge: GETDOGE Token 0xe48fd1acb2ab5ea5f1333e4d7150d560250dd7ee0.097551575537213822 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GetDoge

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-07-15
*/

//SPDX-License-Identifier: MIT

/**
 *  ██████  ███████ ████████     ██████   ██████   ██████  ███████ 
 * ██       ██         ██        ██   ██ ██    ██ ██       ██      
 * ██   ███ █████      ██        ██   ██ ██    ██ ██   ███ █████   
 * ██    ██ ██         ██        ██   ██ ██    ██ ██    ██ ██      
 *  ██████  ███████    ██        ██████   ██████   ██████  ███████ 
 *                                                                 
 *  Get Doge is a next-gen token that rewards you with Dogecoin airdrops and our friendly whale Dogefather Elon will auto buy-back the dips!
 *  
 *  Simply buy & hold $GETDOGE and you’ll get Dogecoin airdropped to your wallet every 60 minutes automagically!
 *  
 *  https://getdoge.cash
 *  https://t.me/GetDogeCash
 */
 
pragma solidity ^0.8.5;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
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);
}

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;
    }

    IBEP20 DOGE = IBEP20(0xbA2aE424d960c26247Dd6c32edC70B295c744C43);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    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 = 1 * (10 ** 8);

    uint256 currentIndex;

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

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

    constructor (address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    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 {
        uint256 balanceBefore = DOGE.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(DOGE);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = DOGE.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

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

        if(shareholderCount == 0) { return; }

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

        uint256 iterations = 0;

        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);
            DOGE.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend(address shareholder) external onlyToken{
        distributeDividend(shareholder);
    }

    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();
    }
}

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

    address DOGE = 0xbA2aE424d960c26247Dd6c32edC70B295c744C43;
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Get Doge";
    string constant _symbol = "GETDOGE";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply / 1000; // 0.5%

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;

    uint256 liquidityFee = 200;
    uint256 buybackFee = 400;
    uint256 reflectionFee = 500;
    uint256 marketingFee = 400;
    uint256 totalFee = 1500;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

    uint256 buybackMultiplierNumerator = 200;
    uint256 buybackMultiplierDenominator = 100;
    uint256 buybackMultiplierTriggeredAt;
    uint256 buybackMultiplierLength = 30 minutes;

    bool public autoBuybackEnabled = false;
    bool public autoBuybackMultiplier = true;
    uint256 autoBuybackCap;
    uint256 autoBuybackAccumulator;
    uint256 autoBuybackAmount;
    uint256 autoBuybackBlockPeriod;
    uint256 autoBuybackBlockLast;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 20000; // 0.005%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _presaler,
        address _presaleContract
    ) Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(address(router));

        isFeeExempt[_presaler] = true;
        isTxLimitExempt[_presaler] = true;
        isFeeExempt[_presaleContract] = true;
        isTxLimitExempt[_presaleContract] = true;
        isDividendExempt[_presaleContract] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;

        _balances[_presaler] = _totalSupply;
        emit Transfer(address(0), _presaler, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    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, type(uint256).max);
    }

    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] != type(uint256).max){
            _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) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }
        if(shouldAutoBuyback()){ triggerAutoBuyback(); }

        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

        emit Transfer(sender, recipient, amountReceived);
        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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling && buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp){ return getMultipliedFee(); }
        return totalFee;
    }

    function getMultipliedFee() public view returns (uint256) {
        uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp);
        uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee);
        return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength));
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator);

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

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountBNB = address(this).balance.sub(balanceBefore);
        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool success, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");

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

    function shouldAutoBuyback() internal view returns (bool) {
        return msg.sender != pair
            && !inSwap
            && autoBuybackEnabled
            && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number
            && address(this).balance >= autoBuybackAmount;
    }

    function triggerManualBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorized {
        buyTokens(amount, DEAD);
        if(triggerBuybackMultiplier){
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
    }
    
    function clearBuybackMultiplier() external authorized {
        buybackMultiplierTriggeredAt = 0;
    }

    function triggerAutoBuyback() internal {
        buyTokens(autoBuybackAmount, DEAD);
        if(autoBuybackMultiplier){
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
        autoBuybackBlockLast = block.number;
        autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount);
        if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period, bool _autoBuybackMultiplier) external authorized {
        autoBuybackEnabled = _enabled;
        autoBuybackCap = _cap;
        autoBuybackAccumulator = 0;
        autoBuybackAmount = _amount;
        autoBuybackBlockPeriod = _period;
        autoBuybackBlockLast = block.number;
        autoBuybackMultiplier = _autoBuybackMultiplier;
    }

    function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized {
        require(numerator / denominator <= 2 && numerator > denominator);
        buybackMultiplierNumerator = numerator;
        buybackMultiplierDenominator = denominator;
        buybackMultiplierLength = length;
    }

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

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

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

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

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/4);
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }
    
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }
    
    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        return distributor.getUnpaidEarnings(shareholder);
    } 

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_presaler","type":"address"},{"internalType":"address","name":"_presaleContract","type":"address"}],"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":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","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":"_maxTxAmount","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":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoBuybackMultiplier","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliedFee","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":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","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":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"bool","name":"_autoBuybackMultiplier","type":"bool"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerManualBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811673ba2ae424d960c26247dd6c32edc70b295c744c431790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead1790556005805490911690556200006e6009600a62000513565b6200007f9064e8d4a51000620005d4565b6006556103e8600654620000949190620004a7565b60075560c8600d819055610190600e8190556101f4600f556010556105dc601155612710601255601960155560646016819055601a91909155601b55610708601d55601e805461ffff19166101001790556207a1206025556026805460ff191660011790556006546200010b90614e2090620004a7565b6027553480156200011b57600080fd5b5060405162003c1c38038062003c1c8339810160408190526200013e916200046f565b60008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601780547310ed43c718714eb63d5aa57b78b54704e256024e931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b158015620001bf57600080fd5b505afa158015620001d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fa91906200044a565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200024757600080fd5b505af11580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028291906200044a565b601880546001600160a01b0319166001600160a01b0392831617905530600090815260096020908152604080832060178054861685529252918290206000199055549051911690620002d4906200041f565b6001600160a01b039091168152602001604051809103906000f08015801562000301573d6000803e3d6000fd5b50602480546001600160a01b03199081166001600160a01b03938416179091558382166000818152600a60208181526040808420805460ff199081166001908117909255600b80855283872080548316841790558a8a16875294845282862080548216831790559383528185208054851682179055600c83528185208054851682179055601854881685528185208054851682179055308552818520805485168217905560045490971684528084208054909316909617909155601380543390861681179091556014805490951617909355600654828252600884528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200060c565b6110678062002bb583390190565b80516001600160a01b03811681146200044557600080fd5b919050565b6000602082840312156200045d57600080fd5b62000468826200042d565b9392505050565b600080604083850312156200048357600080fd5b6200048e836200042d565b91506200049e602084016200042d565b90509250929050565b600082620004c557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200050b578160001904821115620004ef57620004ef620005f6565b80851615620004fd57918102915b93841c9390800290620004cf565b509250929050565b60006200046860ff8416836000826200052f57506001620005ce565b816200053e57506000620005ce565b8160018114620005575760028114620005625762000582565b6001915050620005ce565b60ff841115620005765762000576620005f6565b50506001821b620005ce565b5060208310610133831016604e8410600b8410161715620005a7575081810a620005ce565b620005b38383620004ca565b8060001904821115620005ca57620005ca620005f6565b0290505b92915050565b6000816000190483118215151615620005f157620005f1620005f6565b500290565b634e487b7160e01b600052601160045260246000fd5b612599806200061c6000396000f3fe6080604052600436106102975760003560e01c806395d89b411161015a578063df20fd49116100c1578063f2fde38b1161007a578063f2fde38b14610829578063f429389014610849578063f708a64f1461085e578063f84ba65d1461087e578063f887ea401461089e578063fe9fbb80146108be57600080fd5b8063df20fd4914610775578063e1dcc71f14610795578063e96fada2146107b4578063f0b37c04146107d4578063f0fc6bca146107f4578063f1f3bca31461080957600080fd5b8063b6a5d7de11610113578063b6a5d7de146106a4578063bf56b371146106c4578063ca33e64c146106da578063d51ed1c8146106fa578063d806d12f1461071a578063dd62ed3e1461072f57600080fd5b806395d89b41146105df5780639d1944f51461060f578063a4b45c001461062f578063a8aa1b311461064f578063a9059cbb1461066f578063b210b06d1461068f57600080fd5b80632f54bf6e116101fe578063658d4b7f116101b7578063658d4b7f146105075780636ddd17131461052757806370a08231146105415780637d1db4a51461057757806382334b941461058d578063893d20e8146105ad57600080fd5b80632f54bf6e146104425780632f5620d114610471578063313ce567146104915780633bb8a8d4146104ad578063571ac8b0146104c75780635c85974f146104e757600080fd5b8063201e799111610250578063201e79911461038d5780632375ce40146103ad57806323b872dd146103cd57806328fd3198146103ed5780632b112e491461040d5780632d48e8961461042257600080fd5b80630445b667146102a357806304a66b48146102cc57806306fdde03146102ee578063095ea7b3146103285780631161ae391461035857806318160ddd1461037857600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960275481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102ec6102e7366004612325565b6108de565b005b3480156102fa57600080fd5b5060408051808201909152600881526747657420446f676560c01b60208201525b6040516102c391906123d9565b34801561033457600080fd5b506103486103433660046121a1565b61095d565b60405190151581526020016102c3565b34801561036457600080fd5b506103486103733660046122a9565b6109ca565b34801561038457600080fd5b506006546102b9565b34801561039957600080fd5b506102ec6103a83660046122a9565b6109de565b3480156103b957600080fd5b506102ec6103c83660046122cb565b610a0e565b3480156103d957600080fd5b506103486103e836600461212b565b610a63565b3480156103f957600080fd5b506102b96104083660046120d5565b610b25565b34801561041957600080fd5b506102b9610ba3565b34801561042e57600080fd5b506102ec61043d3660046122a9565b610bf5565b34801561044e57600080fd5b5061034861045d3660046120d5565b6000546001600160a01b0391821691161490565b34801561047d57600080fd5b506102ec61048c366004612204565b610c82565b34801561049d57600080fd5b50604051600981526020016102c3565b3480156104b957600080fd5b50601e546103489060ff1681565b3480156104d357600080fd5b506103486104e23660046120d5565b610ce8565b3480156104f357600080fd5b506102ec610502366004612254565b610cf6565b34801561051357600080fd5b506102ec61052236600461216c565b610d3c565b34801561053357600080fd5b506026546103489060ff1681565b34801561054d57600080fd5b506102b961055c3660046120d5565b6001600160a01b031660009081526008602052604090205490565b34801561058357600080fd5b506102b960075481565b34801561059957600080fd5b506102ec6105a8366004612286565b610d8c565b3480156105b957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102c3565b3480156105eb57600080fd5b50604080518082019091526007815266474554444f474560c81b602082015261031b565b34801561061b57600080fd5b506102ec61062a366004612254565b610e0d565b34801561063b57600080fd5b506102ec61064a3660046120f2565b610e46565b34801561065b57600080fd5b506018546105c7906001600160a01b031681565b34801561067b57600080fd5b5061034861068a3660046121a1565b610e99565b34801561069b57600080fd5b506102ec610ea6565b3480156106b057600080fd5b506102ec6106bf3660046120d5565b610ed2565b3480156106d057600080fd5b506102b960195481565b3480156106e657600080fd5b506013546105c7906001600160a01b031681565b34801561070657600080fd5b506102b9610715366004612254565b610f23565b34801561072657600080fd5b506102b9610f67565b34801561073b57600080fd5b506102b961074a3660046120f2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561078157600080fd5b506102ec6107903660046121e8565b610fda565b3480156107a157600080fd5b50601e5461034890610100900460ff1681565b3480156107c057600080fd5b506014546105c7906001600160a01b031681565b3480156107e057600080fd5b506102ec6107ef3660046120d5565b611016565b34801561080057600080fd5b506102ec611061565b34801561081557600080fd5b506102b96108243660046121cd565b6110bf565b34801561083557600080fd5b506102ec6108443660046120d5565b61111b565b34801561085557600080fd5b506102ec6111b1565b34801561086a57600080fd5b506102ec61087936600461216c565b611210565b34801561088a57600080fd5b506102ec61089936600461216c565b611318565b3480156108aa57600080fd5b506017546105c7906001600160a01b031681565b3480156108ca57600080fd5b506103486108d93660046120d5565b611368565b6108e733611368565b61090c5760405162461bcd60e51b81526004016109039061244e565b60405180910390fd5b600d859055600e849055600f83905560108290556109368261093085818989611386565b90611386565b60115560128190556109496004826124c7565b6011541061095657600080fd5b5050505050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109b89086815260200190565b60405180910390a35060015b92915050565b6000826109d683610f23565b119392505050565b6109e733611368565b610a035760405162461bcd60e51b81526004016109039061244e565b601591909155601655565b610a1733611368565b610a335760405162461bcd60e51b81526004016109039061244e565b6002610a3f83856124c7565b11158015610a4c57508183115b610a5557600080fd5b601a92909255601b55601d55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b10576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610aeb9184906113e5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b1b84848461141f565b90505b9392505050565b6024805460405163051fa63360e31b81526001600160a01b0384811660048301526000939216916328fd3198910160206040518083038186803b158015610b6b57600080fd5b505afa158015610b7f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c4919061226d565b6005546001600160a01b0316600090815260086020526040812054610bf0906004546001600160a01b0316600090815260086020526040902054610bea906006549061176d565b9061176d565b905090565b610bfe33611368565b610c1a5760405162461bcd60e51b81526004016109039061244e565b602480546040516316a4744b60e11b8152600481018590529182018390526001600160a01b031690632d48e896906044015b600060405180830381600087803b158015610c6657600080fd5b505af1158015610c7a573d6000803e3d6000fd5b505050505050565b610c8b33611368565b610ca75760405162461bcd60e51b81526004016109039061244e565b601e8054601f9590955560006020556021939093556022919091554360235561ffff1990921692151561ff0019169290921761010091151591909102179055565b60006109c48260001961095d565b610cff33611368565b610d1b5760405162461bcd60e51b81526004016109039061244e565b6103e8600654610d2b91906124c7565b811015610d3757600080fd5b600755565b610d4533611368565b610d615760405162461bcd60e51b81526004016109039061244e565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610d9533611368565b610db15760405162461bcd60e51b81526004016109039061244e565b600454610dc89083906001600160a01b03166117af565b8015610e095742601c55601d546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b5050565b610e1633611368565b610e325760405162461bcd60e51b81526004016109039061244e565b620b71b08110610e4157600080fd5b602555565b610e4f33611368565b610e6b5760405162461bcd60e51b81526004016109039061244e565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610b1e33848461141f565b610eaf33611368565b610ecb5760405162461bcd60e51b81526004016109039061244e565b6000601c55565b6000546001600160a01b03163314610efc5760405162461bcd60e51b81526004016109039061242e565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60006109c4610f30610ba3565b6018546001600160a01b0316600090815260086020526040902054610f6190610f5a9060026118b8565b85906118b8565b90611937565b600080610f8542610bea601d54601c5461138690919063ffffffff16565b90506000610fac601154610bea601b54610f61601a546011546118b890919063ffffffff16565b9050610fd3610fca601d54610f6185856118b890919063ffffffff16565b60115490611386565b9250505090565b610fe333611368565b610fff5760405162461bcd60e51b81526004016109039061244e565b6026805460ff191692151592909217909155602755565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016109039061242e565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60248054604051630afbf02f60e11b81523360048201526001600160a01b03909116916315f7e05e9101600060405180830381600087803b1580156110a557600080fd5b505af11580156110b9573d6000803e3d6000fd5b50505050565b60004360195460016110d191906124af565b106110e4576012546109c490600161176d565b818015611106575042611104601d54601c5461138690919063ffffffff16565b115b15611113576109c4610f67565b505060115490565b6000546001600160a01b031633146111455760405162461bcd60e51b81526004016109039061242e565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6111ba33611368565b6111d65760405162461bcd60e51b81526004016109039061244e565b60145460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610e09573d6000803e3d6000fd5b61121933611368565b6112355760405162461bcd60e51b81526004016109039061244e565b6001600160a01b038216301480159061125c57506018546001600160a01b03838116911614155b61126557600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556112cd5760248054604051630a5b654b60e11b81526001600160a01b0385811660048301526000938201939093529116906314b6ca9690604401610c4c565b602480546001600160a01b0384811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401610c4c565b61132133611368565b61133d5760405162461bcd60e51b81526004016109039061244e565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b60008061139383856124af565b905083811015610b1e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610903565b600081848411156114095760405162461bcd60e51b815260040161090391906123d9565b5060006114168486612508565b95945050505050565b60285460009060ff161561143f57611438848484611979565b9050610b1e565b6114498483611a5f565b611451611ac8565b1561145e5761145e611b17565b611466611ef3565b1561147357611473611f4e565b60195415801561149057506018546001600160a01b038481169116145b156114c0576001600160a01b0384166000908152600860205260409020546114b757600080fd5b6114c043601955565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546115129184906113e5565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16156115475782611552565b611552858585611fe0565b6001600160a01b0385166000908152600860205260409020549091506115789082611386565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff1661161e57602480546001600160a01b0387811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401600060405180830381600087803b15801561160b57600080fd5b505af192505050801561161c575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166116b157602480546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b815260048101929092529381019390935216906314b6ca9690604401600060405180830381600087803b15801561169e57600080fd5b505af19250505080156116af575060015b505b6024546025546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916116e99160040190815260200190565b600060405180830381600087803b15801561170357600080fd5b505af1925050508015611714575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161175a91815260200190565b60405180910390a3506001949350505050565b6000610b1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113e5565b6028805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906117fd576117fd612535565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061183157611831612535565b6001600160a01b03928316602091820292909201015260175460405163b6f9de9560e01b815291169063b6f9de95908590611877906000908690889042906004016123a4565b6000604051808303818588803b15801561189057600080fd5b505af11580156118a4573d6000803e3d6000fd5b50506028805460ff19169055505050505050565b6000826118c7575060006109c4565b60006118d383856124e9565b9050826118e085836124c7565b14610b1e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610903565b6000610b1e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612092565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119ca9184906113e5565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119f99083611386565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a4d9086815260200190565b60405180910390a35060019392505050565b60075481111580611a8857506001600160a01b0382166000908152600b602052604090205460ff165b610e095760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610903565b6018546000906001600160a01b03163314801590611ae9575060285460ff16155b8015611af7575060265460ff165b8015610bf057505060275430600090815260086020526040902054101590565b6028805460ff19166001179055601554601654600091611b36916109ca565b611b4257600d54611b45565b60005b90506000611b696002610f61601154610f61866027546118b890919063ffffffff16565b90506000611b828260275461176d90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611bbc57611bbc612535565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611bed57611bed612535565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611c37908690600090879030904290600401612473565b600060405180830381600087803b158015611c5157600080fd5b505af1158015611c65573d6000803e3d6000fd5b505050506000611c7e824761176d90919063ffffffff16565b90506000611c99611c90886002611937565b6011549061176d565b90506000611cae6002610f618481878d6118b8565b90506000611ccb83610f61600f54876118b890919063ffffffff16565b90506000611ce884610f61601054886118b890919063ffffffff16565b9050602460009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3a57600080fd5b505af193505050508015611d4c575060015b506014546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611d9f576040519150601f19603f3d011682016040523d82523d6000602084013e611da4565b606091505b5050905080611df55760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610903565b8915611edc5760175460135460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c4016060604051808303818588803b158015611e6657600080fd5b505af1158015611e7a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e9f91906122f7565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506028805460ff19169055505050505050505050565b6018546000906001600160a01b03163314801590611f14575060285460ff16155b8015611f225750601e5460ff165b8015611f3d575043602254602354611f3a91906124af565b11155b8015610bf057505060215447101590565b602154600454611f6791906001600160a01b03166117af565b601e54610100900460ff1615611fb25742601c55601d546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b43602355602154602054611fc591611386565b6020819055601f541015611fde57601e805460ff191690555b565b60125460185460009182916120129190610f619061200b906001600160a01b038981169116146110bf565b86906118b8565b3060009081526008602052604090205490915061202f9082611386565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120809085815260200190565b60405180910390a3611416838261176d565b600081836120b35760405162461bcd60e51b815260040161090391906123d9565b50600061141684866124c7565b803580151581146120d057600080fd5b919050565b6000602082840312156120e757600080fd5b8135610b1e8161254b565b6000806040838503121561210557600080fd5b82356121108161254b565b915060208301356121208161254b565b809150509250929050565b60008060006060848603121561214057600080fd5b833561214b8161254b565b9250602084013561215b8161254b565b929592945050506040919091013590565b6000806040838503121561217f57600080fd5b823561218a8161254b565b9150612198602084016120c0565b90509250929050565b600080604083850312156121b457600080fd5b82356121bf8161254b565b946020939093013593505050565b6000602082840312156121df57600080fd5b610b1e826120c0565b600080604083850312156121fb57600080fd5b6121bf836120c0565b600080600080600060a0868803121561221c57600080fd5b612225866120c0565b9450602086013593506040860135925060608601359150612248608087016120c0565b90509295509295909350565b60006020828403121561226657600080fd5b5035919050565b60006020828403121561227f57600080fd5b5051919050565b6000806040838503121561229957600080fd5b82359150612198602084016120c0565b600080604083850312156122bc57600080fd5b50508035926020909101359150565b6000806000606084860312156122e057600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561230c57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561233d57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600081518084526020808501945080840160005b838110156123995781516001600160a01b031687529582019590820190600101612374565b509495945050505050565b8481526080602082015260006123bd6080830186612360565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b81811015612406578581018301518582016040015282016123ea565b81811115612418576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b85815284602082015260a06040820152600061249260a0830186612360565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156124c2576124c261251f565b500190565b6000826124e457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156125035761250361251f565b500290565b60008282101561251a5761251a61251f565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461256057600080fd5b5056fea26469706673582212208263bc5d39ad840bec3af7f5ed274836ad64aa64394e71dd600656af8e83cb9f64736f6c634300080500336080604052600180546001600160a01b031990811673ba2ae424d960c26247dd6c32edc70b295c744c43179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d556305f5e100600e5534801561007957600080fd5b50604051611067380380611067833981016040819052610098916100f2565b6001600160a01b0381166100c0577310ed43c718714eb63d5aa57b78b54704e256024e6100c2565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610122565b60006020828403121561010457600080fd5b81516001600160a01b038116811461011b57600080fd5b9392505050565b610f36806101316000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461022e578063efca2eed14610244578063ffb2c4791461025a578063ffd49c841461027a57600080fd5b8063997664d7146101b9578063ce7c2ac2146101cf578063d0e30db01461022657600080fd5b806328fd3198116100bb57806328fd31981461014d5780632d48e8961461016d5780633a98ef391461018d5780634fab0ae8146101a357600080fd5b806311ce023d146100e257806314b6ca961461010b57806315f7e05e1461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610cd4565b610290565b005b34801561013957600080fd5b5061012b610148366004610cb9565b610408565b34801561015957600080fd5b506100f8610168366004610cb9565b61042b565b34801561017957600080fd5b5061012b610188366004610d52565b6104b4565b34801561019957600080fd5b506100f860085481565b3480156101af57600080fd5b506100f8600e5481565b3480156101c557600080fd5b506100f860095481565b3480156101db57600080fd5b5061020b6101ea366004610cb9565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104d6565b34801561023a57600080fd5b506100f8600b5481565b34801561025057600080fd5b506100f8600a5481565b34801561026657600080fd5b5061012b610275366004610d20565b610723565b34801561028657600080fd5b506100f8600d5481565b6000546001600160a01b031633146102a757600080fd5b6001600160a01b038216600090815260076020526040902054156102ce576102ce82610823565b6000811180156102f457506001600160a01b038216600090815260076020526040902054155b1561035a57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561038d565b8015801561037f57506001600160a01b03821660009081526007602052604090205415155b1561038d5761038d8261094e565b6001600160a01b0382166000908152600760205260409020546008546103be9183916103b891610a63565b90610aae565b6008556001600160a01b03821660009081526007602052604090208190556103e581610b12565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6000546001600160a01b0316331461041f57600080fd5b61042881610823565b50565b6001600160a01b03811660009081526007602052604081205461045057506000919050565b6001600160a01b03821660009081526007602052604081205461047290610b12565b6001600160a01b0384166000908152600760205260409020600101549091508082116104a2575060009392505050565b6104ac8282610a63565b949350505050565b6000546001600160a01b031633146104cb57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104ed57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561053157600080fd5b505afa158015610545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105699190610d39565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b0316918391506000906105af576105af610eea565b6001600160a01b03928316602091820292909201015260018054835192169183919081106105df576105df610eea565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061062590600090869030904290600401610d74565b6000604051808303818588803b15801561063e57600080fd5b505af1158015610652573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506106e193508692506001600160a01b03909116906370a082319060240160206040518083038186803b1580156106a357600080fd5b505afa1580156106b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106db9190610d39565b90610a63565b6009549091506106f19082610aae565b600955600854600c5461071b916107129161070c9085610b2f565b90610bae565b600b5490610aae565b600b55505050565b6000546001600160a01b0316331461073a57600080fd5b60045480610746575050565b6000805a905060005b848310801561075d57508381105b1561081c5783600f5410610771576000600f555b6107a36004600f548154811061078957610789610eea565b6000918252602090912001546001600160a01b0316610bf0565b156107da576107da6004600f54815481106107c0576107c0610eea565b6000918252602090912001546001600160a01b0316610823565b6107ef6107e85a8490610a63565b8490610aae565b92505a600f8054919350600061080483610ea3565b9190505550808061081490610ea3565b91505061074f565b5050505050565b6001600160a01b0381166000908152600760205260409020546108435750565b600061084e8261042b565b9050801561094a57600a546108639082610aae565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156108b457600080fd5b505af11580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190610cfe565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109209082610aae565b6001600160a01b03831660009081526007602052604090206002810191909155546103e590610b12565b5050565b6004805461095e90600190610e8c565b8154811061096e5761096e610eea565b60009182526020808320909101546001600160a01b03848116845260059092526040909220546004805492909316929181106109ac576109ac610eea565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916109f890600190610e8c565b81548110610a0857610a08610eea565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610a3e57610a3e610ed4565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610aa583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c35565b90505b92915050565b600080610abb8385610e33565b905083811015610aa55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610aa8600c5461070c600b5485610b2f90919063ffffffff16565b600082610b3e57506000610aa8565b6000610b4a8385610e6d565b905082610b578583610e4b565b14610aa55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b09565b6000610aa583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c6f565b600d546001600160a01b03821660009081526006602052604081205490914291610c1a9190610e33565b108015610aa85750600e54610c2e8361042b565b1192915050565b60008184841115610c595760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e8c565b95945050505050565b60008183610c905760405162461bcd60e51b8152600401610b099190610dde565b506000610c668486610e4b565b80356001600160a01b0381168114610cb457600080fd5b919050565b600060208284031215610ccb57600080fd5b610aa582610c9d565b60008060408385031215610ce757600080fd5b610cf083610c9d565b946020939093013593505050565b600060208284031215610d1057600080fd5b81518015158114610aa557600080fd5b600060208284031215610d3257600080fd5b5035919050565b600060208284031215610d4b57600080fd5b5051919050565b60008060408385031215610d6557600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610dbe5784516001600160a01b031683529383019391830191600101610d99565b50506001600160a01b039690961660408501525050506060015292915050565b600060208083528351808285015260005b81811015610e0b57858101830151858201604001528201610def565b81811115610e1d576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610e4657610e46610ebe565b500190565b600082610e6857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610e8757610e87610ebe565b500290565b600082821015610e9e57610e9e610ebe565b500390565b6000600019821415610eb757610eb7610ebe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212209f25a5bc3cfaec63c6f49d08de6516e4be102dfaff9d1c2efcd7e615c766f61e64736f6c6343000805003300000000000000000000000001bab19deef1771ba4d232a97896fef6126ddd5600000000000000000000000001bab19deef1771ba4d232a97896fef6126ddd56

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000001bab19deef1771ba4d232a97896fef6126ddd5600000000000000000000000001bab19deef1771ba4d232a97896fef6126ddd56

-----Decoded View---------------
Arg [0] : _presaler (address): 0x01bab19deef1771ba4d232a97896fef6126ddd56
Arg [1] : _presaleContract (address): 0x01bab19deef1771ba4d232a97896fef6126ddd56

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000001bab19deef1771ba4d232a97896fef6126ddd56
Arg [1] : 00000000000000000000000001bab19deef1771ba4d232a97896fef6126ddd56


Deployed ByteCode Sourcemap

12647:15238:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14522:51;;;;;;;;;;;;;;;;;;;11149:25:1;;;11137:2;11122:18;14522:51:0;;;;;;;;25398:496;;;;;;;;;;-1:-1:-1;25398:496:0;;;;;:::i;:::-;;:::i;:::-;;15956:80;;;;;;;;;;-1:-1:-1;16028:5:0;;;;;;;;;;;;-1:-1:-1;;;16028:5:0;;;;15956:80;;;;;;;:::i;16378:216::-;;;;;;;;;;-1:-1:-1;16378:216:0;;;;;:::i;:::-;;:::i;:::-;;;7496:14:1;;7489:22;7471:41;;7459:2;7444:18;16378:216:0;7426:92:1;27610:150:0;;;;;;;;;;-1:-1:-1;27610:150:0;;;;;:::i;:::-;;:::i;15686:88::-;;;;;;;;;;-1:-1:-1;15759:12:0;;15686:88;;26302:183;;;;;;;;;;-1:-1:-1;26302:183:0;;;;;:::i;:::-;;:::i;24099:342::-;;;;;;;;;;-1:-1:-1;24099:342:0;;;;;:::i;:::-;;:::i;16896:370::-;;;;;;;;;;-1:-1:-1;16896:370:0;;;;;:::i;:::-;;:::i;26982:146::-;;;;;;;;;;-1:-1:-1;26982:146:0;;;;;:::i;:::-;;:::i;27285:142::-;;;;;;;;;;;;;:::i;26685:183::-;;;;;;;;;;-1:-1:-1;26685:183:0;;;;;:::i;:::-;;:::i;4491:103::-;;;;;;;;;;-1:-1:-1;4491:103:0;;;;;:::i;:::-;4546:4;4581:5;-1:-1:-1;;;;;4570:16:0;;;4581:5;;4570:16;;4491:103;23646:445;;;;;;;;;;-1:-1:-1;23646:445:0;;;;;:::i;:::-;;:::i;15780:80::-;;;;;;;;;;-1:-1:-1;15780:80:0;;13090:1;12167:36:1;;12155:2;12140:18;15780:80:0;12122:87:1;14143:38:0;;;;;;;;;;-1:-1:-1;14143:38:0;;;;;;;;16602:122;;;;;;;;;;-1:-1:-1;16602:122:0;;;;;:::i;:::-;;:::i;24626:145::-;;;;;;;;;;-1:-1:-1;24626:145:0;;;;;:::i;:::-;;:::i;25134:120::-;;;;;;;;;;-1:-1:-1;25134:120:0;;;;;:::i;:::-;;:::i;14485:30::-;;;;;;;;;;-1:-1:-1;14485:30:0;;;;;;;;16126:105;;;;;;;;;;-1:-1:-1;16126:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;16210:18:0;16192:7;16210:18;;;:9;:18;;;;;;;16126:105;13163:49;;;;;;;;;;;;;;;;22347:318;;;;;;;;;;-1:-1:-1;22347:318:0;;;;;:::i;:::-;;:::i;16042:78::-;;;;;;;;;;-1:-1:-1;16094:7:0;16112:5;-1:-1:-1;;;;;16112:5:0;16042:78;;;-1:-1:-1;;;;;5893:32:1;;;5875:51;;5863:2;5848:18;16042:78:0;5830:102:1;15866:84:0;;;;;;;;;;-1:-1:-1;15940:7:0;;;;;;;;;;;;-1:-1:-1;;;15940:7:0;;;;15866:84;;27137:136;;;;;;;;;;-1:-1:-1;27137:136:0;;;;;:::i;:::-;;:::i;25902:228::-;;;;;;;;;;-1:-1:-1;25902:228:0;;;;;:::i;:::-;;:::i;13889:19::-;;;;;;;;;;-1:-1:-1;13889:19:0;;;;-1:-1:-1;;;;;13889:19:0;;;16732:156;;;;;;;;;;-1:-1:-1;16732:156:0;;;;;:::i;:::-;;:::i;22677:105::-;;;;;;;;;;;;;:::i;4164:94::-;;;;;;;;;;-1:-1:-1;4164:94:0;;;;;:::i;:::-;;:::i;13917:25::-;;;;;;;;;;;;;;;;13687:36;;;;;;;;;;-1:-1:-1;13687:36:0;;;;-1:-1:-1;;;;;13687:36:0;;;27435:167;;;;;;;;;;-1:-1:-1;27435:167:0;;;;;:::i;:::-;;:::i;19294:391::-;;;;;;;;;;;;;:::i;16237:133::-;;;;;;;;;;-1:-1:-1;16237:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;16339:19:0;;;16321:7;16339:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16237:133;26138:156;;;;;;;;;;-1:-1:-1;26138:156:0;;;;;:::i;:::-;;:::i;14188:40::-;;;;;;;;;;-1:-1:-1;14188:40:0;;;;;;;;;;;13730:35;;;;;;;;;;-1:-1:-1;13730:35:0;;;;-1:-1:-1;;;;;13730:35:0;;;4334:97;;;;;;;;;;-1:-1:-1;4334:97:0;;;;;:::i;:::-;;:::i;26880:90::-;;;;;;;;;;;;;:::i;18980:306::-;;;;;;;;;;-1:-1:-1;18980:306:0;;;;;:::i;:::-;;:::i;4891:173::-;;;;;;;;;;-1:-1:-1;4891:173:0;;;;;:::i;:::-;;:::i;26493:180::-;;;;;;;;;;;;;:::i;24779:347::-;;;;;;;;;;-1:-1:-1;24779:347:0;;;;;:::i;:::-;;:::i;25262:128::-;;;;;;;;;;-1:-1:-1;25262:128:0;;;;;:::i;:::-;;:::i;13858:24::-;;;;;;;;;;-1:-1:-1;13858:24:0;;;;-1:-1:-1;;;;;13858:24:0;;;4665:107;;;;;;;;;;-1:-1:-1;4665:107:0;;;;;:::i;:::-;;:::i;25398:496::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;;;;;;;;;25562:12:::1;:28:::0;;;25601:10:::1;:24:::0;;;25636:13:::1;:30:::0;;;25677:12:::1;:28:::0;;;25727:69:::1;25692:13:::0;25727:50:::1;25652:14:::0;25727:50;25577:13;25614:11;25727:17:::1;:30::i;:::-;:34:::0;::::1;:50::i;:69::-;25716:8;:80:::0;25807:14:::1;:32:::0;;;25869:16:::1;25884:1;25824:15:::0;25869:16:::1;:::i;:::-;25858:8;;:27;25850:36;;;::::0;::::1;;25398:496:::0;;;;;:::o;16378:216::-;16482:10;16453:4;16470:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16470:32:0;;;;;;;;;;:41;;;16527:37;16453:4;;16470:32;;16527:37;;;;16505:6;11149:25:1;;11137:2;11122:18;;11104:76;16527:37:0;;;;;;;;-1:-1:-1;16582:4:0;16378:216;;;;;:::o;27610:150::-;27690:4;27746:6;27714:29;27734:8;27714:19;:29::i;:::-;:38;;27610:150;-1:-1:-1;;;27610:150:0:o;26302:183::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;26400:15:::1;:25:::0;;;;26436:26:::1;:41:::0;26302:183::o;24099:342::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;24259:1:::1;24232:23;24244:11:::0;24232:9;:23:::1;:::i;:::-;:28;;:55;;;;;24276:11;24264:9;:23;24232:55;24224:64;;;::::0;::::1;;24299:26;:38:::0;;;;24348:28:::1;:42:::0;24401:23:::1;:32:::0;24099:342::o;16896:370::-;-1:-1:-1;;;;;17016:19:0;;16996:4;17016:19;;;:11;:19;;;;;;;;17036:10;17016:31;;;;;;;;-1:-1:-1;;17016:52:0;17013:186;;17118:69;;;;;;;;;;;-1:-1:-1;;;17118:69:0;;;;;;;;-1:-1:-1;;;;;17118:19:0;;-1:-1:-1;17118:19:0;;;:11;:19;;;;;17138:10;17118:31;;;;;;;;;;:69;;17154:6;;17118:35;:69::i;:::-;-1:-1:-1;;;;;17084:19:0;;;;;;:11;:19;;;;;;;;17104:10;17084:31;;;;;;;:103;17013:186;17218:40;17232:6;17240:9;17251:6;17218:13;:40::i;:::-;17211:47;;16896:370;;;;;;:::o;26982:146::-;27078:11;;;:42;;-1:-1:-1;;;27078:42:0;;-1:-1:-1;;;;;5893:32:1;;;27078:42:0;;;5875:51:1;27051:7:0;;27078:11;;;:29;;5848:18:1;27078:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;27285:142::-;27413:4;;-1:-1:-1;;;;;27413:4:0;27338:7;16210:18;;;:9;:18;;;;;;27365:54;;27392:4;;-1:-1:-1;;;;;27392:4:0;16192:7;16210:18;;;:9;:18;;;;;;27365:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;27358:61;;27285:142;:::o;26685:183::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;26795:11:::1;::::0;;:65:::1;::::0;-1:-1:-1;;;26795:65:0;;::::1;::::0;::::1;11946:25:1::0;;;11987:18;;;11980:34;;;-1:-1:-1;;;;;26795:11:0::1;::::0;:35:::1;::::0;11919:18:1;;26795:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26685:183:::0;;:::o;23646:445::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;23801:18:::1;:29:::0;;23841:14:::1;:21:::0;;;;-1:-1:-1;23873:22:0::1;:26:::0;23910:17:::1;:27:::0;;;;23948:22:::1;:32:::0;;;;24014:12:::1;23991:20;:35:::0;-1:-1:-1;;24037:46:0;;;23801:29;::::1;;-1:-1:-1::0;;24037:46:0;;;;;23801:29:::1;24037:46:::0;::::1;;::::0;;;::::1;;::::0;;23646:445::o;16602:122::-;16657:4;16681:35;16689:7;-1:-1:-1;;16681:7:0;:35::i;24626:145::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;24726:4:::1;24711:12;;:19;;;;:::i;:::-;24701:6;:29;;24693:38;;;::::0;::::1;;24742:12;:21:::0;24626:145::o;25134:120::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25218:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;25218:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25134:120::o;22347:318::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;22473:4:::1;::::0;22455:23:::1;::::0;22465:6;;-1:-1:-1;;;;;22473:4:0::1;22455:9;:23::i;:::-;22492:24;22489:169;;;22563:15;22532:28;:46:::0;22622:23:::1;::::0;22598:48:::1;::::0;11149:25:1;;;22598:48:0::1;::::0;11137:2:1;11122:18;22598:48:0::1;;;;;;;22489:169;22347:318:::0;;:::o;27137:136::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;27227:6:::1;27221:3;:12;27213:21;;;::::0;::::1;;27245:14;:20:::0;27137:136::o;25902:228::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;26021:21:::1;:46:::0;;-1:-1:-1;;;;;26021:46:0;;::::1;-1:-1:-1::0;;;;;;26021:46:0;;::::1;;::::0;;;26078:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;25902:228::o;16732:156::-;16812:4;16836:44;16850:10;16862:9;16873:6;16836:13;:44::i;22677:105::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;22773:1:::1;22742:28;:32:::0;22677:105::o;4164:94::-;4546:4;4581:5;-1:-1:-1;;;;;4581:5:0;3888:10;4570:16;3872:38;;;;-1:-1:-1;;;3872:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4224:19:0::1;;::::0;;;4246:4:::1;4224:19;::::0;;;;;;;:26;;-1:-1:-1;;4224:26:0::1;::::0;;::::1;::::0;;4164:94::o;27435:167::-;27503:7;27530:64;27571:22;:20;:22::i;:::-;27553:4;;-1:-1:-1;;;;;27553:4:0;16192:7;16210:18;;;:9;:18;;;;;;27530:36;;27543:22;;27563:1;27543:19;:22::i;:::-;27530:8;;:12;:36::i;:::-;:40;;:64::i;19294:391::-;19343:7;19363:21;19387:78;19449:15;19387:57;19420:23;;19387:28;;:32;;:57;;;;:::i;:78::-;19363:102;;19476:19;19498:88;19577:8;;19498:74;19543:28;;19498:40;19511:26;;19498:8;;:12;;:40;;;;:::i;:88::-;19476:110;;19604:73;19617:59;19652:23;;19617:30;19633:13;19617:11;:15;;:30;;;;:::i;:59::-;19604:8;;;:12;:73::i;:::-;19597:80;;;;19294:391;:::o;26138:156::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;26230:11:::1;:22:::0;;-1:-1:-1;;26230:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;26263:13:::1;:23:::0;26138:156::o;4334:97::-;4546:4;4581:5;-1:-1:-1;;;;;4581:5:0;3888:10;4570:16;3872:38;;;;-1:-1:-1;;;3872:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4396:19:0::1;4418:5;4396:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4396:27:0::1;::::0;;4334:97::o;26880:90::-;26925:11;;;:37;;-1:-1:-1;;;26925:37:0;;26951:10;26925:37;;;5875:51:1;-1:-1:-1;;;;;26925:11:0;;;;:25;;5848:18:1;26925:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26880:90::o;18980:306::-;19036:7;19077:12;19059:10;;19072:1;19059:14;;;;:::i;:::-;:30;19056:67;;19099:14;;:21;;19118:1;19099:18;:21::i;19056:67::-;19136:7;:86;;;;;19207:15;19147:57;19180:23;;19147:28;;:32;;:57;;;;:::i;:::-;:75;19136:86;19133:120;;;19232:18;:16;:18::i;19133:120::-;-1:-1:-1;;19270:8:0;;;18980:306::o;4891:173::-;4546:4;4581:5;-1:-1:-1;;;;;4581:5:0;3888:10;4570:16;3872:38;;;;-1:-1:-1;;;3872:38:0;;;;;;;:::i;:::-;4967:5:::1;:11:::0;;-1:-1:-1;;;;;;4967:11:0::1;-1:-1:-1::0;;;;;4967:11:0;::::1;::::0;;::::1;::::0;;4989:19;;;-1:-1:-1;4989:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4989:26:0::1;::::0;;::::1;::::0;;;5031:25;;5875:51:1;;;5031:25:0::1;::::0;5848:18:1;5031:25:0::1;;;;;;;4891:173:::0;:::o;26493:180::-;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;26615:20:::1;::::0;26607:58:::1;::::0;26575:21:::1;::::0;-1:-1:-1;;;;;26615:20:0::1;::::0;26607:58;::::1;;;::::0;26575:21;;26546:26:::1;26607:58:::0;26546:26;26607:58;26575:21;26615:20;26607:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;24779:347:::0;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24876:23:0;::::1;24894:4;24876:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;24913:4:0::1;::::0;-1:-1:-1;;;;;24903:14:0;;::::1;24913:4:::0;::::1;24903:14;;24876:41;24868:50;;;::::0;::::1;;-1:-1:-1::0;;;;;24929:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;24929:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;24973:146:::1;;24998:11;::::0;;:31:::1;::::0;-1:-1:-1;;;24998:31:0;;-1:-1:-1;;;;;6353:32:1;;;24998:31:0::1;::::0;::::1;6335:51:1::0;24998:11:0::1;6402:18:1::0;;;6395:34;;;;24998:11:0;::::1;::::0;:20:::1;::::0;6308:18:1;;24998:31:0::1;6290:145:1::0;24973:146:0::1;25060:11;::::0;;-1:-1:-1;;;;;25089:17:0;;::::1;25060:11;25089:17:::0;;;:9:::1;:17;::::0;;;;;;;25060:47;;-1:-1:-1;;;25060:47:0;;::::1;::::0;::::1;6335:51:1::0;;;;6402:18;;;6395:34;;;;25060:11:0::1;::::0;:20:::1;::::0;6308:18:1;;25060:47:0::1;6290:145:1::0;25262:128:0;4049:24;4062:10;4049:12;:24::i;:::-;4041:48;;;;-1:-1:-1;;;4041:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25350:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;25350:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25262:128::o;4665:107::-;-1:-1:-1;;;;;4745:19:0;4721:4;4745:19;;;:14;:19;;;;;;;;;4665:107::o;1221:181::-;1279:7;;1311:5;1315:1;1311;:5;:::i;:::-;1299:17;;1340:1;1335;:6;;1327:46;;;;-1:-1:-1;;;1327:46:0;;9414:2:1;1327:46:0;;;9396:21:1;9453:2;9433:18;;;9426:30;9492:29;9472:18;;;9465:57;9539:18;;1327:46:0;9386:177:1;1550:192:0;1636:7;1672:12;1664:6;;;;1656:29;;;;-1:-1:-1;;;1656:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1696:9:0;1708:5;1712:1;1708;:5;:::i;:::-;1696:17;1550:192;-1:-1:-1;;;;;1550:192:0:o;17274:1060::-;17386:6;;17366:4;;17386:6;;17383:63;;;17402:41;17417:6;17425:9;17436:6;17402:14;:41::i;:::-;17395:48;;;;17383:63;17466:28;17479:6;17487;17466:12;:28::i;:::-;17510:16;:14;:16::i;:::-;17507:35;;;17529:10;:8;:10::i;:::-;17555:19;:17;:19::i;:::-;17552:48;;;17577:20;:18;:20::i;:::-;24516:10;;:15;;;17615:32;;-1:-1:-1;17643:4:0;;-1:-1:-1;;;;;17630:17:0;;;17643:4;;17630:17;17615:32;17612:81;;;-1:-1:-1;;;;;17658:17:0;;17678:1;17658:17;;;:9;:17;;;;;;17650:30;;;;;;17682:8;24598:12;24585:10;:25;24547:71;17682:8;17725:53;;;;;;;;;;;-1:-1:-1;;;17725:53:0;;;;;;;;-1:-1:-1;;;;;17725:17:0;;-1:-1:-1;17725:17:0;;;:9;:17;;;;;;;;:53;;17747:6;;17725:21;:53::i;:::-;-1:-1:-1;;;;;17705:17:0;;;;;;:9;:17;;;;;;;;:73;;;;18945:11;:19;;;;;;;;18944:20;17816:67;;17877:6;17816:67;;;17840:34;17848:6;17856:9;17867:6;17840:7;:34::i;:::-;-1:-1:-1;;;;;17917:20:0;;;;;;:9;:20;;;;;;17791:92;;-1:-1:-1;17917:40:0;;17791:92;17917:24;:40::i;:::-;-1:-1:-1;;;;;17894:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;17974:24;;;;;:16;:24;;;;;;;17970:96;;18005:11;;;-1:-1:-1;;;;;18034:17:0;;;18005:11;18034:17;;;:9;:17;;;;;;;;18005:47;;-1:-1:-1;;;18005:47:0;;;;;6335:51:1;;;;6402:18;;;6395:34;;;;18005:11:0;;:20;;6308:18:1;;18005:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18001:63;;-1:-1:-1;;;;;18080:27:0;;;;;;:16;:27;;;;;;;;18076:105;;18114:11;;;-1:-1:-1;;;;;18146:20:0;;;18114:11;18146:20;;;:9;:20;;;;;;;;18114:53;;-1:-1:-1;;;18114:53:0;;;;;6335:51:1;;;;6402:18;;;6395:34;;;;18114:11:0;;:20;;6308:18:1;;18114:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18110:69;;18197:11;;18217:14;;18197:35;;-1:-1:-1;;;;;;18197:35:0;;-1:-1:-1;;;;;18197:11:0;;;;:19;;:35;;;;11149:25:1;;;11137:2;11122:18;;11104:76;18197:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18193:51;18278:9;-1:-1:-1;;;;;18261:43:0;18270:6;-1:-1:-1;;;;;18261:43:0;;18289:14;18261:43;;;;11149:25:1;;11137:2;11122:18;;11104:76;18261:43:0;;;;;;;;-1:-1:-1;18322:4:0;;17274:1060;-1:-1:-1;;;;17274:1060:0:o;1408:136::-;1466:7;1493:43;1497:1;1500;1493:43;;;;;;;;;;;;;;;;;:3;:43::i;23277:361::-;14630:6;:13;;-1:-1:-1;;14630:13:0;14639:4;14630:13;;;23377:16:::1;::::0;;23391:1:::1;23377:16:::0;;;;;::::1;::::0;;-1:-1:-1;;23377:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;23414:4:0::1;::::0;23404:7;;;;-1:-1:-1;;;;;;23414:4:0::1;::::0;23404:7;;-1:-1:-1;23414:4:0::1;::::0;23404:7:::1;;;;:::i;:::-;;;;;;:14;-1:-1:-1::0;;;;;23404:14:0::1;;;-1:-1:-1::0;;;;;23404:14:0::1;;;::::0;::::1;23447:4;23429;23434:1;23429:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23429:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23465:6:::1;::::0;:165:::1;::::0;-1:-1:-1;;;23465:165:0;;:6;::::1;::::0;:57:::1;::::0;23530:6;;23465:165:::1;::::0;:6:::1;::::0;23568:4;;23587:2;;23604:15:::1;::::0;23465:165:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14648:6:0;:14;;-1:-1:-1;;14648:14:0;;;-1:-1:-1;;;;;;23277:361:0:o;1748:250::-;1806:7;1830:6;1826:47;;-1:-1:-1;1860:1:0;1853:8;;1826:47;1885:9;1897:5;1901:1;1897;:5;:::i;:::-;1885:17;-1:-1:-1;1930:1:0;1921:5;1925:1;1885:17;1921:5;:::i;:::-;:10;1913:56;;;;-1:-1:-1;;;1913:56:0;;10129:2:1;1913:56:0;;;10111:21:1;10168:2;10148:18;;;10141:30;10207:34;10187:18;;;10180:62;-1:-1:-1;;;10258:18:1;;;10251:31;10299:19;;1913:56:0;10101:223:1;2004:132:0;2062:7;2089:39;2093:1;2096;2089:39;;;;;;;;;;;;;;;;;:3;:39::i;18346:330::-;18476:53;;;;;;;;;;;-1:-1:-1;;;18476:53:0;;;;;;;;-1:-1:-1;;;;;18476:17:0;;18439:4;18476:17;;;:9;:17;;;;;;;:53;;18498:6;;18476:21;:53::i;:::-;-1:-1:-1;;;;;18456:17:0;;;;;;;:9;:17;;;;;;:73;;;;18563:20;;;;;;;:32;;18588:6;18563:24;:32::i;:::-;-1:-1:-1;;;;;18540:20:0;;;;;;;:9;:20;;;;;;;:55;;;;18611:35;;;;;;;;;;18639:6;11149:25:1;;11137:2;11122:18;;11104:76;18611:35:0;;;;;;;;-1:-1:-1;18664:4:0;18346:330;;;;;:::o;18684:166::-;18781:12;;18771:6;:22;;:49;;;-1:-1:-1;;;;;;18797:23:0;;;;;;:15;:23;;;;;;;;18771:49;18763:79;;;;-1:-1:-1;;;18763:79:0;;9068:2:1;18763:79:0;;;9050:21:1;9107:2;9087:18;;;9080:30;-1:-1:-1;;;9126:18:1;;;9119:47;9183:18;;18763:79:0;9040:167:1;20073:197:0;20160:4;;20122;;-1:-1:-1;;;;;20160:4:0;20146:10;:18;;;;:38;;-1:-1:-1;20178:6:0;;;;20177:7;20146:38;:62;;;;-1:-1:-1;20197:11:0;;;;20146:62;:116;;;;-1:-1:-1;;20249:13:0;;20239:4;20221:24;;;;:9;:24;;;;;;:41;;;20073:197::o;20278:1755::-;14630:6;:13;;-1:-1:-1;;14630:13:0;14639:4;14630:13;;;20373:15:::1;::::0;20390:26:::1;::::0;14630:6;;20357:60:::1;::::0;:15:::1;:60::i;:::-;:79;;20424:12;;20357:79;;;20420:1;20357:79;20327:109;;20447:23;20473:59;20530:1;20473:52;20516:8;;20473:38;20491:19;20473:13;;:17;;:38;;;;:::i;:59::-;20447:85;;20543:20;20566:34;20584:15;20566:13;;:17;;:34;;;;:::i;:::-;20637:16;::::0;;20651:1:::1;20637:16:::0;;;;;::::1;::::0;;20543:57;;-1:-1:-1;20613:21:0::1;::::0;20637:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20637:16:0::1;20613:40;;20682:4;20664;20669:1;20664:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20664:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;20708:4:::1;::::0;20698:7;;20708:4;::::1;::::0;20698;;20708;;20698:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;20698:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;20783:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;20783:188:0;;20749:21:::1;::::0;20783:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;20855:12;;20725:21:::1;::::0;20898:4;;20925::::1;::::0;20945:15:::1;::::0;20783:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20982:17;21002:40;21028:13;21002:21;:25;;:40;;;;:::i;:::-;20982:60:::0;-1:-1:-1;21053:19:0::1;21075:40;21088:26;:19:::0;21112:1:::1;21088:23;:26::i;:::-;21075:8;::::0;;:12:::1;:40::i;:::-;21053:62:::0;-1:-1:-1;21126:26:0::1;21155:58;21211:1;21155:51;21053:62:::0;21155:51;:9;21169:19;21155:13:::1;:34::i;:58::-;21126:87;;21224:27;21254:45;21287:11;21254:28;21268:13;;21254:9;:13;;:28;;;;:::i;:45::-;21224:75;;21310:26;21339:44;21371:11;21339:27;21353:12;;21339:9;:13;;:27;;;;:::i;:44::-;21310:73;;21400:11;;;;;;;;;-1:-1:-1::0;;;;;21400:11:0::1;-1:-1:-1::0;;;;;21400:19:0::1;;21427;21400:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;21521:20:0::1;::::0;21513:77:::1;::::0;21472:12:::1;::::0;-1:-1:-1;;;;;21521:20:0::1;::::0;21580:5:::1;::::0;21555:18;;21472:12;21513:77;21472:12;21513:77;21555:18;21521:20;21580:5;21513:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21471:119;;;21609:7;21601:50;;;::::0;-1:-1:-1;;;21601:50:0;;9770:2:1;21601:50:0::1;::::0;::::1;9752:21:1::0;9809:2;9789:18;;;9782:30;9848:32;9828:18;;;9821:60;9898:18;;21601:50:0::1;9742:180:1::0;21601:50:0::1;21667:19:::0;;21664:362:::1;;21702:6;::::0;21876:21:::1;::::0;21702:244:::1;::::0;-1:-1:-1;;;21702:244:0;;21778:4:::1;21702:244;::::0;::::1;7060:34:1::0;7110:18;;;7103:34;;;21702:6:0::1;7153:18:1::0;;;7146:34;;;7196:18;;;7189:34;-1:-1:-1;;;;;21876:21:0;;::::1;7239:19:1::0;;;7232:44;21916:15:0::1;7292:19:1::0;;;7285:35;21702:6:0;::::1;::::0;:22:::1;::::0;21732:18;;6994:19:1;;21702:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;21966:48:0::1;::::0;;11946:25:1;;;12002:2;11987:18;;11980:34;;;21966:48:0::1;::::0;-1:-1:-1;11919:18:1;21966:48:0::1;;;;;;;21664:362;-1:-1:-1::0;;14648:6:0;:14;;-1:-1:-1;;14648:14:0;;;-1:-1:-1;;;;;;;;;20278:1755:0:o;22041:298::-;22131:4;;22093;;-1:-1:-1;;;;;22131:4:0;22117:10;:18;;;;:42;;-1:-1:-1;22153:6:0;;;;22152:7;22117:42;:77;;;;-1:-1:-1;22176:18:0;;;;22117:77;:155;;;;;22260:12;22234:22;;22211:20;;:45;;;;:::i;:::-;:61;;22117:155;:214;;;;-1:-1:-1;;22314:17:0;;22289:21;:42;;;22041:298::o;22790:479::-;22850:17;;22869:4;;22840:34;;22850:17;-1:-1:-1;;;;;22869:4:0;22840:9;:34::i;:::-;22888:21;;;;;;;22885:166;;;22956:15;22925:28;:46;23015:23;;22991:48;;11149:25:1;;;22991:48:0;;11137:2:1;11122:18;22991:48:0;;;;;;;22885:166;23084:12;23061:20;:35;23159:17;;23132:22;;:45;;:26;:45::i;:::-;23107:22;:70;;;23216:14;;-1:-1:-1;23188:74:0;;;23233:18;:26;;-1:-1:-1;;23233:26:0;;;23188:74;22790:479::o;19693:372::-;19864:14;;19853:4;;19778:7;;;;19818:61;;19864:14;19818:41;;19829:29;;-1:-1:-1;;;;;19841:16:0;;;19853:4;;19841:16;19829:11;:29::i;:::-;19818:6;;:10;:41::i;:61::-;19937:4;19919:24;;;;:9;:24;;;;;;19798:81;;-1:-1:-1;19919:39:0;;19798:81;19919:28;:39::i;:::-;19910:4;19892:24;;;;:9;:24;;;;;;;:66;;;;19974:42;;-1:-1:-1;;;;;19974:42:0;;;;;;;20006:9;11149:25:1;;11137:2;11122:18;;11104:76;19974:42:0;;;;;;;;20036:21;:6;20047:9;20036:10;:21::i;2142:345::-;2228:7;2330:12;2323:5;2315:28;;;;-1:-1:-1;;;2315:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2354:9:0;2366:5;2370:1;2366;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;307:1;304;297:12;259:2;346:9;333:23;365:31;390:5;365:31;:::i;691:388::-;759:6;767;820:2;808:9;799:7;795:23;791:32;788:2;;;836:1;833;826:12;788:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;778:301;;;;;:::o;1084:456::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1246:1;1243;1236:12;1198:2;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:1;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1188:352;;1476:7;;-1:-1:-1;;;1530:2:1;1515:18;;;;1502:32;;1188:352::o;1545:315::-;1610:6;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:2;;;1687:1;1684;1677:12;1639:2;1726:9;1713:23;1745:31;1770:5;1745:31;:::i;:::-;1795:5;-1:-1:-1;1819:35:1;1850:2;1835:18;;1819:35;:::i;:::-;1809:45;;1629:231;;;;;:::o;1865:315::-;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:2;;;2010:1;2007;2000:12;1962:2;2049:9;2036:23;2068:31;2093:5;2068:31;:::i;:::-;2118:5;2170:2;2155:18;;;;2142:32;;-1:-1:-1;;;1952:228:1:o;2185:180::-;2241:6;2294:2;2282:9;2273:7;2269:23;2265:32;2262:2;;;2310:1;2307;2300:12;2262:2;2333:26;2349:9;2333:26;:::i;2370:248::-;2435:6;2443;2496:2;2484:9;2475:7;2471:23;2467:32;2464:2;;;2512:1;2509;2502:12;2464:2;2535:26;2551:9;2535:26;:::i;2623:454::-;2712:6;2720;2728;2736;2744;2797:3;2785:9;2776:7;2772:23;2768:33;2765:2;;;2814:1;2811;2804:12;2765:2;2837:26;2853:9;2837:26;:::i;:::-;2827:36;;2910:2;2899:9;2895:18;2882:32;2872:42;;2961:2;2950:9;2946:18;2933:32;2923:42;;3012:2;3001:9;2997:18;2984:32;2974:42;;3035:36;3066:3;3055:9;3051:19;3035:36;:::i;:::-;3025:46;;2755:322;;;;;;;;:::o;3082:180::-;3141:6;3194:2;3182:9;3173:7;3169:23;3165:32;3162:2;;;3210:1;3207;3200:12;3162:2;-1:-1:-1;3233:23:1;;3152:110;-1:-1:-1;3152:110:1:o;3267:184::-;3337:6;3390:2;3378:9;3369:7;3365:23;3361:32;3358:2;;;3406:1;3403;3396:12;3358:2;-1:-1:-1;3429:16:1;;3348:103;-1:-1:-1;3348:103:1:o;3456:248::-;3521:6;3529;3582:2;3570:9;3561:7;3557:23;3553:32;3550:2;;;3598:1;3595;3588:12;3550:2;3634:9;3621:23;3611:33;;3663:35;3694:2;3683:9;3679:18;3663:35;:::i;3709:248::-;3777:6;3785;3838:2;3826:9;3817:7;3813:23;3809:32;3806:2;;;3854:1;3851;3844:12;3806:2;-1:-1:-1;;3877:23:1;;;3947:2;3932:18;;;3919:32;;-1:-1:-1;3796:161:1:o;3962:316::-;4039:6;4047;4055;4108:2;4096:9;4087:7;4083:23;4079:32;4076:2;;;4124:1;4121;4114:12;4076:2;-1:-1:-1;;4147:23:1;;;4217:2;4202:18;;4189:32;;-1:-1:-1;4268:2:1;4253:18;;;4240:32;;4066:212;-1:-1:-1;4066:212:1:o;4283:306::-;4371:6;4379;4387;4440:2;4428:9;4419:7;4415:23;4411:32;4408:2;;;4456:1;4453;4446:12;4408:2;4485:9;4479:16;4469:26;;4535:2;4524:9;4520:18;4514:25;4504:35;;4579:2;4568:9;4564:18;4558:25;4548:35;;4398:191;;;;;:::o;4594:454::-;4689:6;4697;4705;4713;4721;4774:3;4762:9;4753:7;4749:23;4745:33;4742:2;;;4791:1;4788;4781:12;4742:2;-1:-1:-1;;4814:23:1;;;4884:2;4869:18;;4856:32;;-1:-1:-1;4935:2:1;4920:18;;4907:32;;4986:2;4971:18;;4958:32;;-1:-1:-1;5037:3:1;5022:19;5009:33;;-1:-1:-1;4732:316:1;-1:-1:-1;4732:316:1:o;5053:461::-;5106:3;5144:5;5138:12;5171:6;5166:3;5159:19;5197:4;5226:2;5221:3;5217:12;5210:19;;5263:2;5256:5;5252:14;5284:1;5294:195;5308:6;5305:1;5302:13;5294:195;;;5373:13;;-1:-1:-1;;;;;5369:39:1;5357:52;;5429:12;;;;5464:15;;;;5405:1;5323:9;5294:195;;;-1:-1:-1;5505:3:1;;5114:400;-1:-1:-1;;;;;5114:400:1:o;7749:510::-;8020:6;8009:9;8002:25;8063:3;8058:2;8047:9;8043:18;8036:31;7983:4;8084:57;8136:3;8125:9;8121:19;8113:6;8084:57;:::i;:::-;-1:-1:-1;;;;;8177:32:1;;;;8172:2;8157:18;;8150:60;-1:-1:-1;8241:2:1;8226:18;8219:34;8076:65;7992:267;-1:-1:-1;;7992:267:1:o;8264:597::-;8376:4;8405:2;8434;8423:9;8416:21;8466:6;8460:13;8509:6;8504:2;8493:9;8489:18;8482:34;8534:1;8544:140;8558:6;8555:1;8552:13;8544:140;;;8653:14;;;8649:23;;8643:30;8619:17;;;8638:2;8615:26;8608:66;8573:10;;8544:140;;;8702:6;8699:1;8696:13;8693:2;;;8772:1;8767:2;8758:6;8747:9;8743:22;8739:31;8732:42;8693:2;-1:-1:-1;8845:2:1;8824:15;-1:-1:-1;;8820:29:1;8805:45;;;;8852:2;8801:54;;8385:476;-1:-1:-1;;;8385:476:1:o;10329:329::-;10531:2;10513:21;;;10570:1;10550:18;;;10543:29;-1:-1:-1;;;10603:2:1;10588:18;;10581:36;10649:2;10634:18;;10503:155::o;10663:335::-;10865:2;10847:21;;;10904:2;10884:18;;;10877:30;-1:-1:-1;;;10938:2:1;10923:18;;10916:41;10989:2;10974:18;;10837:161::o;11185:582::-;11484:6;11473:9;11466:25;11527:6;11522:2;11511:9;11507:18;11500:34;11570:3;11565:2;11554:9;11550:18;11543:31;11447:4;11591:57;11643:3;11632:9;11628:19;11620:6;11591:57;:::i;:::-;-1:-1:-1;;;;;11684:32:1;;;;11679:2;11664:18;;11657:60;-1:-1:-1;11748:3:1;11733:19;11726:35;11583:65;11456:311;-1:-1:-1;;;11456:311:1:o;12214:128::-;12254:3;12285:1;12281:6;12278:1;12275:13;12272:2;;;12291:18;;:::i;:::-;-1:-1:-1;12327:9:1;;12262:80::o;12347:217::-;12387:1;12413;12403:2;;12457:10;12452:3;12448:20;12445:1;12438:31;12492:4;12489:1;12482:15;12520:4;12517:1;12510:15;12403:2;-1:-1:-1;12549:9:1;;12393:171::o;12569:168::-;12609:7;12675:1;12671;12667:6;12663:14;12660:1;12657:21;12652:1;12645:9;12638:17;12634:45;12631:2;;;12682:18;;:::i;:::-;-1:-1:-1;12722:9:1;;12621:116::o;12742:125::-;12782:4;12810:1;12807;12804:8;12801:2;;;12815:18;;:::i;:::-;-1:-1:-1;12852:9:1;;12791:76::o;12872:127::-;12933:10;12928:3;12924:20;12921:1;12914:31;12964:4;12961:1;12954:15;12988:4;12985:1;12978:15;13004:127;13065:10;13060:3;13056:20;13053:1;13046:31;13096:4;13093:1;13086:15;13120:4;13117:1;13110:15;13268:131;-1:-1:-1;;;;;13343:31:1;;13333:42;;13323:2;;13389:1;13386;13379:12;13323:2;13313:86;:::o

Swarm Source

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