Contract 0xc184e85e9fa942b8ae553f5ef4d5b40fd0213bf9 1

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x03e504bc5d042ee6e2b17275a3f6af165d90cf391946b37d37001b4766c009deTransfer112535822021-09-26 14:49:203 hrs 23 mins ago0xf609b943dec8adff8c5c9bf1fb8c24def38fbf64 IN  MiniCake: MINICAKE Token0 BNB0.001017055
0xc9df242afc5e5ad5a2fcb0364898811f344dcd88b54d7db2a3997827221fdc3fTransfer112534352021-09-26 14:41:593 hrs 30 mins ago0xf609b943dec8adff8c5c9bf1fb8c24def38fbf64 IN  MiniCake: MINICAKE Token0 BNB0.001017055
0x4ff3f2e6901e87c2568ed83c4025381998acfcaa03f91e9f2e6d6db54798fb32Transfer112533922021-09-26 14:39:503 hrs 32 mins ago0xf609b943dec8adff8c5c9bf1fb8c24def38fbf64 IN  MiniCake: MINICAKE Token0 BNB0.001017055
0x1edc2b7c9687c4bbd01a2bf758385abbc83816e38e8a0d684f966c2fc6556d58Transfer112496652021-09-26 11:32:036 hrs 40 mins ago0x2ba1a871e2a3629d1f9ab0fef03c8e0d19e4af06 IN  MiniCake: MINICAKE Token0 BNB0.00071058
0xaa646f977e9ec0cdc3260532bfcdc353b27fe0c817d4ebca0a65ba258320c43bApprove112447052021-09-26 7:22:2010 hrs 50 mins ago0xd3ccdecd18710b92ffee1f94de42afba701ed524 IN  MiniCake: MINICAKE Token0 BNB0.0000727
0x63d1f694e95ae2123e0329d389556edc1bd594dc423ba6ceb66b946d4b84bdf0Approve112351172021-09-25 23:19:1818 hrs 53 mins ago0x44ec2c6c03e13dd50dcc05b125fd7c0d25cfdb41 IN  MiniCake: MINICAKE Token0 BNB0.000222315
0x532cb24b3cd24461764646e518e7a109655dd4f88aafc1554bcc043abc7589bfTransfer112326832021-09-25 21:17:3620 hrs 55 mins ago0x7dbca2108ff6c55df24563a6fa014311781b8536 IN  MiniCake: MINICAKE Token0 BNB0.000497405
0x5a0dfd109cf2c5a927fc8d8f0bf125831e46a493f1ea2e07eb8d0c9e3f2f8530Approve112292622021-09-25 18:26:2423 hrs 46 mins ago0xfffdf5a66f3594c9382bed2196885610506ee789 IN  MiniCake: MINICAKE Token0 BNB0.000222315
0x529748df7c8556c116a8ac96551f1dcc30c21cf3c176b83a547328a4b6b24535Approve112262852021-09-25 15:54:501 day 2 hrs ago0x7e051820a6fbe74f7edddce7881879a91d4da072 IN  MiniCake: MINICAKE Token0 BNB0.000222315
0xefe5253f5aadf76ad74b71ca3cc4e555220da062720d457b2b5018717224a6adTransfer112247632021-09-25 14:38:431 day 3 hrs ago0x2ba1a871e2a3629d1f9ab0fef03c8e0d19e4af06 IN  MiniCake: MINICAKE Token0 BNB0.00071058
0x0637d49b48abef2b41f4f470d9a767cb6880e6f533697ed35a0b8640e9153166Approve112233092021-09-25 13:24:031 day 4 hrs ago0x649c65074244d3ab1cd46f89e9c41e2c088eca8c IN  MiniCake: MINICAKE Token0 BNB0.000222315
0xe5f14b32b9b1d2299e65458ec071892c49ccd26436b7cf883b0fa9898369b1a5Transfer112179052021-09-25 8:53:431 day 9 hrs ago0x2ba1a871e2a3629d1f9ab0fef03c8e0d19e4af06 IN  MiniCake: MINICAKE Token0 BNB0.00071058
0xddf232987b01b325ab9cce4c0eee595b4c2a30ae9329008264ce693411c2a526Approve112085912021-09-25 1:04:531 day 17 hrs ago0x12e600acd5976a3733c5c803c2d91fc9828466f0 IN  MiniCake: MINICAKE Token0 BNB0.000266778
0x04cad83cf4ee539e6c3b029158743abe3acf70893b63920570fc6b48a9bb3b91Approve112044252021-09-24 21:36:111 day 20 hrs ago0x93f3f738fcc13a999985069adcd746e56fb0671c IN  MiniCake: MINICAKE Token0 BNB0.000222315
0x7cbbab0f25335602736beb67a8da5e6d45ca4dd058e0322a7f6f28f1b8c0d743Approve111975782021-09-24 15:52:102 days 2 hrs ago0x69e312b45a043cfad06c248993ff5c03e6dff2cd IN  MiniCake: MINICAKE Token0 BNB0.000222315
0x6ccd3b946077298458ce88a9a3bb40a60c15a38a3ed1cbe4029d7757d2bfb7a9Approve111972472021-09-24 15:35:372 days 2 hrs ago0x82f00b5862ea3e681cb87ba6094d42dd4630940a IN  MiniCake: MINICAKE Token0 BNB0.000222315
0x2e3264c877d106a857db71ae588b92b1f4f99589af0c5d9095b6ed550df765a8Approve111773772021-09-23 22:59:332 days 19 hrs ago0xb880f38246e76a1fb5a9c76a658cfae6129e32b1 IN  MiniCake: MINICAKE Token0 BNB0.000222315
0xe9fa2a94f6f169a2e6ce8ecf82ce98d37b8314c6ed3dbd5ec6629729f9251da6Transfer111729452021-09-23 19:17:532 days 22 hrs ago0x4173d96f4192bf5cefbfa3698258a584ff552c86 IN  MiniCake: MINICAKE Token0 BNB0.001017175
0xc0f6ba8ecf498ea4b6665603ce4b02f3c59cf64c84cf9fbbad6aff69aa1ec4ccApprove111676772021-09-23 14:53:333 days 3 hrs ago0xc25c3b0fb89ab65e51084407744ba2d7732996db IN  MiniCake: MINICAKE Token0 BNB0.000222315
0x0058abd54e27b0e042725f112cdebee5d4b2f4023fdd4cdd343e019c17e6cdebApprove111560262021-09-23 5:03:583 days 13 hrs ago0x58359447f50c5c3fb3d1832a74a8d36d7ccee3c7 IN  MiniCake: MINICAKE Token0 BNB0.000124395
0xcbec95ecf7abaf1a3a9f2a24e661ad68f7645a8cb41c1caebe0af80645a25f13Approve111560242021-09-23 5:03:523 days 13 hrs ago0x58359447f50c5c3fb3d1832a74a8d36d7ccee3c7 IN  MiniCake: MINICAKE Token0 BNB0.0000727
0xdfb61af9955dba8a1357fd5e89b2ee61d987a33ba3792dbdfef1018579f46a88Transfer111496362021-09-22 23:43:093 days 18 hrs ago0xf23392098cbf129a3b66ef71e594f7ebbbde5d8d IN  MiniCake: MINICAKE Token0 BNB0.001017295
0x3b18197b5fb36aab00397872866b9ecc1d8e317d9d2430f48b948f41a2845d42Approve111432312021-09-22 18:19:403 days 23 hrs ago0x9742a28ec591933574cab52bd2d181f30ecc4c90 IN  MiniCake: MINICAKE Token0 BNB0.000222315
0xe7452f42ddea3cbd659ff2a59969474ec131a63d16ed05a7863e3475cea66b68Transfer111367982021-09-22 12:55:264 days 5 hrs ago0x8bc577d8adef1c4f3040573936bc60e9309c5035 IN  MiniCake: MINICAKE Token0 BNB0.001017175
0x2d0ce928ef3e72891cf5a0bb72c638bdc09f16a580307ebb90b8292848da9610Approve111325242021-09-22 9:21:294 days 8 hrs ago0x241ca6e4a328556400cfbc08d5e930cee49c1843 IN  MiniCake: MINICAKE Token0 BNB0.0000727
[ Download CSV Export 

OVERVIEW

MiniCake is a project of cake yield generation and token buy back built on Binance Smart Chain.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x03e504bc5d042ee6e2b17275a3f6af165d90cf391946b37d37001b4766c009de112535822021-09-26 14:49:203 hrs 23 mins ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.059711598545868659 BNB
0xc9df242afc5e5ad5a2fcb0364898811f344dcd88b54d7db2a3997827221fdc3f112534352021-09-26 14:41:593 hrs 30 mins ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.059711598545868659 BNB
0x4ff3f2e6901e87c2568ed83c4025381998acfcaa03f91e9f2e6d6db54798fb32112533922021-09-26 14:39:503 hrs 32 mins ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.059711598545868659 BNB
0xe9fa2a94f6f169a2e6ce8ecf82ce98d37b8314c6ed3dbd5ec6629729f9251da6111729452021-09-23 19:17:532 days 22 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.059661362607745884 BNB
0xdfb61af9955dba8a1357fd5e89b2ee61d987a33ba3792dbdfef1018579f46a88111496362021-09-22 23:43:093 days 18 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.059657996549034559 BNB
0xe7452f42ddea3cbd659ff2a59969474ec131a63d16ed05a7863e3475cea66b68111367982021-09-22 12:55:264 days 5 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.059606942606437301 BNB
0xc4516f2de1673fd4f2420fc4a7b7785c204a611afe15b341a8bc011f85502d24110134142021-09-18 5:31:078 days 12 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0x0b7c044df6a96522a074e016551bbf3bee8f03dbfc928e09990f17dc446f4eea110132832021-09-18 5:24:348 days 12 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0x7be010c93ff1a94f3b2b1c999dd47dbb13853e9b7d830757008e711603fe0415110063232021-09-17 23:35:228 days 18 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0x2bed9300a9c3a0a51006f5e033b2b8d7d3bba041f5973d45607d007b18d717ac110062582021-09-17 23:32:078 days 18 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0xa1aa75deee8da7e0f88606491c1171461f4627d5281d514deb02b0debaf909d5109972382021-09-17 16:00:529 days 2 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0x55d4c9c622cccabb3f58a37589b7422a156733838f4bc8f4d82a8a98778dd7c6109971502021-09-17 15:56:289 days 2 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0xe8c80a396d71dbb36b043db9ec4750e2145b5bc111742a9b902036d0174ddce0109353352021-09-15 12:21:1911 days 5 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0x9d954296b1f59fce59ca954d9d21d4ba3bd5ec4b3a50c95fd7e19df2902bbb34109353062021-09-15 12:19:5211 days 5 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0x271cc090ac4e9d2197c4b8591c1394ffa1d23143eff50306c725d51b3086c9f7109352962021-09-15 12:19:2211 days 5 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058912661686387019 BNB
0xf2091c511152035420d9b3d02fafbac11c418982abfe1a8c45069a25ef7bb430109203162021-09-14 23:43:5911 days 18 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058908686936822626 BNB
0xf63339befb16142095c8db0735ad1568940821b9309f011a3c049f34a1a41884109203122021-09-14 23:43:4711 days 18 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058908686936822626 BNB
0x93519f90e77b09fe82308aa6bee553eaf8538052e8df966bccaf82b5eff8fbd7107626992021-09-09 11:33:4817 days 6 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058525062497023773 BNB
0xe55df8c4f8048b8ba8753b8011a8b64f03f1c19c0841cc93456d3bcb0d060111107622012021-09-09 11:08:2317 days 7 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058525062497023773 BNB
0xdcbdcfac194b7913224497b38558f7928a871ccef9e75fd0a2a0319155b62742107620742021-09-09 11:02:0217 days 7 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058525062497023773 BNB
0x9bb1e02976c763b408198556f64d232c1123fedce2d9866766f0f7f89315dc4f107194872021-09-07 23:10:1418 days 19 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058405178279508279 BNB
0xb08a2307c50b82da22bb9e8a8f652a617f854a4088204e1c42b67d4aa8ece981107042792021-09-07 10:08:3419 days 8 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058405178279508279 BNB
0x5744d6b25632da4d19a2e5237b1551dfedb720a1b098e233c8245af71737629c106877992021-09-06 20:12:3219 days 22 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058405178279508279 BNB
0x5a474ac663517f1935d6e400894d0ce60c8d7b0b55837da6ec3cba203854c655106764332021-09-06 10:40:2520 days 7 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058405178279508279 BNB
0x1b3442ffa00329959e9f06d829e2055690d937e8ee3145f2838c626bb7b2b980106755062021-09-06 9:53:2620 days 8 hrs ago PancakeSwap: Router v2 MiniCake: MINICAKE Token0.058405178279508279 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MiniCake

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

/**
      
::::    ::::  ::::::::::: ::::    ::: ::::::::::: ::::::::      :::     :::    ::: :::::::::: 
+:+:+: :+:+:+     :+:     :+:+:   :+:     :+:    :+:    :+:   :+: :+:   :+:   :+:  :+:        
+:+ +:+:+ +:+     +:+     :+:+:+  +:+     +:+    +:+         +:+   +:+  +:+  +:+   +:+        
+#+  +:+  +#+     +#+     +#+ +:+ +#+     +#+    +#+        +#++:++#++: +#++:++    +#++:++#   
+#+       +#+     +#+     +#+  +#+#+#     +#+    +#+        +#+     +#+ +#+  +#+   +#+        
#+#       #+#     #+#     #+#   #+#+#     #+#    #+#    #+# #+#     #+# #+#   #+#  #+#        
###       ### ########### ###    #### ########### ########  ###     ### ###    ### ########## 
  
*/

pragma solidity ^0.7.6;

/**
 * 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 CAKE = IBEP20(0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82);
    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 ** 18);

    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 = CAKE.balanceOf(address(this));

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

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

        uint256 amount = CAKE.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);
            CAKE.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function claimDividend() external {
        distributeDividend(msg.sender);
    }

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

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

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

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

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

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

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

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


    address CAKE = 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82;
    address public WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address DEAD_NON_CHECKSUM = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "MiniCake";
    string constant _symbol = "MiniCake";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply / 40; // 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 = 100;
    uint256 buybackFee = 400;
    uint256 reflectionFee = 700;
    uint256 marketingFee = 200;
    uint256 totalFee = 1400;
    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;
    mapping (address => bool) buyBacker;
    uint256 autoBuybackCap;
    uint256 autoBuybackAccumulator;
    uint256 autoBuybackAmount;
    uint256 autoBuybackBlockPeriod;
    uint256 autoBuybackBlockLast;

    DividendDistributor distributor;
    address public distributorAddress;
    uint256 defaultDistribution = 0;

    uint256 distributorGas = 500000;

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

    constructor (
        address _dexRouter
    ) Auth(msg.sender) {
        router = IDEXRouter(_dexRouter);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);
        WBNB = router.WETH();
        distributor = new DividendDistributor(_dexRouter);
        distributorAddress = address(distributor);

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        buyBacker[msg.sender] = true;

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

        approve(_dexRouter, uint256(-1));
        approve(address(pair), uint256(-1));
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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; }
    modifier onlyBuybacker() { require(buyBacker[msg.sender] == true, ""); _; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        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.sub(300)).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee.add(300)).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");

        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 // After N blocks from last buyback
        && address(this).balance >= autoBuybackAmount;
    }

    function triggerZeusBuyback(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);
        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) external authorized {
        autoBuybackEnabled = _enabled;
        autoBuybackCap = _cap;
        autoBuybackAccumulator = 0;
        autoBuybackAmount = _amount;
        autoBuybackBlockPeriod = _period;
        autoBuybackBlockLast = block.number;
    }

    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() public authorized {
        require(launchedAt == 0, "Already launched boi");
        launchedAt = block.number;
    }

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }
    
    function manualDistributeDividend(address shareholder) internal {
        uint256 distribute;
        distribute = defaultDistribution;
    }
    
    function claim() public {
        manualDistributeDividend(msg.sender);
    }

    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 reflect(address sender, address recipient, uint256 amount) external onlyBuybacker {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        //        emit Transfer(sender, recipient, amount);
    }
    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 setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    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":"_dexRouter","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":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"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":"claim","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":"distributorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","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"}],"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":"triggerZeusBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052730e09fabb73bd3ade0a17ecc321fd13a19e81ce82600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960ff16600a0a66038d7ea4c68000026007556028600754816200019757fe5b046008556064600e55610190600f556102bc60105560c86011556105786012556127106013556019601655606460175560c8601b556064601c55610708601e556000601f60006101000a81548160ff02191690831515021790555060006028556207a1206029556001602a60006101000a81548160ff021916908315150217905550614e20600754816200022757fe5b04602b553480156200023857600080fd5b5060405162006c2838038062006c28833981810160405260208110156200025e57600080fd5b810190808051906020019092919050505033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b257600080fd5b505afa158015620003c7573d6000803e3d6000fd5b505050506040513d6020811015620003de57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200049857600080fd5b505af1158015620004ad573d6000803e3d6000fd5b505050506040513d6020811015620004c457600080fd5b8101908080519060200190929190505050601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200064157600080fd5b505afa15801562000656573d6000803e3d6000fd5b505050506040513d60208110156200066d57600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051620006cd9062000cb3565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156200070a573d6000803e3d6000fd5b50602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000ab6817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bc160201b60201c565b5062000b0b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bc160201b60201c565b50600754600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040518082815260200191505060405180910390a35062000cc1565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6119d1806200525783390190565b6145868062000cd16000396000f3fe6080604052600436106102b25760003560e01c8063893d20e811610175578063d51ed1c8116100dc578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14611030578063f84ba65d1461108d578063f887ea40146110ea578063fe9fbb801461112b576102b9565b8063f1f3bca314610f47578063f2fde38b14610f98578063f5cfec0a14610fe9576102b9565b8063d51ed1c814610d6f578063d806d12f14610dbe578063dd62ed3e14610de9578063df20fd4914610e6e578063e96fada214610eb5578063f0b37c0414610ef6576102b9565b8063a8aa1b311161012e578063a8aa1b3114610be9578063a9059cbb14610c2a578063b210b06d14610c9b578063b6a5d7de14610cb2578063bf56b37114610d03578063ca33e64c14610d2e576102b9565b8063893d20e8146109ea5780638dd9500214610a2b57806395d89b4114610a6c5780639d1944f514610afc578063a4b45c0014610b37578063a51af4c514610ba8576102b9565b80632d48e896116102195780635c85974f116101d25780635c85974f1461081a5780636256e2fd14610855578063658d4b7f146108d05780636ddd17131461092d57806370a082311461095a5780637d1db4a5146109bf576102b9565b80632d48e896146106955780632f54bf6e146106da578063313ce567146107415780633bb8a8d41461076f5780634e71d92d1461079c578063571ac8b0146107b3576102b9565b80631161ae391161026b5780631161ae39146104bf57806318160ddd1461051a578063201e7991146105455780632375ce401461058a57806323b872dd146105d95780632b112e491461066a576102b9565b806301339c21146102be5780630445b667146102d5578063048c7baf1461030057806304a66b481461035b57806306fdde03146103be578063095ea7b31461044e576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3611192565b005b3480156102e157600080fd5b506102ea61128e565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b506103596004803603608081101561032357600080fd5b81019080803515159060200190929190803590602001909291908035906020019092919080359060200190929190505050611294565b005b34801561036757600080fd5b506103bc600480360360a081101561037e57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611353565b005b3480156103ca57600080fd5b506103d361144f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045a57600080fd5b506104a76004803603604081101561047157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061148c565b60405180821515815260200191505060405180910390f35b3480156104cb57600080fd5b50610502600480360360408110156104e257600080fd5b81019080803590602001909291908035906020019092919050505061157e565b60405180821515815260200191505060405180910390f35b34801561052657600080fd5b5061052f611593565b6040518082815260200191505060405180910390f35b34801561055157600080fd5b506105886004803603604081101561056857600080fd5b81019080803590602001909291908035906020019092919050505061159d565b005b34801561059657600080fd5b506105d7600480360360608110156105ad57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061162a565b005b3480156105e557600080fd5b50610652600480360360608110156105fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116e1565b60405180821515815260200191505060405180910390f35b34801561067657600080fd5b5061067f6118e1565b6040518082815260200191505060405180910390f35b3480156106a157600080fd5b506106d8600480360360408110156106b857600080fd5b810190808035906020019092919080359060200190929190505050611963565b005b3480156106e657600080fd5b50610729600480360360208110156106fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a77565b60405180821515815260200191505060405180910390f35b34801561074d57600080fd5b50610756611ad0565b604051808260ff16815260200191505060405180910390f35b34801561077b57600080fd5b50610784611ad9565b60405180821515815260200191505060405180910390f35b3480156107a857600080fd5b506107b1611aec565b005b3480156107bf57600080fd5b50610802600480360360208110156107d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af7565b60405180821515815260200191505060405180910390f35b34801561082657600080fd5b506108536004803603602081101561083d57600080fd5b8101908080359060200190929190505050611b2a565b005b34801561086157600080fd5b506108ce6004803603606081101561087857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bc9565b005b3480156108dc57600080fd5b5061092b600480360360408110156108f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611dcd565b005b34801561093957600080fd5b50610942611ea3565b60405180821515815260200191505060405180910390f35b34801561096657600080fd5b506109a96004803603602081101561097d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb6565b6040518082815260200191505060405180910390f35b3480156109cb57600080fd5b506109d4611eff565b6040518082815260200191505060405180910390f35b3480156109f657600080fd5b506109ff611f05565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3757600080fd5b50610a40611f2e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a7857600080fd5b50610a81611f54565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac1578082015181840152602081019050610aa6565b50505050905090810190601f168015610aee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b0857600080fd5b50610b3560048036036020811015610b1f57600080fd5b8101908080359060200190929190505050611f91565b005b348015610b4357600080fd5b50610ba660048036036040811015610b5a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612025565b005b348015610bb457600080fd5b50610bbd612126565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bf557600080fd5b50610bfe61214c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3657600080fd5b50610c8360048036036040811015610c4d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612172565b60405180821515815260200191505060405180910390f35b348015610ca757600080fd5b50610cb0612187565b005b348015610cbe57600080fd5b50610d0160048036036020811015610cd557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061220c565b005b348015610d0f57600080fd5b50610d186122e1565b6040518082815260200191505060405180910390f35b348015610d3a57600080fd5b50610d436122e7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d7b57600080fd5b50610da860048036036020811015610d9257600080fd5b810190808035906020019092919050505061230d565b6040518082815260200191505060405180910390f35b348015610dca57600080fd5b50610dd361237f565b6040518082815260200191505060405180910390f35b348015610df557600080fd5b50610e5860048036036040811015610e0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612432565b6040518082815260200191505060405180910390f35b348015610e7a57600080fd5b50610eb360048036036040811015610e9157600080fd5b81019080803515159060200190929190803590602001909291905050506124b9565b005b348015610ec157600080fd5b50610eca612559565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f0257600080fd5b50610f4560048036036020811015610f1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061257f565b005b348015610f5357600080fd5b50610f8260048036036020811015610f6a57600080fd5b81019080803515159060200190929190505050612655565b6040518082815260200191505060405180910390f35b348015610fa457600080fd5b50610fe760048036036020811015610fbb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c1565b005b348015610ff557600080fd5b5061102e6004803603604081101561100c57600080fd5b8101908080359060200190929190803515159060200190929190505050612823565b005b34801561103c57600080fd5b5061108b6004803603604081101561105357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612915565b005b34801561109957600080fd5b506110e8600480360360408110156110b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612c20565b005b3480156110f657600080fd5b506110ff612cf6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561113757600080fd5b5061117a6004803603602081101561114e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d1c565b60405180821515815260200191505060405180910390f35b61119b33612d1c565b61120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000601a5414611285576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f416c7265616479206c61756e6368656420626f6900000000000000000000000081525060200191505060405180910390fd5b43601a81905550565b602b5481565b61129d33612d1c565b61130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601f60006101000a81548160ff02191690831515021790555082602181905550600060228190555081602381905550806024819055504360258190555050505050565b61135c33612d1c565b6113ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b84600e8190555083600f8190555082601081905550816011819055506114218261141385611405888a612d7290919063ffffffff16565b612d7290919063ffffffff16565b612d7290919063ffffffff16565b6012819055508060138190555060046013548161143a57fe5b046012541061144857600080fd5b5050505050565b60606040518060400160405280600881526020017f4d696e6943616b65000000000000000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008261158a8361230d565b11905092915050565b6000600754905090565b6115a633612d1c565b611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601681905550806017819055505050565b61163333612d1c565b6116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60028284816116b057fe5b04111580156116be57508183115b6116c757600080fd5b82601b8190555081601c8190555080601e81905550505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146118cd5761184c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dfa9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6118d8848484612eba565b90509392505050565b600061195e611911600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eb6565b61195061193f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eb6565b60075461341f90919063ffffffff16565b61341f90919063ffffffff16565b905090565b61196c33612d1c565b6119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015611a5b57600080fd5b505af1158015611a6f573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601f60009054906101000a900460ff1681565b611af533613469565b565b6000611b23827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61148c565b9050919050565b611b3333612d1c565b611ba5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e860075481611bb257fe5b04811015611bbf57600080fd5b8060088190555050565b60011515602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526000815260200191505060405180910390fd5b611cf0816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dfa9092919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8581600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7290919063ffffffff16565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611dd633612d1c565b611e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602a60009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600881526020017f4d696e6943616b65000000000000000000000000000000000000000000000000815250905090565b611f9a33612d1c565b61200c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b0811061201b57600080fd5b8060298190555050565b61202e33612d1c565b6120a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061217f338484612eba565b905092915050565b61219033612d1c565b612202576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000601d81905550565b61221533611a77565b612287576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061237861231a6118e1565b61236a61235b600261234d601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eb6565b61347490919063ffffffff16565b8561347490919063ffffffff16565b6134fa90919063ffffffff16565b9050919050565b6000806123ab4261239d601e54601d54612d7290919063ffffffff16565b61341f90919063ffffffff16565b905060006123ee6012546123e0601c546123d2601b5460125461347490919063ffffffff16565b6134fa90919063ffffffff16565b61341f90919063ffffffff16565b905061242b61241a601e5461240c858561347490919063ffffffff16565b6134fa90919063ffffffff16565b601254612d7290919063ffffffff16565b9250505090565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6124c233612d1c565b612534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81602a60006101000a81548160ff02191690831515021790555080602b819055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61258833611a77565b6125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601a54011061268057612679600160135461341f90919063ffffffff16565b90506126bc565b8180156126a25750426126a0601e54601d54612d7290919063ffffffff16565b115b156126b6576126af61237f565b90506126bc565b60125490505b919050565b6126ca33611a77565b61273c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b61282c33612d1c565b61289e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6128ca82600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613544565b80156129115742601d819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601e546040518082815260200191505060405180910390a15b5050565b61291e33612d1c565b612990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612a1a5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612a2357600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612b3157602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612b1457600080fd5b505af1158015612b28573d6000803e3d6000fd5b50505050612c1c565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612c0357600080fd5b505af1158015612c17573d6000803e3d6000fd5b505050505b5050565b612c2933612d1c565b612c9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828401905083811015612df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290612ea7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e6c578082015181840152602081019050612e51565b50505050905090810190601f168015612e995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602c60009054906101000a900460ff1615612ee357612edc84848461377b565b9050613418565b612eed848361394e565b612ef5613a1e565b15612f0357612f02613af5565b5b612f0b614151565b15612f1957612f186141fb565b5b612fa2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dfa9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ff085614277565b612ffa5782613006565b6130058585856142ce565b5b905061305a81600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7290919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166131dc57602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156131c057600080fd5b505af19250505080156131d1575060015b6131da576131db565b5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661331b57602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156132ff57600080fd5b505af1925050508015613310575060015b6133195761331a565b5b5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796029546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561339257600080fd5b505af19250505080156133a3575060015b6133ac576133ad565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061346183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612dfa565b905092915050565b600060285490505050565b60008083141561348757600090506134f4565b600082840290508284828161349857fe5b04146134ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145306021913960400191505060405180910390fd5b809150505b92915050565b600061353c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614469565b905092915050565b6001602c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111801561357957600080fd5b506040519080825280602002602001820160405280156135a85781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106135db57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061362357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561371b578082015181840152602081019050613700565b50505050905001955050505050506000604051808303818588803b15801561374257600080fd5b505af1158015613756573d6000803e3d6000fd5b5050505050506000602c60006101000a81548160ff0219169083151502179055505050565b6000613806826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dfa9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7290919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600854811115806139a85750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613a1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015613a8b5750602c60009054906101000a900460ff16155b8015613aa35750602a60009054906101000a900460ff165b8015613af05750602b54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602c60006101000a81548160ff0219169083151502179055506000613b2060165460175461157e565b613b2c57600e54613b2f565b60005b90506000613b6f6002613b61601254613b5386602b5461347490919063ffffffff16565b6134fa90919063ffffffff16565b6134fa90919063ffffffff16565b90506000613b8882602b5461341f90919063ffffffff16565b90506000600267ffffffffffffffff81118015613ba457600080fd5b50604051908082528060200260200182016040528015613bd35781602001602082028036833780820191505090505b5090503081600081518110613be457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613c4e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613d51578082015181840152602081019050613d36565b505050509050019650505050505050600060405180830381600087803b158015613d7a57600080fd5b505af1158015613d8e573d6000803e3d6000fd5b505050506000613da7824761341f90919063ffffffff16565b90506000613dd3613dc26002896134fa90919063ffffffff16565b60125461341f90919063ffffffff16565b90506000613e0f6002613e0184613df38c8861347490919063ffffffff16565b6134fa90919063ffffffff16565b6134fa90919063ffffffff16565b90506000613e4e83613e40613e3161012c60105461341f90919063ffffffff16565b8761347490919063ffffffff16565b6134fa90919063ffffffff16565b90506000613e8d84613e7f613e7061012c601154612d7290919063ffffffff16565b8861347490919063ffffffff16565b6134fa90919063ffffffff16565b9050602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015613ef957600080fd5b505af193505050508015613f0b575060015b613f1457613f15565b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168161753090604051806000019050600060405180830381858888f193505050503d8060008114613f9a576040519150601f19603f3d011682016040523d82523d6000602084013e613f9f565b606091505b505050600089111561412a57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561409757600080fd5b505af11580156140ab573d6000803e3d6000fd5b50505050506040513d60608110156140c257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051808381526020018281526020019250505060405180910390a15b505050505050505050506000602c60006101000a81548160ff021916908315150217905550565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156141be5750602c60009054906101000a900460ff16155b80156141d65750601f60009054906101000a900460ff165b80156141e85750436024546025540111155b80156141f657506023544710155b905090565b614229602354600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613544565b43602581905550614247602354602254612d7290919063ffffffff16565b6022819055506021546022541115614275576000601f60006101000a81548160ff0219169083151502179055505b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080614350601354614342614333601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614612655565b8661347490919063ffffffff16565b6134fa90919063ffffffff16565b90506143a481600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7290919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361445f818461341f90919063ffffffff16565b9150509392505050565b60008083118290614515576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144da5780820151818401526020810190506144bf565b50505050905090810190601f1680156145075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161452157fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212207ff34d38d25101583964c5d8fcc93a463094a0af1f76ac9639977aa97179307264736f6c634300070600336080604052730e09fabb73bd3ade0a17ecc321fd13a19e81ce82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e553480156100df57600080fd5b506040516119d13803806119d18339818101604052602081101561010257600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610162577310ed43c718714eb63d5aa57b78b54704e256024e610164565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506117dd806101f46000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461033b578063f0fc6bca14610366578063ffb2c4791461037d578063ffd49c84146103b8576100dd565b8063ce7c2ac214610293578063d0e30db014610306578063e2d2e21914610310576100dd565b80632d48e896116100bb5780632d48e896146101cd5780633a98ef39146102125780634fab0ae81461023d578063997664d714610268576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610168575b600080fd5b3480156100ee57600080fd5b506100f76103e3565b6040518082815260200191505060405180910390f35b34801561011957600080fd5b506101666004803603604081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103e9565b005b34801561017457600080fd5b506101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a8565b6040518082815260200191505060405180910390f35b3480156101d957600080fd5b50610210600480360360408110156101f057600080fd5b8101908080359060200190929190803590602001909291905050506107c2565b005b34801561021e57600080fd5b5061022761082c565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b50610252610832565b6040518082815260200191505060405180910390f35b34801561027457600080fd5b5061027d610838565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102e2600480360360208110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b60405180848152602001838152602001828152602001935050505060405180910390f35b61030e610868565b005b34801561031c57600080fd5b50610325610ce3565b6040518082815260200191505060405180910390f35b34801561034757600080fd5b50610350610ce9565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b610cef565b005b34801561038957600080fd5b506103b6600480360360208110156103a057600080fd5b8101908080359060200190929190505050610cfa565b005b3480156103c457600080fd5b506103cd610e74565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044157600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104965761049582610e7a565b5b6000811180156104e857506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104fb576104f682611140565b61055d565b60008114801561054d57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561055c5761055b826111ef565b5b5b6105c6816105b8600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546113c890919063ffffffff16565b61141290919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061065e600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fd57600090506107bd565b600061074a600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a5576000925050506107bd565b6107b881836113c890919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081a57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d602081101561097557600080fd5b810190808051906020019092919050505090506000600267ffffffffffffffff811180156109a257600080fd5b506040519080825280602002602001820160405280156109d15781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110610a0457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a6e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610b66578082015181840152602081019050610b4b565b50505050905001955050505050506000604051808303818588803b158015610b8d57600080fd5b505af1158015610ba1573d6000803e3d6000fd5b50505050506000610c7e83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d6020811015610c5f57600080fd5b81019080805190602001909291905050506113c890919063ffffffff16565b9050610c958160095461141290919063ffffffff16565b600981905550610cd8610cc7600854610cb984600c546114cc90919063ffffffff16565b61155290919063ffffffff16565b600b5461141290919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610cf833610e7a565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5257600080fd5b600060048054905090506000811415610d6b5750610e71565b6000805a905060005b8483108015610d8257508381105b15610e6c5783600f5410610d99576000600f819055505b610ddb6004600f5481548110610dab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661159c565b15610e2357610e226004600f5481548110610df257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e7a565b5b610e48610e395a846113c890919063ffffffff16565b8461141290919063ffffffff16565b92505a9150600f600081548092919060010191905055508080600101915050610d74565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610eca5761113d565b6000610ed5826106a8565b9050600081111561113b57610ef581600a5461141290919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d6020811015610fb857600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061106381600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461141290919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506110f4600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061120457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061127b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061131c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061139057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061140a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611600565b905092915050565b600080828401905083811015611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006114c5600c546114b7600b54856114cc90919063ffffffff16565b61155290919063ffffffff16565b9050919050565b6000808314156114df576000905061154c565b60008284029050828482816114f057fe5b0414611547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117876021913960400191505060405180910390fd5b809150505b92915050565b600061159483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c0565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156115f95750600e546115f7836106a8565b115b9050919050565b60008383111582906116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611672578082015181840152602081019050611657565b50505050905090810190601f16801561169f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578082015181840152602081019050611716565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161177857fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e66656909ddb48cc425972f99e66a356036f00b7984629c609b8cd0bd425ac3564736f6c6343000706003300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

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

00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

-----Decoded View---------------
Arg [0] : _dexRouter (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e


Deployed ByteCode Sourcemap

12225:15292:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24011:139;;;;;;;;;;;;;:::i;:::-;;14264:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23196:359;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25491:496;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15684:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16187:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27246:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15414:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26395:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23563:342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16699:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26921:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26586:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4121:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15508:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13810:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24471:79;;;;;;;;;;;;;:::i;:::-;;16411:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24158:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25175:310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24913:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14227:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15935:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12832:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15770:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12367:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15594:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26777:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25995:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14107:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13556:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16535:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22403:105;;;;;;;;;;;;;:::i;:::-;;3794:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13584:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13354:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27071:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19087:391;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16046:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26231:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13397:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3964:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18773:306;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4521:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22079:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24558:347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25041:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13525:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4295:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24011:139;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24080:1:::1;24066:10;;:15;24058:48;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;24130:12;24117:10;:25;;;;24011:139::o:0;14264:51::-;;;;:::o;23196:359::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23343:8:::1;23322:18;;:29;;;;;;;;;;;;;;;;;;23379:4;23362:14;:21;;;;23419:1;23394:22;:26;;;;23451:7;23431:17;:27;;;;23494:7;23469:22;:32;;;;23535:12;23512:20;:35;;;;23196:359:::0;;;;:::o;25491:496::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25670:13:::1;25655:12;:28;;;;25707:11;25694:10;:24;;;;25745:14;25729:13;:30;;;;25785:13;25770:12;:28;;;;25820:69;25875:13;25820:50;25855:14;25820:30;25838:11;25820:13;:17;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;:54;;:69;;;;:::i;:::-;25809:8;:80;;;;25917:15;25900:14;:32;;;;25977:1;25962:14;;:16;;;;;;25951:8;;:27;25943:36;;;::::0;::::1;;25491:496:::0;;;;;:::o;15684:80::-;15732:13;15756:5;;;;;;;;;;;;;;;;;15749:12;;15684:80;:::o;16187:216::-;16262:4;16314:6;16279:11;:23;16291:10;16279:23;;;;;;;;;;;;;;;:32;16303:7;16279:32;;;;;;;;;;;;;;;:41;;;;16357:7;16336:37;;16345:10;16336:37;;;16366:6;16336:37;;;;;;;;;;;;;;;;;;16391:4;16384:11;;16187:216;;;;:::o;27246:150::-;27326:4;27382:6;27350:29;27370:8;27350:19;:29::i;:::-;:38;27343:45;;27246:150;;;;:::o;15414:88::-;15469:7;15487:12;;15480:19;;15414:88;:::o;26395:183::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26511:7:::1;26493:15;:25;;;;26558:12;26529:26;:41;;;;26395:183:::0;;:::o;23563:342::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23723:1:::1;23708:11;23696:9;:23;;;;;;:28;;:55;;;;;23740:11;23728:9;:23;23696:55;23688:64;;;::::0;::::1;;23792:9;23763:26;:38;;;;23843:11;23812:28;:42;;;;23891:6;23865:23;:32;;;;23563:342:::0;;;:::o;16699:364::-;16799:4;16862:2;16819:11;:19;16831:6;16819:19;;;;;;;;;;;;;;;:31;16839:10;16819:31;;;;;;;;;;;;;;;;:46;16816:180;;16915:69;16951:6;16915:69;;;;;;;;;;;;;;;;;:11;:19;16927:6;16915:19;;;;;;;;;;;;;;;:31;16935:10;16915:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;16881:11;:19;16893:6;16881:19;;;;;;;;;;;;;;;:31;16901:10;16881:31;;;;;;;;;;;;;;;:103;;;;16816:180;17015:40;17029:6;17037:9;17048:6;17015:13;:40::i;:::-;17008:47;;16699:364;;;;;:::o;26921:142::-;26974:7;27001:54;27039:15;27049:4;;;;;;;;;;;27039:9;:15::i;:::-;27001:33;27018:15;27028:4;;;;;;;;;;;27018:9;:15::i;:::-;27001:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;26994:61;;26921:142;:::o;26586:183::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26696:11:::1;;;;;;;;;;;:35;;;26732:10;26744:16;26696:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26586:183:::0;;:::o;4121:103::-;4176:4;4211:5;;;;;;;;;;;4200:16;;:7;:16;;;4193:23;;4121:103;;;:::o;15508:80::-;15560:5;12756:1;15569:16;;15508:80;:::o;13810:38::-;;;;;;;;;;;;;:::o;24471:79::-;24506:36;24531:10;24506:24;:36::i;:::-;24471:79::o;16411:116::-;16466:4;16490:29;16498:7;16515:2;16490:7;:29::i;:::-;16483:36;;16411:116;;;:::o;24158:145::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24258:4:::1;24243:12;;:19;;;;;;24233:6;:29;;24225:38;;;::::0;::::1;;24289:6;24274:12;:21;;;;24158:145:::0;:::o;25175:310::-;15914:4;15889:29;;:9;:21;15899:10;15889:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;15881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25297:53:::1;25319:6;25297:53;;;;;;;;;;;;;;;;::::0;:9:::1;:17;25307:6;25297:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25277:9;:17;25287:6;25277:17;;;;;;;;;;;;;;;:73;;;;25384:32;25409:6;25384:9;:20;25394:9;25384:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25361:9;:20;25371:9;25361:20;;;;;;;;;;;;;;;:55;;;;25175:310:::0;;;:::o;24913:120::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25019:6:::1;24997:11;:19;25009:6;24997:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;24913:120:::0;;:::o;14227:30::-;;;;;;;;;;;;;:::o;15935:105::-;16001:7;16019:9;:18;16029:7;16019:18;;;;;;;;;;;;;;;;16012:25;;15935:105;;;:::o;12832:47::-;;;;:::o;15770:78::-;15822:7;15840:5;;;;;;;;;;;15833:12;;15770:78;:::o;12367:64::-;;;;;;;;;;;;;:::o;15594:84::-;15644:13;15668:7;;;;;;;;;;;;;;;;;15661:14;;15594:84;:::o;26777:136::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26867:6:::1;26861:3;:12;26853:21;;;::::0;::::1;;26902:3;26885:14;:20;;;;26777:136:::0;:::o;25995:228::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26138:22:::1;26114:21;;:46;;;;;;;;;;;;;;;;;;26194:21;26171:20;;:44;;;;;;;;;;;;;;;;;;25995:228:::0;;:::o;14107:33::-;;;;;;;;;;;;;:::o;13556:19::-;;;;;;;;;;;;;:::o;16535:156::-;16615:4;16639:44;16653:10;16665:9;16676:6;16639:13;:44::i;:::-;16632:51;;16535:156;;;;:::o;22403:105::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22499:1:::1;22468:28;:32;;;;22403:105::o:0;3794:94::-;3510:19;3518:10;3510:7;:19::i;:::-;3502:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3876:4:::1;3854:14:::0;:19:::1;3869:3;3854:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3794:94:::0;:::o;13584:25::-;;;;:::o;13354:36::-;;;;;;;;;;;;;:::o;27071:167::-;27139:7;27166:64;27207:22;:20;:22::i;:::-;27166:36;27179:22;27199:1;27179:15;27189:4;;;;;;;;;;;27179:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;27166:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;27159:71;;27071:167;;;:::o;19087:391::-;19136:7;19156:21;19180:78;19242:15;19180:57;19213:23;;19180:28;;:32;;:57;;;;:::i;:::-;:61;;:78;;;;:::i;:::-;19156:102;;19269:19;19291:88;19370:8;;19291:74;19336:28;;19291:40;19304:26;;19291:8;;:12;;:40;;;;:::i;:::-;:44;;:74;;;;:::i;:::-;:78;;:88;;;;:::i;:::-;19269:110;;19397:73;19410:59;19445:23;;19410:30;19426:13;19410:11;:15;;:30;;;;:::i;:::-;:34;;:59;;;;:::i;:::-;19397:8;;:12;;:73;;;;:::i;:::-;19390:80;;;;19087:391;:::o;16046:133::-;16130:7;16148:11;:19;16160:6;16148:19;;;;;;;;;;;;;;;:28;16168:7;16148:28;;;;;;;;;;;;;;;;16141:35;;16046:133;;;;:::o;26231:156::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26337:8:::1;26323:11;;:22;;;;;;;;;;;;;;;;;;26372:7;26356:13;:23;;;;26231:156:::0;;:::o;13397:35::-;;;;;;;;;;;;;:::o;3964:97::-;3510:19;3518:10;3510:7;:19::i;:::-;3502:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4048:5:::1;4026:14;:19;4041:3;4026:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3964:97:::0;:::o;18773:306::-;18829:7;18870:12;18865:1;18852:10;;:14;:30;18849:67;;18892:21;18911:1;18892:14;;:18;;:21;;;;:::i;:::-;18885:28;;;;18849:67;18929:7;:86;;;;;19000:15;18940:57;18973:23;;18940:28;;:32;;:57;;;;:::i;:::-;:75;18929:86;18926:120;;;19025:18;:16;:18::i;:::-;19018:25;;;;18926:120;19063:8;;19056:15;;18773:306;;;;:::o;4521:173::-;3510:19;3518:10;3510:7;:19::i;:::-;3502:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4605:3:::1;4597:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4641:4;4619:14:::0;:19:::1;4634:3;4619:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4661:25;4682:3;4661:25;;;;;;;;;;;;;;;;;;;;4521:173:::0;:::o;22079:316::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22185:23:::1;22195:6;22203:4;;;;;;;;;;;22185:9;:23::i;:::-;22222:24;22219:169;;;22293:15;22262:28;:46;;;;22328:48;22352:23;;22328:48;;;;;;;;;;;;;;;;;;22219:169;22079:316:::0;;:::o;24558:347::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24673:4:::1;24655:23;;:6;:23;;;;:41;;;;;24692:4;;;;;;;;;;;24682:14;;:6;:14;;;;24655:41;24647:50;;;::::0;::::1;;24735:6;24708:16;:24;24725:6;24708:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;24755:6;24752:146;;;24777:11;;;;;;;;;;;:20;;;24798:6;24806:1;24777:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24752:146;;;24839:11;;;;;;;;;;;:20;;;24860:6;24868:9;:17;24878:6;24868:17;;;;;;;;;;;;;;;;24839:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24752:146;24558:347:::0;;:::o;25041:128::-;3679:24;3692:10;3679:12;:24::i;:::-;3671:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25155:6:::1;25129:15;:23;25145:6;25129:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;25041:128:::0;;:::o;13525:24::-;;;;;;;;;;;;;:::o;4295:107::-;4351:4;4375:14;:19;4390:3;4375:19;;;;;;;;;;;;;;;;;;;;;;;;;4368:26;;4295:107;;;:::o;851:181::-;909:7;929:9;945:1;941;:5;929:17;;970:1;965;:6;;957:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:1;1016:8;;;851:181;;;;:::o;1180:192::-;1266:7;1299:1;1294;:6;;1302:12;1286:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1326:9;1342:1;1338;:5;1326:17;;1363:1;1356:8;;;1180:192;;;;;:::o;17071:1058::-;17163:4;17183:6;;;;;;;;;;;17180:63;;;17199:41;17214:6;17222:9;17233:6;17199:14;:41::i;:::-;17192:48;;;;17180:63;17255:28;17268:6;17276;17255:12;:28::i;:::-;17301:16;:14;:16::i;:::-;17298:35;;;17320:10;:8;:10::i;:::-;17298:35;17346:19;:17;:19::i;:::-;17343:48;;;17368:20;:18;:20::i;:::-;17343:48;17518:53;17540:6;17518:53;;;;;;;;;;;;;;;;;:9;:17;17528:6;17518:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17498:9;:17;17508:6;17498:17;;;;;;;;;;;;;;;:73;;;;17584:22;17609:21;17623:6;17609:13;:21::i;:::-;:67;;17670:6;17609:67;;;17633:34;17641:6;17649:9;17660:6;17633:7;:34::i;:::-;17609:67;17584:92;;17712:40;17737:14;17712:9;:20;17722:9;17712:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;17689:9;:20;17699:9;17689:20;;;;;;;;;;;;;;;:63;;;;17769:16;:24;17786:6;17769:24;;;;;;;;;;;;;;;;;;;;;;;;;17765:96;;17800:11;;;;;;;;;;;:20;;;17821:6;17829:9;:17;17839:6;17829:17;;;;;;;;;;;;;;;;17800:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17796:63;;;;;;17765:96;17875:16;:27;17892:9;17875:27;;;;;;;;;;;;;;;;;;;;;;;;;17871:105;;17909:11;;;;;;;;;;;:20;;;17930:9;17941;:20;17951:9;17941:20;;;;;;;;;;;;;;;;17909:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17905:69;;;;;;17871:105;17992:11;;;;;;;;;;;:19;;;18012:14;;17992:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17988:51;;;;;;18073:9;18056:43;;18065:6;18056:43;;;18084:14;18056:43;;;;;;;;;;;;;;;;;;18117:4;18110:11;;;17071:1058;;;;;;:::o;1038:136::-;1096:7;1123:43;1127:1;1130;1123:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1116:50;;1038:136;;;;:::o;24315:144::-;24390:18;24432:19;;24419:32;;24315:144;;:::o;1378:250::-;1436:7;1465:1;1460;:6;1456:47;;;1490:1;1483:8;;;;1456:47;1515:9;1531:1;1527;:5;1515:17;;1560:1;1555;1551;:5;;;;;;:10;1543:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1619:1;1612:8;;;1378:250;;;;;:::o;1634:132::-;1692:7;1719:39;1723:1;1726;1719:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1712:46;;1634:132;;;;:::o;22827:361::-;14381:4;14372:6;;:13;;;;;;;;;;;;;;;;;;22903:21:::1;22941:1;22927:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22903:40;;22964:4;;;;;;;;;;;22954;22959:1;22954:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;22997:4;22979;22984:1;22979:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;23015:6;;;;;;;;;;;:57;;;23080:6;23102:1;23118:4;23137:2;23154:15;23015:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;14387:1;14399:5:::0;14390:6;;:14;;;;;;;;;;;;;;;;;;22827:361;;:::o;18137:330::-;18230:4;18267:53;18289:6;18267:53;;;;;;;;;;;;;;;;;:9;:17;18277:6;18267:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18247:9;:17;18257:6;18247:17;;;;;;;;;;;;;;;:73;;;;18354:32;18379:6;18354:9;:20;18364:9;18354:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18331:9;:20;18341:9;18331:20;;;;;;;;;;;;;;;:55;;;;18419:9;18402:35;;18411:6;18402:35;;;18430:6;18402:35;;;;;;;;;;;;;;;;;;18455:4;18448:11;;18137:330;;;;;:::o;18477:166::-;18574:12;;18564:6;:22;;:49;;;;18590:15;:23;18606:6;18590:23;;;;;;;;;;;;;;;;;;;;;;;;;18564:49;18556:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18477:166;;:::o;19866:197::-;19915:4;19953;;;;;;;;;;;19939:18;;:10;:18;;;;:38;;;;;19971:6;;;;;;;;;;;19970:7;19939:38;:62;;;;;19990:11;;;;;;;;;;;19939:62;:116;;;;;20042:13;;20014:9;:24;20032:4;20014:24;;;;;;;;;;;;;;;;:41;;19939:116;19932:123;;19866:197;:::o;20071:1674::-;14381:4;14372:6;;:13;;;;;;;;;;;;;;;;;;20120:27:::1;20150:60;20166:15;;20183:26;;20150:15;:60::i;:::-;:79;;20217:12;;20150:79;;;20213:1;20150:79;20120:109;;20240:23;20266:59;20323:1;20266:52;20309:8;;20266:38;20284:19;20266:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;20240:85;;20336:20;20359:34;20377:15;20359:13;;:17;;:34;;;;:::i;:::-;20336:57;;20406:21;20444:1;20430:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20406:40;;20475:4;20457;20462:1;20457:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;20501:4;;;;;;;;;;;20491;20496:1;20491:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;20516:21;20540;20516:45;;20574:6;;;;;;;;;;;:57;;;20646:12;20673:1;20689:4;20716;20736:15;20574:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20775:17;20795:40;20821:13;20795:21;:25;;:40;;;;:::i;:::-;20775:60;;20848:19;20870:40;20883:26;20907:1;20883:19;:23;;:26;;;;:::i;:::-;20870:8;;:12;;:40;;;;:::i;:::-;20848:62;;20923:26;20952:58;21008:1;20952:51;20991:11;20952:34;20966:19;20952:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;20923:87;;21021:27;21051:54;21093:11;21051:37;21065:22;21083:3;21065:13;;:17;;:22;;;;:::i;:::-;21051:9;:13;;:37;;;;:::i;:::-;:41;;:54;;;;:::i;:::-;21021:84;;21116:26;21145:53;21186:11;21145:36;21159:21;21176:3;21159:12;;:16;;:21;;;;:::i;:::-;21145:9;:13;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;21116:82;;21215:11;;;;;;;;;;;:19;;;21242;21215:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21211:65;;;;;;21294:20;;;;;;;;;;;21286:34;;21328:18;21353:5;21286:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21397:1;21379:15;:19;21376:362;;;21414:6;;;;;;;;;;;:22;;;21444:18;21490:4;21514:15;21548:1;21568::::0;21588:21:::1;;;;;;;;;;;21628:15;21414:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21678:48;21690:18;21710:15;21678:48;;;;;;;;;;;;;;;;;;;;;;;;21376:362;14387:1;;;;;;;;;;14399:5:::0;14390:6;;:14;;;;;;;;;;;;;;;;;;20071:1674::o;21753:318::-;21805:4;21843;;;;;;;;;;;21829:18;;:10;:18;;;;:38;;;;;21861:6;;;;;;;;;;;21860:7;21829:38;:69;;;;;21880:18;;;;;;;;;;;21829:69;:143;;;;;21960:12;21934:22;;21911:20;;:45;:61;;21829:143;:234;;;;;22046:17;;22021:21;:42;;21829:234;21822:241;;21753:318;:::o;22516:303::-;22566:34;22576:17;;22595:4;;;;;;;;;;;22566:9;:34::i;:::-;22634:12;22611:20;:35;;;;22682:45;22709:17;;22682:22;;:26;;:45;;;;:::i;:::-;22657:22;:70;;;;22766:14;;22741:22;;:39;22738:74;;;22804:5;22783:18;;:26;;;;;;;;;;;;;;;;;;22738:74;22516:303::o;18651:114::-;18713:4;18738:11;:19;18750:6;18738:19;;;;;;;;;;;;;;;;;;;;;;;;;18737:20;18730:27;;18651:114;;;:::o;19486:372::-;19571:7;19591:17;19611:61;19657:14;;19611:41;19622:29;19646:4;;;;;;;;;;;19634:16;;:8;:16;;;19622:11;:29::i;:::-;19611:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;19591:81;;19712:39;19741:9;19712;:24;19730:4;19712:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;19685:9;:24;19703:4;19685:24;;;;;;;;;;;;;;;:66;;;;19792:4;19767:42;;19776:6;19767:42;;;19799:9;19767:42;;;;;;;;;;;;;;;;;;19829:21;19840:9;19829:6;:10;;:21;;;;:::i;:::-;19822:28;;;19486:372;;;;;:::o;1772:345::-;1858:7;1957:1;1953;:5;1960:12;1945:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:9;2000:1;1996;:5;;;;;;1984:17;;2108:1;2101:8;;;1772:345;;;;;:::o

Swarm Source

ipfs://e66656909ddb48cc425972f99e66a356036f00b7984629c609b8cd0bd425ac35
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.