Contract 0xa334626E6B451a0316043f439d5aC62f19934B60 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe7a95252bafae90dec90e41f6d3f380c3d3bbe15d95edb55a4799a9ffae6e4e6Approve130368772021-11-29 0:23:221 hr 36 mins ago0xf2795c0eff4cb4c08b2b07544de1bb2f0d13a0c2 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0xf6a584531dd46928390bb35c190f90c4e00d31483b6a2cab254c87569c34a7baTransfer129797112021-11-26 21:12:562 days 4 hrs ago0xe1ff0aa8878e44f3a7f2d706d2091df2a7ae5f7c IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.002778605
0xbbb33f686a8b87ca661b0aa760f1e09f7d53983defd76f4bb42b19e864210c9dApprove129714772021-11-26 13:46:042 days 12 hrs ago0xafcf98edabadb25ebbbfe0fd7881932b092bb934 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00012718
0x636e9698974cb39a1c52d440fc21838dc15412db42fcb83912bc57b490cfda3bApprove129714622021-11-26 13:45:132 days 12 hrs ago0xafcf98edabadb25ebbbfe0fd7881932b092bb934 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00007409
0x038382c78a502bc2972f8cd834dad05a5a1fe5da8e0baaba40343529dd4c1dacApprove129694532021-11-26 11:54:552 days 14 hrs ago0xb4e194525bc0fa85eca7f0f3550d53447133d7f2 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x5c65a168b42a5a5d86bf53e249dd52954108586d9b3b47416c668a3ea06ed0e6Approve129690412021-11-26 11:32:512 days 14 hrs ago0xf43a87f3dfa558fd626b50760a2907082af215a4 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0xa6de3f0c7e8848541cbc9c8e936fe624cd5e8635f732646536268f1ddb651c9bApprove129683562021-11-26 10:55:482 days 15 hrs ago0xf5d55cc80a74f89e29b1aaee81c4615001e7c98d IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x352944506dd661e8f8cef83615fe038ab1e86dd08f56ccaa7a77ba38c473eb28Claim Dividend129657922021-11-26 8:32:542 days 17 hrs ago0x538ee40aec00575e47811181d9e05b5fc742e43c IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.000634109
0xa8858e60681270c5045bbee5ecd6af37b16ed6263c916c421360c7e3a6c39e9cApprove129631922021-11-26 6:02:312 days 19 hrs ago0xafcf98edabadb25ebbbfe0fd7881932b092bb934 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.0002251
0x36b9658a5d23fe9def4c2a4cb03dbc017ea65d52486baefa0ac603ba173ce079Approve129590702021-11-26 1:53:263 days 6 mins ago0xd71c8d87d33e36f00d21e95bdae5ad19e4df1c99 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x8af90509ffb9eafeb1b1776ed2c1387734deba161273b316d94fd9dc555ccaf3Approve129496702021-11-25 17:11:423 days 8 hrs ago0x58ccb6f2a541bade9020ee9cf9d7f34db0e142e4 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.000270192
0xa4fba8a50341268c63c263f08ef7a5009d22c0657ee73a2508121843ab420d17Approve129423072021-11-25 10:30:023 days 15 hrs ago0x0f8270d52e56272ac6efb600ea8344dd5989547e IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.0002251
0xcbc85741bd6dd96721c6325a3c34bd6e1f46b6612f415640f25831f3dc9a9c2dApprove129195432021-11-24 14:20:504 days 11 hrs ago0x872b24693292b322255b3d3129955fe902b19561 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x1718a1900a7b0b2b0937dc483f250707700e77aaf13382a5466628e5aa37192aApprove129141632021-11-24 9:40:144 days 16 hrs ago0x615b988421524b8eb34a9119b927145fb1ec7fdf IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x96760eed68bc4db611a11945017f326f6375fb270d1d6ca12537b4340e2d9854Transfer129063722021-11-24 2:57:104 days 23 hrs ago0x32bbc807e2474d4ce29c99701362e33809ce42a4 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00195885
0x030b007198481111f6e056c44ebbcde30544016fa5f41e1d862c4468f577e836Claim Dividend128960942021-11-23 17:53:435 days 8 hrs ago0x15a67b93761680a610b76fef7a354c9897360562 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.000377935
0x7b49415510a7a6aa2a55f075a8262e121562428a33a1b3fe4d660eebbe43141dApprove128430242021-11-21 20:20:267 days 5 hrs ago0xfedea11380085089dd68271eb9e3427cd319a758 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00012916
0x47ce7b6fde74bb7886ad8b8068063bed35cda407f623a78c9aa2f383f2a6a0f7Approve128430192021-11-21 20:20:117 days 5 hrs ago0xfedea11380085089dd68271eb9e3427cd319a758 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x1b287d7d294e03de7394e232ef69fe86ac5c518cc4e2fac1d1478803074b5cf5Claim Dividend128334062021-11-21 12:00:187 days 13 hrs ago0x15a67b93761680a610b76fef7a354c9897360562 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.000377935
0xfd5fda87237c8086e852e781eb32177e50132456867532ad646b85cd447531d8Approve128329892021-11-21 11:39:177 days 14 hrs ago0xe7c3d4aba7c7d5321f9526f51f857dc67bbcdd38 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x5e9304a14ed295a9a0aa1d21d51365792819842eb551b6ab54ea28ca46f07f79Transfer128218672021-11-21 2:13:587 days 23 hrs ago0x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00255667
0xfa9fb4e277507c674892c7469d047eed59114de421b84ffa362d25c189af2eaaTransfer128218492021-11-21 2:13:027 days 23 hrs ago0x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00255667
0x9e446bd534495662240de03c8489b5591bf507d5b29cb91a7ae92087353bc572Approve128208922021-11-21 1:24:578 days 34 mins ago0x8d78a76d5c968561e1569f52a5e9bfc9186c9dfa IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x0d71324261ad5a36386434289c7ae7f6ad7f3577bd34d57807efc7fe85f2ee40Approve128003402021-11-20 7:46:498 days 18 hrs ago0x0589abb9d74eb35a0cf3ace72a2f250464a40046 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
0x9f484cd5b69969613a80846af17757c4781dd3d6bbf84c408c4a7d415606e786Approve127986172021-11-20 6:17:138 days 19 hrs ago0x69aefdd5c12533326433cdde727f20e2b991e182 IN  0xa334626e6b451a0316043f439d5ac62f19934b600 BNB0.00022516
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x2f2a3a336f1044204b389c4ae01ded6d9343856d90db4c79465041fa989e8c69129755132021-11-26 17:27:162 days 8 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.104175703046959298 BNB
0x2f2a3a336f1044204b389c4ae01ded6d9343856d90db4c79465041fa989e8c69129755132021-11-26 17:27:162 days 8 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.208351406093918597 BNB
0x2f2a3a336f1044204b389c4ae01ded6d9343856d90db4c79465041fa989e8c69129755132021-11-26 17:27:162 days 8 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.354197390359661616 BNB
0x7dfa07bf129578d9803b8e94da4ae2dbb152a0b6e2f8cc3f53c8f7bf23ccdab6129423302021-11-25 10:31:293 days 15 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.131162626771603755 BNB
0x7dfa07bf129578d9803b8e94da4ae2dbb152a0b6e2f8cc3f53c8f7bf23ccdab6129423302021-11-25 10:31:293 days 15 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.26232525354320751 BNB
0x7dfa07bf129578d9803b8e94da4ae2dbb152a0b6e2f8cc3f53c8f7bf23ccdab6129423302021-11-25 10:31:293 days 15 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.445952931023452767 BNB
0x86155fc6969101b8279aded29cb156c63cdec30e446f24a2d5ba3142f76f9f0a128577442021-11-22 8:45:026 days 17 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.116107863139161592 BNB
0x86155fc6969101b8279aded29cb156c63cdec30e446f24a2d5ba3142f76f9f0a128577442021-11-22 8:45:026 days 17 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.232215726278323185 BNB
0x86155fc6969101b8279aded29cb156c63cdec30e446f24a2d5ba3142f76f9f0a128577442021-11-22 8:45:026 days 17 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.394766734673149416 BNB
0xe523219e85372fd61beda25ef11e5e45946a67552cd75c390777980c857d4559127898642021-11-19 22:28:279 days 3 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.121028793488825617 BNB
0xe523219e85372fd61beda25ef11e5e45946a67552cd75c390777980c857d4559127898642021-11-19 22:28:279 days 3 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.242057586977651235 BNB
0xe523219e85372fd61beda25ef11e5e45946a67552cd75c390777980c857d4559127898642021-11-19 22:28:279 days 3 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.4114978978620071 BNB
0x4c9959cfe10c17d433be64f0b35534c72a4fe1bf8e51d15a8c9c912c19b9ad23127522402021-11-18 13:46:3310 days 12 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.110894699952112879 BNB
0x4c9959cfe10c17d433be64f0b35534c72a4fe1bf8e51d15a8c9c912c19b9ad23127522402021-11-18 13:46:3310 days 12 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.221789399904225758 BNB
0x4c9959cfe10c17d433be64f0b35534c72a4fe1bf8e51d15a8c9c912c19b9ad23127522402021-11-18 13:46:3310 days 12 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.37704197983718379 BNB
0xfe10709128656305136f4750eb9cdb6488f70a03abec18a2c81c4d54e30dbbef127514832021-11-18 13:06:3410 days 12 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.123490444589924592 BNB
0xfe10709128656305136f4750eb9cdb6488f70a03abec18a2c81c4d54e30dbbef127514832021-11-18 13:06:3410 days 12 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.246980889179849184 BNB
0xfe10709128656305136f4750eb9cdb6488f70a03abec18a2c81c4d54e30dbbef127514832021-11-18 13:06:3410 days 12 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.419867511605743614 BNB
0xf58c17ea666bbb8bded2d9c4801fb6a710038b003499aa8c6688ca1c90306905127269462021-11-17 15:55:4211 days 10 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.085035947891473446 BNB
0xf58c17ea666bbb8bded2d9c4801fb6a710038b003499aa8c6688ca1c90306905127269462021-11-17 15:55:4211 days 10 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.170071895782946893 BNB
0xf58c17ea666bbb8bded2d9c4801fb6a710038b003499aa8c6688ca1c90306905127269462021-11-17 15:55:4211 days 10 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.289122222831009719 BNB
0xe7581690881add70afbfe05891c198142b9e24875605c7c6a58d702c751ed212127120382021-11-17 2:16:0011 days 23 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.057604296006025941 BNB
0xe7581690881add70afbfe05891c198142b9e24875605c7c6a58d702c751ed212127120382021-11-17 2:16:0011 days 23 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b60 0x8fce27de4d527a9e375151b34910c1df019c49c00.115208592012051882 BNB
0xe7581690881add70afbfe05891c198142b9e24875605c7c6a58d702c751ed212127120382021-11-17 2:16:0011 days 23 hrs ago PancakeSwap: Router v2 0xa334626e6b451a0316043f439d5ac62f19934b600.1958546064204882 BNB
0x4dca5922e3c4ea1b831d726e14b1314476b4289de172ac4c4f6efc189cb1aa8c125991062021-11-12 23:58:2616 days 2 hrs ago 0xa334626e6b451a0316043f439d5ac62f19934b600x92aaf8b91d5068d0fbf0a1fc2d2c121efd47738a0.048353245927214904 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LittleCarrot

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.5;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

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

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

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

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

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

    IBEP20 BTCB = IBEP20(0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

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

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

    uint256 currentIndex;

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

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

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

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

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

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

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

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = BTCB.balanceOf(address(this));

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

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

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

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

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

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

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

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

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

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

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

    address BTCST = 0x78650B139471520656b9E7aA7A5e9276814a38e9;
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

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

    uint256 _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply / 4; // 1%

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

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

    uint256 liquidityFee = 200;
    uint256 buybackFee = 0;
    uint256 reflectionFee = 1000;
    uint256 marketingFee = 200;
    uint256 totalFee = 1200;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

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

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

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

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

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

        distributor = new DividendDistributor(address(router));
        
        address _presaler = 0x92AAF8b91D5068D0FBf0a1FC2D2C121EFD47738a;
        isFeeExempt[_presaler] = true;
        isTxLimitExempt[_presaler] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

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

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);

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

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

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

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

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

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

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

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

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

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

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

        return amount.sub(feeAmount);
    }

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

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoBuybackMultiplier","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"bool","name":"_autoBuybackMultiplier","type":"bool"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerManualBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040527378650b139471520656b9e7aa7a5e9276814a38e9600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000143919062000ac6565b64e8d4a5100062000155919062000c03565b600655600460065462000169919062000a33565b60075560c8600d556000600e556103e8600f5560c86010556104b06011556127106012556019601555606460165560c8601a556064601b55610708601d556000601e60006101000a81548160ff0219169083151502179055506001601e60016101000a81548160ff0219169083151502179055506207a1206025556001602660006101000a81548160ff02191690831515021790555060c860065462000210919062000a33565b6027553480156200022057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550507310ed43c718714eb63d5aa57b78b54704e256024e601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037857600080fd5b505afa1580156200038d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b3919062000978565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000411929190620009e9565b602060405180830381600087803b1580156200042c57600080fd5b505af115801562000441573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000467919062000978565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200059b9062000953565b620005a79190620009cc565b604051809103906000f080158015620005c4573d6000803e3d6000fd5b50602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060007392aaf8b91d5068d0fbf0a1fc2d2c121efd47738a90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000944919062000a16565b60405180910390a35062000d39565b6120a180620054d983390190565b600081519050620009728162000d1f565b92915050565b60006020828403121562000991576200099062000d0d565b5b6000620009a18482850162000961565b91505092915050565b620009b58162000c64565b82525050565b620009c68162000c98565b82525050565b6000602082019050620009e36000830184620009aa565b92915050565b600060408201905062000a006000830185620009aa565b62000a0f6020830184620009aa565b9392505050565b600060208201905062000a2d6000830184620009bb565b92915050565b600062000a408262000c98565b915062000a4d8362000c98565b92508262000a605762000a5f62000cde565b5b828204905092915050565b6000808291508390505b600185111562000abd5780860481111562000a955762000a9462000caf565b5b600185161562000aa55780820291505b808102905062000ab58562000d12565b945062000a75565b94509492505050565b600062000ad38262000c98565b915062000ae08362000ca2565b925062000b0f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b17565b905092915050565b60008262000b29576001905062000bfc565b8162000b39576000905062000bfc565b816001811462000b52576002811462000b5d5762000b93565b600191505062000bfc565b60ff84111562000b725762000b7162000caf565b5b8360020a91508482111562000b8c5762000b8b62000caf565b5b5062000bfc565b5060208310610133831016604e8410600b841016171562000bcd5782820a90508381111562000bc75762000bc662000caf565b5b62000bfc565b62000bdc848484600162000a6b565b9250905081840481111562000bf65762000bf562000caf565b5b81810290505b9392505050565b600062000c108262000c98565b915062000c1d8362000c98565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c595762000c5862000caf565b5b828202905092915050565b600062000c718262000c78565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000d2a8162000c64565b811462000d3657600080fd5b50565b6147908062000d496000396000f3fe6080604052600436106102975760003560e01c806395d89b411161015a578063df20fd49116100c1578063f2fde38b1161007a578063f2fde38b14610a35578063f429389014610a5e578063f708a64f14610a75578063f84ba65d14610a9e578063f887ea4014610ac7578063fe9fbb8014610af25761029e565b8063df20fd4914610939578063e1dcc71f14610962578063e96fada21461098d578063f0b37c04146109b8578063f0fc6bca146109e1578063f1f3bca3146109f85761029e565b8063b6a5d7de11610113578063b6a5d7de14610815578063bf56b3711461083e578063ca33e64c14610869578063d51ed1c814610894578063d806d12f146108d1578063dd62ed3e146108fc5761029e565b806395d89b41146107195780639d1944f514610744578063a4b45c001461076d578063a8aa1b3114610796578063a9059cbb146107c1578063b210b06d146107fe5761029e565b80632f54bf6e116101fe578063658d4b7f116101b7578063658d4b7f146106095780636ddd17131461063257806370a082311461065d5780637d1db4a51461069a57806382334b94146106c5578063893d20e8146106ee5761029e565b80632f54bf6e146104e75780632f5620d114610524578063313ce5671461054d5780633bb8a8d414610578578063571ac8b0146105a35780635c85974f146105e05761029e565b8063201e799111610250578063201e7991146103c75780632375ce40146103f057806323b872dd1461041957806328fd3198146104565780632b112e49146104935780632d48e896146104be5761029e565b80630445b667146102a357806304a66b48146102ce57806306fdde03146102f7578063095ea7b3146103225780631161ae391461035f57806318160ddd1461039c5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b2f565b6040516102c591906141d9565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613ce0565b610b35565b005b34801561030357600080fd5b5061030c610be4565b60405161031991906140f7565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190613a38565b610c21565b6040516103569190614075565b60405180910390f35b34801561036b57600080fd5b5061038660048036038101906103819190613bfa565b610d13565b6040516103939190614075565b60405180910390f35b3480156103a857600080fd5b506103b1610d28565b6040516103be91906141d9565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613bfa565b610d32565b005b3480156103fc57600080fd5b5061041760048036038101906104129190613c3a565b610d8c565b005b34801561042557600080fd5b50610440600480360381019061043b91906139a5565b610e12565b60405161044d9190614075565b60405180910390f35b34801561046257600080fd5b5061047d6004803603810190610478919061390b565b611012565b60405161048a91906141d9565b60405180910390f35b34801561049f57600080fd5b506104a86110c6565b6040516104b591906141d9565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190613bfa565b611148565b005b3480156104f357600080fd5b5061050e6004803603810190610509919061390b565b611223565b60405161051b9190614075565b60405180910390f35b34801561053057600080fd5b5061054b60048036038101906105469190613ae5565b61127c565b005b34801561055957600080fd5b50610562611323565b60405161056f9190614277565b60405180910390f35b34801561058457600080fd5b5061058d61132c565b60405161059a9190614075565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c5919061390b565b61133f565b6040516105d79190614075565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190613b60565b611372565b005b34801561061557600080fd5b50610630600480360381019061062b91906139f8565b6113e0565b005b34801561063e57600080fd5b50610647611483565b6040516106549190614075565b60405180910390f35b34801561066957600080fd5b50610684600480360381019061067f919061390b565b611496565b60405161069191906141d9565b60405180910390f35b3480156106a657600080fd5b506106af6114df565b6040516106bc91906141d9565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e79190613bba565b6114e5565b005b3480156106fa57600080fd5b506107036115a4565b6040516107109190613f8c565b60405180910390f35b34801561072557600080fd5b5061072e6115cd565b60405161073b91906140f7565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613b60565b61160a565b005b34801561077957600080fd5b50610794600480360381019061078f9190613965565b61166b565b005b3480156107a257600080fd5b506107ab611739565b6040516107b89190613f8c565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613a38565b61175f565b6040516107f59190614075565b60405180910390f35b34801561080a57600080fd5b50610813611774565b005b34801561082157600080fd5b5061083c6004803603810190610837919061390b565b6117c6565b005b34801561084a57600080fd5b50610853611868565b60405161086091906141d9565b60405180910390f35b34801561087557600080fd5b5061087e61186e565b60405161088b9190613f8c565b60405180910390f35b3480156108a057600080fd5b506108bb60048036038101906108b69190613b60565b611894565b6040516108c891906141d9565b60405180910390f35b3480156108dd57600080fd5b506108e6611906565b6040516108f391906141d9565b60405180910390f35b34801561090857600080fd5b50610923600480360381019061091e9190613965565b6119b9565b60405161093091906141d9565b60405180910390f35b34801561094557600080fd5b50610960600480360381019061095b9190613aa5565b611a40565b005b34801561096e57600080fd5b50610977611aad565b6040516109849190614075565b60405180910390f35b34801561099957600080fd5b506109a2611ac0565b6040516109af9190613f8c565b60405180910390f35b3480156109c457600080fd5b506109df60048036038101906109da919061390b565b611ae6565b005b3480156109ed57600080fd5b506109f6611b89565b005b348015610a0457600080fd5b50610a1f6004803603810190610a1a9190613a78565b611c18565b604051610a2c91906141d9565b60405180910390f35b348015610a4157600080fd5b50610a5c6004803603810190610a579190613938565b611c8d565b005b348015610a6a57600080fd5b50610a73611da6565b005b348015610a8157600080fd5b50610a9c6004803603810190610a9791906139f8565b611e5f565b005b348015610aaa57600080fd5b50610ac56004803603810190610ac091906139f8565b6120ff565b005b348015610ad357600080fd5b50610adc6121a2565b604051610ae99190614090565b60405180910390f35b348015610afe57600080fd5b50610b196004803603810190610b14919061390b565b6121c8565b604051610b269190614075565b60405180910390f35b60275481565b610b3e336121c8565b610b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b74906141b9565b60405180910390fd5b84600d8190555083600e8190555082600f8190555081601081905550610bd082610bc285610bb4888a61221e90919063ffffffff16565b61221e90919063ffffffff16565b61221e90919063ffffffff16565b601181905550806012819055505050505050565b60606040518060400160405280600c81526020017f4c6974746c65436172726f740000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d0191906141d9565b60405180910390a36001905092915050565b600082610d1f83611894565b11905092915050565b6000600654905090565b610d3b336121c8565b610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906141b9565b60405180910390fd5b81601581905550806016819055505050565b610d95336121c8565b610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb906141b9565b60405180910390fd5b60028284610de29190614348565b11158015610def57508183115b610df857600080fd5b82601a8190555081601b8190555080601d81905550505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ffe57610f7d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110098484846122e0565b90509392505050565b6000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b815260040161106f9190613f8c565b60206040518083038186803b15801561108757600080fd5b505afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190613b8d565b9050919050565b60006111436110f6600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611496565b611135611124600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611496565b6006546128c990919063ffffffff16565b6128c990919063ffffffff16565b905090565b611151336121c8565b611190576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611187906141b9565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016111ed92919061424e565b600060405180830381600087803b15801561120757600080fd5b505af115801561121b573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b611285336121c8565b6112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb906141b9565b60405180910390fd5b84601e60006101000a81548160ff02191690831515021790555083601f81905550600060208190555082602181905550816022819055504360238190555080601e60016101000a81548160ff0219169083151502179055505050505050565b60006009905090565b601e60009054906101000a900460ff1681565b600061136b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c21565b9050919050565b61137b336121c8565b6113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906141b9565b60405180910390fd5b6103e86006546113ca9190614348565b8110156113d657600080fd5b8060078190555050565b6113e9336121c8565b611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f906141b9565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602660009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b6114ee336121c8565b61152d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611524906141b9565b60405180910390fd5b61155982600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612913565b80156115a05742601c819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601d5460405161159791906141d9565b60405180910390a15b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f4c6974746c65436172726f740000000000000000000000000000000000000000815250905090565b611613336121c8565b611652576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611649906141b9565b60405180910390fd5b620b71b0811061166157600080fd5b8060258190555050565b611674336121c8565b6116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906141b9565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061176c3384846122e0565b905092915050565b61177d336121c8565b6117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906141b9565b60405180910390fd5b6000601c81905550565b6117cf33611223565b61180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180590614199565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60195481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118ff6118a16110c6565b6118f16118e260026118d4601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611496565b612af190919063ffffffff16565b85612af190919063ffffffff16565b612b6c90919063ffffffff16565b9050919050565b60008061193242611924601d54601c5461221e90919063ffffffff16565b6128c990919063ffffffff16565b90506000611975601154611967601b54611959601a54601154612af190919063ffffffff16565b612b6c90919063ffffffff16565b6128c990919063ffffffff16565b90506119b26119a1601d546119938585612af190919063ffffffff16565b612b6c90919063ffffffff16565b60115461221e90919063ffffffff16565b9250505090565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a49336121c8565b611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f906141b9565b60405180910390fd5b81602660006101000a81548160ff021916908315150217905550806027819055505050565b601e60019054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611aef33611223565b611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590614199565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401611be49190613f8c565b600060405180830381600087803b158015611bfe57600080fd5b505af1158015611c12573d6000803e3d6000fd5b50505050565b6000436001601954611c2a91906142f2565b10611c4c57611c4560016012546128c990919063ffffffff16565b9050611c88565b818015611c6e575042611c6c601d54601c5461221e90919063ffffffff16565b115b15611c8257611c7b611906565b9050611c88565b60115490505b919050565b611c9633611223565b611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc90614199565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611d9b9190613fa7565b60405180910390a150565b611daf336121c8565b611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de5906141b9565b60405180910390fd5b6000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e5b573d6000803e3d6000fd5b5050565b611e68336121c8565b611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e906141b9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f315750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f3a57600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561202c57602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401611ff5929190613fc2565b600060405180830381600087803b15801561200f57600080fd5b505af1158015612023573d6000803e3d6000fd5b505050506120fb565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016120c8929190613feb565b600060405180830381600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050505b5050565b612108336121c8565b612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906141b9565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828461222d91906142f2565b905083811015612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990614139565b60405180910390fd5b8091505092915050565b60008383111582906122c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bb91906140f7565b60405180910390fd5b50600083856122d391906143d3565b9050809150509392505050565b6000602860009054906101000a900460ff161561230957612302848484612bb6565b90506128c2565b6123138483612d89565b61231b612e26565b1561232957612328612efd565b5b6123316134b2565b1561233f5761233e613565565b5b612347613637565b1580156123a15750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156123fb576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116123f257600080fd5b6123fa613644565b5b612484826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006124d28561364d565b6124dc57826124e8565b6124e78585856136a4565b5b905061253c81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221e90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166126a257602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161266c929190613feb565b600060405180830381600087803b15801561268657600080fd5b505af1925050508015612697575060015b6126a0576126a1565b5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127c557602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161278f929190613feb565b600060405180830381600087803b1580156127a957600080fd5b505af19250505080156127ba575060015b6127c3576127c4565b5b5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796025546040518263ffffffff1660e01b815260040161282291906141d9565b600060405180830381600087803b15801561283c57600080fd5b505af192505050801561284d575060015b61285657612857565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128b491906141d9565b60405180910390a360019150505b9392505050565b600061290b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061227c565b905092915050565b6001602860006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561294b5761294a61459a565b5b6040519080825280602002602001820160405280156129795781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106129b3576129b261456b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612a0257612a0161456b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b8152600401612a9f94939291906140ab565b6000604051808303818588803b158015612ab857600080fd5b505af1158015612acc573d6000803e3d6000fd5b5050505050506000602860006101000a81548160ff0219169083151502179055505050565b600080831415612b045760009050612b66565b60008284612b129190614379565b9050828482612b219190614348565b14612b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5890614179565b60405180910390fd5b809150505b92915050565b6000612bae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061383f565b905092915050565b6000612c41826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cd682600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221e90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d7691906141d9565b60405180910390a3600190509392505050565b60075481111580612de35750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1990614119565b60405180910390fd5b5050565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612e935750602860009054906101000a900460ff16155b8015612eab5750602660009054906101000a900460ff165b8015612ef85750602754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602860006101000a81548160ff0219169083151502179055506000612f28601554601654610d13565b612f3457600d54612f37565b60005b90506000612f776002612f69601154612f5b86602754612af190919063ffffffff16565b612b6c90919063ffffffff16565b612b6c90919063ffffffff16565b90506000612f90826027546128c990919063ffffffff16565b90506000600267ffffffffffffffff811115612faf57612fae61459a565b5b604051908082528060200260200182016040528015612fdd5781602001602082028036833780820191505090505b5090503081600081518110612ff557612ff461456b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106130665761306561456b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016131099594939291906141f4565b600060405180830381600087803b15801561312357600080fd5b505af1158015613137573d6000803e3d6000fd5b50505050600061315082476128c990919063ffffffff16565b9050600061317c61316b600289612b6c90919063ffffffff16565b6011546128c990919063ffffffff16565b905060006131b860026131aa8461319c8c88612af190919063ffffffff16565b612b6c90919063ffffffff16565b612b6c90919063ffffffff16565b905060006131e3836131d5600f5487612af190919063ffffffff16565b612b6c90919063ffffffff16565b9050600061320e8461320060105488612af190919063ffffffff16565b612b6c90919063ffffffff16565b9050602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561327a57600080fd5b505af19350505050801561328c575060015b61329557613296565b5b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516132e290613f77565b600060405180830381858888f193505050503d8060008114613320576040519150601f19603f3d011682016040523d82523d6000602084013e613325565b606091505b5050905080613369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336090614159565b60405180910390fd5b60008a111561348a57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016133fb96959493929190614014565b6060604051808303818588803b15801561341457600080fd5b505af1158015613428573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061344d9190613c8d565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b60405161348192919061424e565b60405180910390a15b50505050505050505050506000602860006101000a81548160ff021916908315150217905550565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561351f5750602860009054906101000a900460ff16155b80156135375750601e60009054906101000a900460ff165b801561355257504360225460235461354f91906142f2565b11155b801561356057506021544710155b905090565b613593602154600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612913565b601e60019054906101000a900460ff16156135e95742601c819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601d546040516135e091906141d9565b60405180910390a15b4360238190555061360760215460205461221e90919063ffffffff16565b602081905550601f546020541115613635576000601e60006101000a81548160ff0219169083151502179055505b565b6000806019541415905090565b43601981905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613726601254613718613709601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611c18565b86612af190919063ffffffff16565b612b6c90919063ffffffff16565b905061377a81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221e90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161381a91906141d9565b60405180910390a361383581846128c990919063ffffffff16565b9150509392505050565b60008083118290613886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161387d91906140f7565b60405180910390fd5b50600083856138959190614348565b9050809150509392505050565b6000813590506138b1816146fe565b92915050565b6000813590506138c681614715565b92915050565b6000813590506138db8161472c565b92915050565b6000813590506138f081614743565b92915050565b60008151905061390581614743565b92915050565b600060208284031215613921576139206145c9565b5b600061392f848285016138a2565b91505092915050565b60006020828403121561394e5761394d6145c9565b5b600061395c848285016138b7565b91505092915050565b6000806040838503121561397c5761397b6145c9565b5b600061398a858286016138a2565b925050602061399b858286016138a2565b9150509250929050565b6000806000606084860312156139be576139bd6145c9565b5b60006139cc868287016138a2565b93505060206139dd868287016138a2565b92505060406139ee868287016138e1565b9150509250925092565b60008060408385031215613a0f57613a0e6145c9565b5b6000613a1d858286016138a2565b9250506020613a2e858286016138cc565b9150509250929050565b60008060408385031215613a4f57613a4e6145c9565b5b6000613a5d858286016138a2565b9250506020613a6e858286016138e1565b9150509250929050565b600060208284031215613a8e57613a8d6145c9565b5b6000613a9c848285016138cc565b91505092915050565b60008060408385031215613abc57613abb6145c9565b5b6000613aca858286016138cc565b9250506020613adb858286016138e1565b9150509250929050565b600080600080600060a08688031215613b0157613b006145c9565b5b6000613b0f888289016138cc565b9550506020613b20888289016138e1565b9450506040613b31888289016138e1565b9350506060613b42888289016138e1565b9250506080613b53888289016138cc565b9150509295509295909350565b600060208284031215613b7657613b756145c9565b5b6000613b84848285016138e1565b91505092915050565b600060208284031215613ba357613ba26145c9565b5b6000613bb1848285016138f6565b91505092915050565b60008060408385031215613bd157613bd06145c9565b5b6000613bdf858286016138e1565b9250506020613bf0858286016138cc565b9150509250929050565b60008060408385031215613c1157613c106145c9565b5b6000613c1f858286016138e1565b9250506020613c30858286016138e1565b9150509250929050565b600080600060608486031215613c5357613c526145c9565b5b6000613c61868287016138e1565b9350506020613c72868287016138e1565b9250506040613c83868287016138e1565b9150509250925092565b600080600060608486031215613ca657613ca56145c9565b5b6000613cb4868287016138f6565b9350506020613cc5868287016138f6565b9250506040613cd6868287016138f6565b9150509250925092565b600080600080600060a08688031215613cfc57613cfb6145c9565b5b6000613d0a888289016138e1565b9550506020613d1b888289016138e1565b9450506040613d2c888289016138e1565b9350506060613d3d888289016138e1565b9250506080613d4e888289016138e1565b9150509295509295909350565b6000613d678383613d82565b60208301905092915050565b613d7c8161446e565b82525050565b613d8b81614407565b82525050565b613d9a81614407565b82525050565b6000613dab826142a2565b613db581856142c5565b9350613dc083614292565b8060005b83811015613df1578151613dd88882613d5b565b9750613de3836142b8565b925050600181019050613dc4565b5085935050505092915050565b613e078161442b565b82525050565b613e1681614480565b82525050565b613e25816144a4565b82525050565b6000613e36826142ad565b613e4081856142e1565b9350613e508185602086016144da565b613e59816145ce565b840191505092915050565b6000613e716011836142e1565b9150613e7c826145df565b602082019050919050565b6000613e94601b836142e1565b9150613e9f82614608565b602082019050919050565b6000613eb7601e836142e1565b9150613ec282614631565b602082019050919050565b6000613eda6021836142e1565b9150613ee58261465a565b604082019050919050565b6000613efd6006836142e1565b9150613f08826146a9565b602082019050919050565b6000613f206000836142d6565b9150613f2b826146d2565b600082019050919050565b6000613f43600b836142e1565b9150613f4e826146d5565b602082019050919050565b613f6281614457565b82525050565b613f7181614461565b82525050565b6000613f8282613f13565b9150819050919050565b6000602082019050613fa16000830184613d91565b92915050565b6000602082019050613fbc6000830184613d73565b92915050565b6000604082019050613fd76000830185613d91565b613fe46020830184613e1c565b9392505050565b60006040820190506140006000830185613d91565b61400d6020830184613f59565b9392505050565b600060c0820190506140296000830189613d91565b6140366020830188613f59565b6140436040830187613e1c565b6140506060830186613e1c565b61405d6080830185613d91565b61406a60a0830184613f59565b979650505050505050565b600060208201905061408a6000830184613dfe565b92915050565b60006020820190506140a56000830184613e0d565b92915050565b60006080820190506140c06000830187613e1c565b81810360208301526140d28186613da0565b90506140e16040830185613d91565b6140ee6060830184613f59565b95945050505050565b600060208201905081810360008301526141118184613e2b565b905092915050565b6000602082019050818103600083015261413281613e64565b9050919050565b6000602082019050818103600083015261415281613e87565b9050919050565b6000602082019050818103600083015261417281613eaa565b9050919050565b6000602082019050818103600083015261419281613ecd565b9050919050565b600060208201905081810360008301526141b281613ef0565b9050919050565b600060208201905081810360008301526141d281613f36565b9050919050565b60006020820190506141ee6000830184613f59565b92915050565b600060a0820190506142096000830188613f59565b6142166020830187613e1c565b81810360408301526142288186613da0565b90506142376060830185613d91565b6142446080830184613f59565b9695505050505050565b60006040820190506142636000830185613f59565b6142706020830184613f59565b9392505050565b600060208201905061428c6000830184613f68565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006142fd82614457565b915061430883614457565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561433d5761433c61450d565b5b828201905092915050565b600061435382614457565b915061435e83614457565b92508261436e5761436d61453c565b5b828204905092915050565b600061438482614457565b915061438f83614457565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143c8576143c761450d565b5b828202905092915050565b60006143de82614457565b91506143e983614457565b9250828210156143fc576143fb61450d565b5b828203905092915050565b600061441282614437565b9050919050565b600061442482614437565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614479826144b6565b9050919050565b600061448b82614492565b9050919050565b600061449d82614437565b9050919050565b60006144af82614457565b9050919050565b60006144c1826144c8565b9050919050565b60006144d382614437565b9050919050565b60005b838110156144f85780820151818401526020810190506144dd565b83811115614507576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61470781614407565b811461471257600080fd5b50565b61471e81614419565b811461472957600080fd5b50565b6147358161442b565b811461474057600080fd5b50565b61474c81614457565b811461475757600080fd5b5056fea2646970667358221220d7ccba30933d57806c5440e5371a46c8db726792954997eabf3f1ea087e8807864736f6c634300080600336080604052737130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d556305f5e100600e55348015620000dc57600080fd5b50604051620020a1380380620020a18339818101604052810190620001029190620001f3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000153577310ed43c718714eb63d5aa57b78b54704e256024e62000155565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000278565b600081519050620001ed816200025e565b92915050565b6000602082840312156200020c576200020b62000259565b5b60006200021c84828501620001dc565b91505092915050565b6000620002328262000239565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002698162000225565b81146200027557600080fd5b50565b611e1980620002886000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461028f578063efca2eed146102ba578063ffb2c479146102e5578063ffd49c841461030e576100dd565b8063997664d71461021b578063ce7c2ac214610246578063d0e30db014610285576100dd565b806328fd3198116100bb57806328fd31981461015f5780632d48e8961461019c5780633a98ef39146101c55780634fab0ae8146101f0576100dd565b806311ce023d146100e257806314b6ca961461010d57806315f7e05e14610136575b600080fd5b3480156100ee57600080fd5b506100f7610339565b6040516101049190611993565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611669565b61033f565b005b34801561014257600080fd5b5061015d6004803603810190610158919061163c565b6105fe565b005b34801561016b57600080fd5b506101866004803603810190610181919061163c565b610662565b6040516101939190611993565b60405180910390f35b3480156101a857600080fd5b506101c360048036038101906101be9190611730565b61077c565b005b3480156101d157600080fd5b506101da6107e6565b6040516101e79190611993565b60405180910390f35b3480156101fc57600080fd5b506102056107ec565b6040516102129190611993565b60405180910390f35b34801561022757600080fd5b506102306107f2565b60405161023d9190611993565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061163c565b6107f8565b60405161027c939291906119ae565b60405180910390f35b61028d610822565b005b34801561029b57600080fd5b506102a4610c12565b6040516102b19190611993565b60405180910390f35b3480156102c657600080fd5b506102cf610c18565b6040516102dc9190611993565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906116d6565b610c1e565b005b34801561031a57600080fd5b50610323610db2565b6040516103309190611993565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039757600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103ec576103eb82610db8565b5b60008111801561043e57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104515761044c8261105f565b6104b3565b6000811480156104a357506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104b2576104b18261110e565b5b5b61051c8161050e600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461131590919063ffffffff16565b61135f90919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105b4600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461065657600080fd5b61065f81610db8565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106b75760009050610777565b6000610704600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161075f57600092505050610777565b610772818361131590919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d457600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461087a57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108d791906118a1565b60206040518083038186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190611703565b90506000600267ffffffffffffffff81111561094657610945611ce1565b5b6040519080825280602002602001820160405280156109745781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106109ae576109ad611cb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a1f57610a1e611cb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610abc94939291906118e5565b6000604051808303818588803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b50505050506000610bad83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b4f91906118a1565b60206040518083038186803b158015610b6757600080fd5b505afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190611703565b61131590919063ffffffff16565b9050610bc48160095461135f90919063ffffffff16565b600981905550610c07610bf6600854610be884600c546113ef90919063ffffffff16565b61146a90919063ffffffff16565b600b5461135f90919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7657600080fd5b600060048054905090506000811415610c8f5750610daf565b6000805a905060005b8483108015610ca657508381105b15610daa5783600f5410610cbd576000600f819055505b610d066004600f5481548110610cd657610cd5611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114b4565b15610d5557610d546004600f5481548110610d2457610d23611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610db8565b5b610d7a610d6b5a8461131590919063ffffffff16565b8461135f90919063ffffffff16565b92505a9150600f6000815480929190610d9290611bdc565b91905055508080610da290611bdc565b915050610c98565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610e085761105c565b6000610e1382610662565b9050600081111561105a57610e3381600a5461135f90919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e969291906118bc565b602060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee891906116a9565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f8281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461135f90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611013600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506111229190611b1b565b8154811061113357611132611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106111b1576111b0611cb2565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506112519190611b1b565b8154811061126257611261611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806112dd576112dc611c83565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061135783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611521565b905092915050565b600080828461136e9190611a3a565b9050838110156113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90611953565b60405180910390fd5b8091505092915050565b60006113e8600c546113da600b54856113ef90919063ffffffff16565b61146a90919063ffffffff16565b9050919050565b6000808314156114025760009050611464565b600082846114109190611ac1565b905082848261141f9190611a90565b1461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690611973565b60405180910390fd5b809150505b92915050565b60006114ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611585565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115049190611a3a565b10801561151a5750600e5461151883610662565b115b9050919050565b6000838311158290611569576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115609190611931565b60405180910390fd5b50600083856115789190611b1b565b9050809150509392505050565b600080831182906115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39190611931565b60405180910390fd5b50600083856115db9190611a90565b9050809150509392505050565b6000813590506115f781611d9e565b92915050565b60008151905061160c81611db5565b92915050565b60008135905061162181611dcc565b92915050565b60008151905061163681611dcc565b92915050565b60006020828403121561165257611651611d10565b5b6000611660848285016115e8565b91505092915050565b600080604083850312156116805761167f611d10565b5b600061168e858286016115e8565b925050602061169f85828601611612565b9150509250929050565b6000602082840312156116bf576116be611d10565b5b60006116cd848285016115fd565b91505092915050565b6000602082840312156116ec576116eb611d10565b5b60006116fa84828501611612565b91505092915050565b60006020828403121561171957611718611d10565b5b600061172784828501611627565b91505092915050565b6000806040838503121561174757611746611d10565b5b600061175585828601611612565b925050602061176685828601611612565b9150509250929050565b600061177c8383611788565b60208301905092915050565b61179181611b4f565b82525050565b6117a081611b4f565b82525050565b60006117b1826119f5565b6117bb8185611a18565b93506117c6836119e5565b8060005b838110156117f75781516117de8882611770565b97506117e983611a0b565b9250506001810190506117ca565b5085935050505092915050565b61180d81611b97565b82525050565b600061181e82611a00565b6118288185611a29565b9350611838818560208601611ba9565b61184181611d15565b840191505092915050565b6000611859601b83611a29565b915061186482611d26565b602082019050919050565b600061187c602183611a29565b915061188782611d4f565b604082019050919050565b61189b81611b8d565b82525050565b60006020820190506118b66000830184611797565b92915050565b60006040820190506118d16000830185611797565b6118de6020830184611892565b9392505050565b60006080820190506118fa6000830187611804565b818103602083015261190c81866117a6565b905061191b6040830185611797565b6119286060830184611892565b95945050505050565b6000602082019050818103600083015261194b8184611813565b905092915050565b6000602082019050818103600083015261196c8161184c565b9050919050565b6000602082019050818103600083015261198c8161186f565b9050919050565b60006020820190506119a86000830184611892565b92915050565b60006060820190506119c36000830186611892565b6119d06020830185611892565b6119dd6040830184611892565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611a4582611b8d565b9150611a5083611b8d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a8557611a84611c25565b5b828201905092915050565b6000611a9b82611b8d565b9150611aa683611b8d565b925082611ab657611ab5611c54565b5b828204905092915050565b6000611acc82611b8d565b9150611ad783611b8d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1057611b0f611c25565b5b828202905092915050565b6000611b2682611b8d565b9150611b3183611b8d565b925082821015611b4457611b43611c25565b5b828203905092915050565b6000611b5a82611b6d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611ba282611b8d565b9050919050565b60005b83811015611bc7578082015181840152602081019050611bac565b83811115611bd6576000848401525b50505050565b6000611be782611b8d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c1a57611c19611c25565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b611da781611b4f565b8114611db257600080fd5b50565b611dbe81611b61565b8114611dc957600080fd5b50565b611dd581611b8d565b8114611de057600080fd5b5056fea264697066735822122070feadad61ad57c44703562a42983df95290368f1bb8a620ed8d32bf9a59c9d164736f6c63430008060033

Deployed ByteCode Sourcemap

11589:15057:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13473:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24206:449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14764:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15186:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26371:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14494:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25063:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22907:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15704:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25743:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26046:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25446:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3433:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22454:445;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14588:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13094:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15410:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23434:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23942:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13436:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14934:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12120:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21155:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14850:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14674:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25898:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24663:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12840:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15540:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21485:105;;;;;;;;;;;;;:::i;:::-;;3106:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12868:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12638:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26196:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18102:391;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15045:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24899:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13139:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12681:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3276:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25641:90;;;;;;;;;;;;;:::i;:::-;;17788:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3833:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25254:180;;;;;;;;;;;;;:::i;:::-;;23587:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24070:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12809:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3607:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13473:49;;;;:::o;24206:449::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24385:13:::1;24370:12;:28;;;;24422:11;24409:10;:24;;;;24460:14;24444:13;:30;;;;24500:13;24485:12;:28;;;;24535:69;24590:13;24535:50;24570:14;24535:30;24553:11;24535:13;:17;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;:54;;:69;;;;:::i;:::-;24524:8;:80;;;;24632:15;24615:14;:32;;;;24206:449:::0;;;;;:::o;14764:80::-;14812:13;14836:5;;;;;;;;;;;;;;;;;14829:12;;14764:80;:::o;15186:216::-;15261:4;15313:6;15278:11;:23;15290:10;15278:23;;;;;;;;;;;;;;;:32;15302:7;15278:32;;;;;;;;;;;;;;;:41;;;;15356:7;15335:37;;15344:10;15335:37;;;15365:6;15335:37;;;;;;:::i;:::-;;;;;;;;15390:4;15383:11;;15186:216;;;;:::o;26371:150::-;26451:4;26507:6;26475:29;26495:8;26475:19;:29::i;:::-;:38;26468:45;;26371:150;;;;:::o;14494:88::-;14549:7;14567:12;;14560:19;;14494:88;:::o;25063:183::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25179:7:::1;25161:15;:25;;;;25226:12;25197:26;:41;;;;25063:183:::0;;:::o;22907:342::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23067:1:::1;23052:11;23040:9;:23;;;;:::i;:::-;:28;;:55;;;;;23084:11;23072:9;:23;23040:55;23032:64;;;::::0;::::1;;23136:9;23107:26;:38;;;;23187:11;23156:28;:42;;;;23235:6;23209:23;:32;;;;22907:342:::0;;;:::o;15704:370::-;15804:4;15859:17;15824:11;:19;15836:6;15824:19;;;;;;;;;;;;;;;:31;15844:10;15824:31;;;;;;;;;;;;;;;;:52;15821:186;;15926:69;15962:6;15926:69;;;;;;;;;;;;;;;;;:11;:19;15938:6;15926:19;;;;;;;;;;;;;;;:31;15946:10;15926:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;15892:11;:19;15904:6;15892:19;;;;;;;;;;;;;;;:31;15912:10;15892:31;;;;;;;;;;;;;;;:103;;;;15821:186;16026:40;16040:6;16048:9;16059:6;16026:13;:40::i;:::-;16019:47;;15704:370;;;;;:::o;25743:146::-;25812:7;25839:11;;;;;;;;;;;:29;;;25869:11;25839:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25832:49;;25743:146;;;:::o;26046:142::-;26099:7;26126:54;26164:15;26174:4;;;;;;;;;;;26164:9;:15::i;:::-;26126:33;26143:15;26153:4;;;;;;;;;;;26143:9;:15::i;:::-;26126:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;26119:61;;26046:142;:::o;25446:183::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25556:11:::1;;;;;;;;;;;:35;;;25592:10;25604:16;25556:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25446:183:::0;;:::o;3433:103::-;3488:4;3523:5;;;;;;;;;;;3512:16;;:7;:16;;;3505:23;;3433:103;;;:::o;22454:445::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;22630:8:::1;22609:18;;:29;;;;;;;;;;;;;;;;;;22666:4;22649:14;:21;;;;22706:1;22681:22;:26;;;;22738:7;22718:17;:27;;;;22781:7;22756:22;:32;;;;22822:12;22799:20;:35;;;;22869:22;22845:21;;:46;;;;;;;;;;;;;;;;;;22454:445:::0;;;;;:::o;14588:80::-;14640:5;12047:1;14649:16;;14588:80;:::o;13094:38::-;;;;;;;;;;;;;:::o;15410:122::-;15465:4;15489:35;15497:7;15506:17;15489:7;:35::i;:::-;15482:42;;15410:122;;;:::o;23434:145::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23534:4:::1;23519:12;;:19;;;;:::i;:::-;23509:6;:29;;23501:38;;;::::0;::::1;;23565:6;23550:12;:21;;;;23434:145:::0;:::o;23942:120::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24048:6:::1;24026:11;:19;24038:6;24026:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23942:120:::0;;:::o;13436:30::-;;;;;;;;;;;;;:::o;14934:105::-;15000:7;15018:9;:18;15028:7;15018:18;;;;;;;;;;;;;;;;15011:25;;14934:105;;;:::o;12120:46::-;;;;:::o;21155:318::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;21263:23:::1;21273:6;21281:4;;;;;;;;;;;21263:9;:23::i;:::-;21300:24;21297:169;;;21371:15;21340:28;:46;;;;21406:48;21430:23;;21406:48;;;;;;:::i;:::-;;;;;;;;21297:169;21155:318:::0;;:::o;14850:78::-;14902:7;14920:5;;;;;;;;;;;14913:12;;14850:78;:::o;14674:84::-;14724:13;14748:7;;;;;;;;;;;;;;;;;14741:14;;14674:84;:::o;25898:136::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25988:6:::1;25982:3;:12;25974:21;;;::::0;::::1;;26023:3;26006:14;:20;;;;25898:136:::0;:::o;24663:228::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24806:22:::1;24782:21;;:46;;;;;;;;;;;;;;;;;;24862:21;24839:20;;:44;;;;;;;;;;;;;;;;;;24663:228:::0;;:::o;12840:19::-;;;;;;;;;;;;;:::o;15540:156::-;15620:4;15644:44;15658:10;15670:9;15681:6;15644:13;:44::i;:::-;15637:51;;15540:156;;;;:::o;21485:105::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;21581:1:::1;21550:28;:32;;;;21485:105::o:0;3106:94::-;2822:19;2830:10;2822:7;:19::i;:::-;2814:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3188:4:::1;3166:14:::0;:19:::1;3181:3;3166:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3106:94:::0;:::o;12868:25::-;;;;:::o;12638:36::-;;;;;;;;;;;;;:::o;26196:167::-;26264:7;26291:64;26332:22;:20;:22::i;:::-;26291:36;26304:22;26324:1;26304:15;26314:4;;;;;;;;;;;26304:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;26291:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;26284:71;;26196:167;;;:::o;18102:391::-;18151:7;18171:21;18195:78;18257:15;18195:57;18228:23;;18195:28;;:32;;:57;;;;:::i;:::-;:61;;:78;;;;:::i;:::-;18171:102;;18284:19;18306:88;18385:8;;18306:74;18351:28;;18306:40;18319:26;;18306:8;;:12;;:40;;;;:::i;:::-;:44;;:74;;;;:::i;:::-;:78;;:88;;;;:::i;:::-;18284:110;;18412:73;18425:59;18460:23;;18425:30;18441:13;18425:11;:15;;:30;;;;:::i;:::-;:34;;:59;;;;:::i;:::-;18412:8;;:12;;:73;;;;:::i;:::-;18405:80;;;;18102:391;:::o;15045:133::-;15129:7;15147:11;:19;15159:6;15147:19;;;;;;;;;;;;;;;:28;15167:7;15147:28;;;;;;;;;;;;;;;;15140:35;;15045:133;;;;:::o;24899:156::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25005:8:::1;24991:11;;:22;;;;;;;;;;;;;;;;;;25040:7;25024:13;:23;;;;24899:156:::0;;:::o;13139:40::-;;;;;;;;;;;;;:::o;12681:35::-;;;;;;;;;;;;;:::o;3276:97::-;2822:19;2830:10;2822:7;:19::i;:::-;2814:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3360:5:::1;3338:14;:19;3353:3;3338:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3276:97:::0;:::o;25641:90::-;25686:11;;;;;;;;;;;:25;;;25712:10;25686:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25641:90::o;17788:306::-;17844:7;17885:12;17880:1;17867:10;;:14;;;;:::i;:::-;:30;17864:67;;17907:21;17926:1;17907:14;;:18;;:21;;;;:::i;:::-;17900:28;;;;17864:67;17944:7;:86;;;;;18015:15;17955:57;17988:23;;17955:28;;:32;;:57;;;;:::i;:::-;:75;17944:86;17941:120;;;18040:18;:16;:18::i;:::-;18033:25;;;;17941:120;18078:8;;18071:15;;17788:306;;;;:::o;3833:173::-;2822:19;2830:10;2822:7;:19::i;:::-;2814:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3917:3:::1;3909:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3953:4;3931:14:::0;:19:::1;3946:3;3931:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3973:25;3994:3;3973:25;;;;;;:::i;:::-;;;;;;;;3833:173:::0;:::o;25254:180::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25307:26:::1;25336:21;25307:50;;25376:20;;;;;;;;;;;25368:38;;:58;25407:18;25368:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25296:138;25254:180::o:0;23587:347::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23702:4:::1;23684:23;;:6;:23;;;;:41;;;;;23721:4;;;;;;;;;;;23711:14;;:6;:14;;;;23684:41;23676:50;;;::::0;::::1;;23764:6;23737:16;:24;23754:6;23737:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;23784:6;23781:146;;;23806:11;;;;;;;;;;;:20;;;23827:6;23835:1;23806:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23781:146;;;23868:11;;;;;;;;;;;:20;;;23889:6;23897:9;:17;23907:6;23897:17;;;;;;;;;;;;;;;;23868:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23781:146;23587:347:::0;;:::o;24070:128::-;2991:24;3004:10;2991:12;:24::i;:::-;2983:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24184:6:::1;24158:15;:23;24174:6;24158:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;24070:128:::0;;:::o;12809:24::-;;;;;;;;;;;;;:::o;3607:107::-;3663:4;3687:14;:19;3702:3;3687:19;;;;;;;;;;;;;;;;;;;;;;;;;3680:26;;3607:107;;;:::o;163:181::-;221:7;241:9;257:1;253;:5;;;;:::i;:::-;241:17;;282:1;277;:6;;269:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;335:1;328:8;;;163:181;;;;:::o;492:192::-;578:7;611:1;606;:6;;614:12;598:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;638:9;654:1;650;:5;;;;:::i;:::-;638:17;;675:1;668:8;;;492:192;;;;;:::o;16082:1060::-;16174:4;16194:6;;;;;;;;;;;16191:63;;;16210:41;16225:6;16233:9;16244:6;16210:14;:41::i;:::-;16203:48;;;;16191:63;16274:28;16287:6;16295;16274:12;:28::i;:::-;16318:16;:14;:16::i;:::-;16315:35;;;16337:10;:8;:10::i;:::-;16315:35;16363:19;:17;:19::i;:::-;16360:48;;;16385:20;:18;:20::i;:::-;16360:48;16424:10;:8;:10::i;:::-;16423:11;:32;;;;;16451:4;;;;;;;;;;;16438:17;;:9;:17;;;16423:32;16420:81;;;16486:1;16466:9;:17;16476:6;16466:17;;;;;;;;;;;;;;;;:21;16458:30;;;;;;16490:8;:6;:8::i;:::-;16420:81;16533:53;16555:6;16533:53;;;;;;;;;;;;;;;;;:9;:17;16543:6;16533:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16513:9;:17;16523:6;16513:17;;;;;;;;;;;;;;;:73;;;;16599:22;16624:21;16638:6;16624:13;:21::i;:::-;:67;;16685:6;16624:67;;;16648:34;16656:6;16664:9;16675:6;16648:7;:34::i;:::-;16624:67;16599:92;;16725:40;16750:14;16725:9;:20;16735:9;16725:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16702:9;:20;16712:9;16702:20;;;;;;;;;;;;;;;:63;;;;16782:16;:24;16799:6;16782:24;;;;;;;;;;;;;;;;;;;;;;;;;16778:96;;16813:11;;;;;;;;;;;:20;;;16834:6;16842:9;:17;16852:6;16842:17;;;;;;;;;;;;;;;;16813:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16809:63;;;;;;16778:96;16888:16;:27;16905:9;16888:27;;;;;;;;;;;;;;;;;;;;;;;;;16884:105;;16922:11;;;;;;;;;;;:20;;;16943:9;16954;:20;16964:9;16954:20;;;;;;;;;;;;;;;;16922:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16918:69;;;;;;16884:105;17005:11;;;;;;;;;;;:19;;;17025:14;;17005:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17001:51;;;;;;17086:9;17069:43;;17078:6;17069:43;;;17097:14;17069:43;;;;;;:::i;:::-;;;;;;;;17130:4;17123:11;;;16082:1060;;;;;;:::o;350:136::-;408:7;435:43;439:1;442;435:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;428:50;;350:136;;;;:::o;22085:361::-;13584:4;13575:6;;:13;;;;;;;;;;;;;;;;;;22161:21:::1;22199:1;22185:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22161:40;;22222:4;;;;;;;;;;;22212;22217:1;22212:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;22255:4;22237;22242:1;22237:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;22273:6;;;;;;;;;;;:57;;;22338:6;22360:1;22376:4;22395:2;22412:15;22273:165;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;22150:296;13602:5:::0;13593:6;;:14;;;;;;;;;;;;;;;;;;22085:361;;:::o;690:250::-;748:7;777:1;772;:6;768:47;;;802:1;795:8;;;;768:47;827:9;843:1;839;:5;;;;:::i;:::-;827:17;;872:1;867;863;:5;;;;:::i;:::-;:10;855:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;931:1;924:8;;;690:250;;;;;:::o;946:132::-;1004:7;1031:39;1035:1;1038;1031:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1024:46;;946:132;;;;:::o;17154:330::-;17247:4;17284:53;17306:6;17284:53;;;;;;;;;;;;;;;;;:9;:17;17294:6;17284:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17264:9;:17;17274:6;17264:17;;;;;;;;;;;;;;;:73;;;;17371:32;17396:6;17371:9;:20;17381:9;17371:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17348:9;:20;17358:9;17348:20;;;;;;;;;;;;;;;:55;;;;17436:9;17419:35;;17428:6;17419:35;;;17447:6;17419:35;;;;;;:::i;:::-;;;;;;;;17472:4;17465:11;;17154:330;;;;;:::o;17492:166::-;17589:12;;17579:6;:22;;:49;;;;17605:15;:23;17621:6;17605:23;;;;;;;;;;;;;;;;;;;;;;;;;17579:49;17571:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17492:166;;:::o;18881:197::-;18930:4;18968;;;;;;;;;;;18954:18;;:10;:18;;;;:38;;;;;18986:6;;;;;;;;;;;18985:7;18954:38;:62;;;;;19005:11;;;;;;;;;;;18954:62;:116;;;;;19057:13;;19029:9;:24;19047:4;19029:24;;;;;;;;;;;;;;;;:41;;18954:116;18947:123;;18881:197;:::o;19086:1755::-;13584:4;13575:6;;:13;;;;;;;;;;;;;;;;;;19135:27:::1;19165:60;19181:15;;19198:26;;19165:15;:60::i;:::-;:79;;19232:12;;19165:79;;;19228:1;19165:79;19135:109;;19255:23;19281:59;19338:1;19281:52;19324:8;;19281:38;19299:19;19281:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;19255:85;;19351:20;19374:34;19392:15;19374:13;;:17;;:34;;;;:::i;:::-;19351:57;;19421:21;19459:1;19445:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19421:40;;19490:4;19472;19477:1;19472:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19516:4;;;;;;;;;;;19506;19511:1;19506:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;19533:21;19557;19533:45;;19591:6;;;;;;;;;;;:57;;;19663:12;19690:1;19706:4;19733;19753:15;19591:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19790:17;19810:40;19836:13;19810:21;:25;;:40;;;;:::i;:::-;19790:60;;19861:19;19883:40;19896:26;19920:1;19896:19;:23;;:26;;;;:::i;:::-;19883:8;;:12;;:40;;;;:::i;:::-;19861:62;;19934:26;19963:58;20019:1;19963:51;20002:11;19963:34;19977:19;19963:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;19934:87;;20032:27;20062:45;20095:11;20062:28;20076:13;;20062:9;:13;;:28;;;;:::i;:::-;:32;;:45;;;;:::i;:::-;20032:75;;20118:26;20147:44;20179:11;20147:27;20161:12;;20147:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;20118:73;;20208:11;;;;;;;;;;;:19;;;20235;20208:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;20204:65;;;;;;20280:12;20329:20;;;;;;;;;;;20321:34;;20363:18;20388:5;20321:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20279:119;;;20417:7;20409:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;20493:1;20475:15;:19;20472:362;;;20510:6;;;;;;;;;;;:22;;;20540:18;20586:4;20610:15;20644:1;20664::::0;20684:21:::1;;;;;;;;;;;20724:15;20510:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20774:48;20786:18;20806:15;20774:48;;;;;;;:::i;:::-;;;;;;;;20472:362;19124:1717;;;;;;;;;;;13602:5:::0;13593:6;;:14;;;;;;;;;;;;;;;;;;19086:1755::o;20849:298::-;20901:4;20939;;;;;;;;;;;20925:18;;:10;:18;;;;:42;;;;;20961:6;;;;;;;;;;;20960:7;20925:42;:77;;;;;20984:18;;;;;;;;;;;20925:77;:155;;;;;21068:12;21042:22;;21019:20;;:45;;;;:::i;:::-;:61;;20925:155;:214;;;;;21122:17;;21097:21;:42;;20925:214;20918:221;;20849:298;:::o;21598:479::-;21648:34;21658:17;;21677:4;;;;;;;;;;;21648:9;:34::i;:::-;21696:21;;;;;;;;;;;21693:166;;;21764:15;21733:28;:46;;;;21799:48;21823:23;;21799:48;;;;;;:::i;:::-;;;;;;;;21693:166;21892:12;21869:20;:35;;;;21940:45;21967:17;;21940:22;;:26;;:45;;;;:::i;:::-;21915:22;:70;;;;22024:14;;21999:22;;:39;21996:74;;;22062:5;22041:18;;:26;;;;;;;;;;;;;;;;;;21996:74;21598:479::o;23257:90::-;23300:4;23338:1;23324:10;;:15;;23317:22;;23257:90;:::o;23355:71::-;23406:12;23393:10;:25;;;;23355:71::o;17666:114::-;17728:4;17753:11;:19;17765:6;17753:19;;;;;;;;;;;;;;;;;;;;;;;;;17752:20;17745:27;;17666:114;;;:::o;18501:372::-;18586:7;18606:17;18626:61;18672:14;;18626:41;18637:29;18661:4;;;;;;;;;;;18649:16;;:8;:16;;;18637:11;:29::i;:::-;18626:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;18606:81;;18727:39;18756:9;18727;:24;18745:4;18727:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18700:9;:24;18718:4;18700:24;;;;;;;;;;;;;;;:66;;;;18807:4;18782:42;;18791:6;18782:42;;;18814:9;18782:42;;;;;;:::i;:::-;;;;;;;;18844:21;18855:9;18844:6;:10;;:21;;;;:::i;:::-;18837:28;;;18501:372;;;;;:::o;1084:345::-;1170:7;1269:1;1265;:5;1272:12;1257:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1296:9;1312:1;1308;:5;;;;:::i;:::-;1296:17;;1420:1;1413:8;;;1084:345;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;362:84;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;504:87;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;660:80;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:2;;;860:79;;:::i;:::-;822:2;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;812:263;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:2;;;1203:79;;:::i;:::-;1165:2;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1155:271;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1563:79;;:::i;:::-;1525:2;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1515:391;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:2;;;2060:79;;:::i;:::-;2022:2;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;2012:519;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:2;;;2665:79;;:::i;:::-;2627:2;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2617:388;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:2;;;3142:79;;:::i;:::-;3104:2;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3094:391;;;;;:::o;3491:323::-;3547:6;3596:2;3584:9;3575:7;3571:23;3567:32;3564:2;;;3602:79;;:::i;:::-;3564:2;3722:1;3747:50;3789:7;3780:6;3769:9;3765:22;3747:50;:::i;:::-;3737:60;;3693:114;3554:260;;;;:::o;3820:468::-;3885:6;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:2;;;3948:79;;:::i;:::-;3910:2;4068:1;4093:50;4135:7;4126:6;4115:9;4111:22;4093:50;:::i;:::-;4083:60;;4039:114;4192:2;4218:53;4263:7;4254:6;4243:9;4239:22;4218:53;:::i;:::-;4208:63;;4163:118;3900:388;;;;;:::o;4294:899::-;4383:6;4391;4399;4407;4415;4464:3;4452:9;4443:7;4439:23;4435:33;4432:2;;;4471:79;;:::i;:::-;4432:2;4591:1;4616:50;4658:7;4649:6;4638:9;4634:22;4616:50;:::i;:::-;4606:60;;4562:114;4715:2;4741:53;4786:7;4777:6;4766:9;4762:22;4741:53;:::i;:::-;4731:63;;4686:118;4843:2;4869:53;4914:7;4905:6;4894:9;4890:22;4869:53;:::i;:::-;4859:63;;4814:118;4971:2;4997:53;5042:7;5033:6;5022:9;5018:22;4997:53;:::i;:::-;4987:63;;4942:118;5099:3;5126:50;5168:7;5159:6;5148:9;5144:22;5126:50;:::i;:::-;5116:60;;5070:116;4422:771;;;;;;;;:::o;5199:329::-;5258:6;5307:2;5295:9;5286:7;5282:23;5278:32;5275:2;;;5313:79;;:::i;:::-;5275:2;5433:1;5458:53;5503:7;5494:6;5483:9;5479:22;5458:53;:::i;:::-;5448:63;;5404:117;5265:263;;;;:::o;5534:351::-;5604:6;5653:2;5641:9;5632:7;5628:23;5624:32;5621:2;;;5659:79;;:::i;:::-;5621:2;5779:1;5804:64;5860:7;5851:6;5840:9;5836:22;5804:64;:::i;:::-;5794:74;;5750:128;5611:274;;;;:::o;5891:468::-;5956:6;5964;6013:2;6001:9;5992:7;5988:23;5984:32;5981:2;;;6019:79;;:::i;:::-;5981:2;6139:1;6164:53;6209:7;6200:6;6189:9;6185:22;6164:53;:::i;:::-;6154:63;;6110:117;6266:2;6292:50;6334:7;6325:6;6314:9;6310:22;6292:50;:::i;:::-;6282:60;;6237:115;5971:388;;;;;:::o;6365:474::-;6433:6;6441;6490:2;6478:9;6469:7;6465:23;6461:32;6458:2;;;6496:79;;:::i;:::-;6458:2;6616:1;6641:53;6686:7;6677:6;6666:9;6662:22;6641:53;:::i;:::-;6631:63;;6587:117;6743:2;6769:53;6814:7;6805:6;6794:9;6790:22;6769:53;:::i;:::-;6759:63;;6714:118;6448:391;;;;;:::o;6845:619::-;6922:6;6930;6938;6987:2;6975:9;6966:7;6962:23;6958:32;6955:2;;;6993:79;;:::i;:::-;6955:2;7113:1;7138:53;7183:7;7174:6;7163:9;7159:22;7138:53;:::i;:::-;7128:63;;7084:117;7240:2;7266:53;7311:7;7302:6;7291:9;7287:22;7266:53;:::i;:::-;7256:63;;7211:118;7368:2;7394:53;7439:7;7430:6;7419:9;7415:22;7394:53;:::i;:::-;7384:63;;7339:118;6945:519;;;;;:::o;7470:663::-;7558:6;7566;7574;7623:2;7611:9;7602:7;7598:23;7594:32;7591:2;;;7629:79;;:::i;:::-;7591:2;7749:1;7774:64;7830:7;7821:6;7810:9;7806:22;7774:64;:::i;:::-;7764:74;;7720:128;7887:2;7913:64;7969:7;7960:6;7949:9;7945:22;7913:64;:::i;:::-;7903:74;;7858:129;8026:2;8052:64;8108:7;8099:6;8088:9;8084:22;8052:64;:::i;:::-;8042:74;;7997:129;7581:552;;;;;:::o;8139:911::-;8234:6;8242;8250;8258;8266;8315:3;8303:9;8294:7;8290:23;8286:33;8283:2;;;8322:79;;:::i;:::-;8283:2;8442:1;8467:53;8512:7;8503:6;8492:9;8488:22;8467:53;:::i;:::-;8457:63;;8413:117;8569:2;8595:53;8640:7;8631:6;8620:9;8616:22;8595:53;:::i;:::-;8585:63;;8540:118;8697:2;8723:53;8768:7;8759:6;8748:9;8744:22;8723:53;:::i;:::-;8713:63;;8668:118;8825:2;8851:53;8896:7;8887:6;8876:9;8872:22;8851:53;:::i;:::-;8841:63;;8796:118;8953:3;8980:53;9025:7;9016:6;9005:9;9001:22;8980:53;:::i;:::-;8970:63;;8924:119;8273:777;;;;;;;;:::o;9056:179::-;9125:10;9146:46;9188:3;9180:6;9146:46;:::i;:::-;9224:4;9219:3;9215:14;9201:28;;9136:99;;;;:::o;9241:147::-;9336:45;9375:5;9336:45;:::i;:::-;9331:3;9324:58;9314:74;;:::o;9394:108::-;9471:24;9489:5;9471:24;:::i;:::-;9466:3;9459:37;9449:53;;:::o;9508:118::-;9595:24;9613:5;9595:24;:::i;:::-;9590:3;9583:37;9573:53;;:::o;9662:732::-;9781:3;9810:54;9858:5;9810:54;:::i;:::-;9880:86;9959:6;9954:3;9880:86;:::i;:::-;9873:93;;9990:56;10040:5;9990:56;:::i;:::-;10069:7;10100:1;10085:284;10110:6;10107:1;10104:13;10085:284;;;10186:6;10180:13;10213:63;10272:3;10257:13;10213:63;:::i;:::-;10206:70;;10299:60;10352:6;10299:60;:::i;:::-;10289:70;;10145:224;10132:1;10129;10125:9;10120:14;;10085:284;;;10089:14;10385:3;10378:10;;9786:608;;;;;;;:::o;10400:109::-;10481:21;10496:5;10481:21;:::i;:::-;10476:3;10469:34;10459:50;;:::o;10515:167::-;10620:55;10669:5;10620:55;:::i;:::-;10615:3;10608:68;10598:84;;:::o;10688:147::-;10783:45;10822:5;10783:45;:::i;:::-;10778:3;10771:58;10761:74;;:::o;10841:364::-;10929:3;10957:39;10990:5;10957:39;:::i;:::-;11012:71;11076:6;11071:3;11012:71;:::i;:::-;11005:78;;11092:52;11137:6;11132:3;11125:4;11118:5;11114:16;11092:52;:::i;:::-;11169:29;11191:6;11169:29;:::i;:::-;11164:3;11160:39;11153:46;;10933:272;;;;;:::o;11211:366::-;11353:3;11374:67;11438:2;11433:3;11374:67;:::i;:::-;11367:74;;11450:93;11539:3;11450:93;:::i;:::-;11568:2;11563:3;11559:12;11552:19;;11357:220;;;:::o;11583:366::-;11725:3;11746:67;11810:2;11805:3;11746:67;:::i;:::-;11739:74;;11822:93;11911:3;11822:93;:::i;:::-;11940:2;11935:3;11931:12;11924:19;;11729:220;;;:::o;11955:366::-;12097:3;12118:67;12182:2;12177:3;12118:67;:::i;:::-;12111:74;;12194:93;12283:3;12194:93;:::i;:::-;12312:2;12307:3;12303:12;12296:19;;12101:220;;;:::o;12327:366::-;12469:3;12490:67;12554:2;12549:3;12490:67;:::i;:::-;12483:74;;12566:93;12655:3;12566:93;:::i;:::-;12684:2;12679:3;12675:12;12668:19;;12473:220;;;:::o;12699:365::-;12841:3;12862:66;12926:1;12921:3;12862:66;:::i;:::-;12855:73;;12937:93;13026:3;12937:93;:::i;:::-;13055:2;13050:3;13046:12;13039:19;;12845:219;;;:::o;13070:398::-;13229:3;13250:83;13331:1;13326:3;13250:83;:::i;:::-;13243:90;;13342:93;13431:3;13342:93;:::i;:::-;13460:1;13455:3;13451:11;13444:18;;13233:235;;;:::o;13474:366::-;13616:3;13637:67;13701:2;13696:3;13637:67;:::i;:::-;13630:74;;13713:93;13802:3;13713:93;:::i;:::-;13831:2;13826:3;13822:12;13815:19;;13620:220;;;:::o;13846:118::-;13933:24;13951:5;13933:24;:::i;:::-;13928:3;13921:37;13911:53;;:::o;13970:112::-;14053:22;14069:5;14053:22;:::i;:::-;14048:3;14041:35;14031:51;;:::o;14088:379::-;14272:3;14294:147;14437:3;14294:147;:::i;:::-;14287:154;;14458:3;14451:10;;14276:191;;;:::o;14473:222::-;14566:4;14604:2;14593:9;14589:18;14581:26;;14617:71;14685:1;14674:9;14670:17;14661:6;14617:71;:::i;:::-;14571:124;;;;:::o;14701:238::-;14802:4;14840:2;14829:9;14825:18;14817:26;;14853:79;14929:1;14918:9;14914:17;14905:6;14853:79;:::i;:::-;14807:132;;;;:::o;14945:348::-;15074:4;15112:2;15101:9;15097:18;15089:26;;15125:71;15193:1;15182:9;15178:17;15169:6;15125:71;:::i;:::-;15206:80;15282:2;15271:9;15267:18;15258:6;15206:80;:::i;:::-;15079:214;;;;;:::o;15299:332::-;15420:4;15458:2;15447:9;15443:18;15435:26;;15471:71;15539:1;15528:9;15524:17;15515:6;15471:71;:::i;:::-;15552:72;15620:2;15609:9;15605:18;15596:6;15552:72;:::i;:::-;15425:206;;;;;:::o;15637:807::-;15886:4;15924:3;15913:9;15909:19;15901:27;;15938:71;16006:1;15995:9;15991:17;15982:6;15938:71;:::i;:::-;16019:72;16087:2;16076:9;16072:18;16063:6;16019:72;:::i;:::-;16101:80;16177:2;16166:9;16162:18;16153:6;16101:80;:::i;:::-;16191;16267:2;16256:9;16252:18;16243:6;16191:80;:::i;:::-;16281:73;16349:3;16338:9;16334:19;16325:6;16281:73;:::i;:::-;16364;16432:3;16421:9;16417:19;16408:6;16364:73;:::i;:::-;15891:553;;;;;;;;;:::o;16450:210::-;16537:4;16575:2;16564:9;16560:18;16552:26;;16588:65;16650:1;16639:9;16635:17;16626:6;16588:65;:::i;:::-;16542:118;;;;:::o;16666:258::-;16777:4;16815:2;16804:9;16800:18;16792:26;;16828:89;16914:1;16903:9;16899:17;16890:6;16828:89;:::i;:::-;16782:142;;;;:::o;16930:720::-;17165:4;17203:3;17192:9;17188:19;17180:27;;17217:79;17293:1;17282:9;17278:17;17269:6;17217:79;:::i;:::-;17343:9;17337:4;17333:20;17328:2;17317:9;17313:18;17306:48;17371:108;17474:4;17465:6;17371:108;:::i;:::-;17363:116;;17489:72;17557:2;17546:9;17542:18;17533:6;17489:72;:::i;:::-;17571;17639:2;17628:9;17624:18;17615:6;17571:72;:::i;:::-;17170:480;;;;;;;:::o;17656:313::-;17769:4;17807:2;17796:9;17792:18;17784:26;;17856:9;17850:4;17846:20;17842:1;17831:9;17827:17;17820:47;17884:78;17957:4;17948:6;17884:78;:::i;:::-;17876:86;;17774:195;;;;:::o;17975:419::-;18141:4;18179:2;18168:9;18164:18;18156:26;;18228:9;18222:4;18218:20;18214:1;18203:9;18199:17;18192:47;18256:131;18382:4;18256:131;:::i;:::-;18248:139;;18146:248;;;:::o;18400:419::-;18566:4;18604:2;18593:9;18589:18;18581:26;;18653:9;18647:4;18643:20;18639:1;18628:9;18624:17;18617:47;18681:131;18807:4;18681:131;:::i;:::-;18673:139;;18571:248;;;:::o;18825:419::-;18991:4;19029:2;19018:9;19014:18;19006:26;;19078:9;19072:4;19068:20;19064:1;19053:9;19049:17;19042:47;19106:131;19232:4;19106:131;:::i;:::-;19098:139;;18996:248;;;:::o;19250:419::-;19416:4;19454:2;19443:9;19439:18;19431:26;;19503:9;19497:4;19493:20;19489:1;19478:9;19474:17;19467:47;19531:131;19657:4;19531:131;:::i;:::-;19523:139;;19421:248;;;:::o;19675:419::-;19841:4;19879:2;19868:9;19864:18;19856:26;;19928:9;19922:4;19918:20;19914:1;19903:9;19899:17;19892:47;19956:131;20082:4;19956:131;:::i;:::-;19948:139;;19846:248;;;:::o;20100:419::-;20266:4;20304:2;20293:9;20289:18;20281:26;;20353:9;20347:4;20343:20;20339:1;20328:9;20324:17;20317:47;20381:131;20507:4;20381:131;:::i;:::-;20373:139;;20271:248;;;:::o;20525:222::-;20618:4;20656:2;20645:9;20641:18;20633:26;;20669:71;20737:1;20726:9;20722:17;20713:6;20669:71;:::i;:::-;20623:124;;;;:::o;20753:831::-;21016:4;21054:3;21043:9;21039:19;21031:27;;21068:71;21136:1;21125:9;21121:17;21112:6;21068:71;:::i;:::-;21149:80;21225:2;21214:9;21210:18;21201:6;21149:80;:::i;:::-;21276:9;21270:4;21266:20;21261:2;21250:9;21246:18;21239:48;21304:108;21407:4;21398:6;21304:108;:::i;:::-;21296:116;;21422:72;21490:2;21479:9;21475:18;21466:6;21422:72;:::i;:::-;21504:73;21572:3;21561:9;21557:19;21548:6;21504:73;:::i;:::-;21021:563;;;;;;;;:::o;21590:332::-;21711:4;21749:2;21738:9;21734:18;21726:26;;21762:71;21830:1;21819:9;21815:17;21806:6;21762:71;:::i;:::-;21843:72;21911:2;21900:9;21896:18;21887:6;21843:72;:::i;:::-;21716:206;;;;;:::o;21928:214::-;22017:4;22055:2;22044:9;22040:18;22032:26;;22068:67;22132:1;22121:9;22117:17;22108:6;22068:67;:::i;:::-;22022:120;;;;:::o;22229:132::-;22296:4;22319:3;22311:11;;22349:4;22344:3;22340:14;22332:22;;22301:60;;;:::o;22367:114::-;22434:6;22468:5;22462:12;22452:22;;22441:40;;;:::o;22487:99::-;22539:6;22573:5;22567:12;22557:22;;22546:40;;;:::o;22592:113::-;22662:4;22694;22689:3;22685:14;22677:22;;22667:38;;;:::o;22711:184::-;22810:11;22844:6;22839:3;22832:19;22884:4;22879:3;22875:14;22860:29;;22822:73;;;;:::o;22901:147::-;23002:11;23039:3;23024:18;;23014:34;;;;:::o;23054:169::-;23138:11;23172:6;23167:3;23160:19;23212:4;23207:3;23203:14;23188:29;;23150:73;;;;:::o;23229:305::-;23269:3;23288:20;23306:1;23288:20;:::i;:::-;23283:25;;23322:20;23340:1;23322:20;:::i;:::-;23317:25;;23476:1;23408:66;23404:74;23401:1;23398:81;23395:2;;;23482:18;;:::i;:::-;23395:2;23526:1;23523;23519:9;23512:16;;23273:261;;;;:::o;23540:185::-;23580:1;23597:20;23615:1;23597:20;:::i;:::-;23592:25;;23631:20;23649:1;23631:20;:::i;:::-;23626:25;;23670:1;23660:2;;23675:18;;:::i;:::-;23660:2;23717:1;23714;23710:9;23705:14;;23582:143;;;;:::o;23731:348::-;23771:7;23794:20;23812:1;23794:20;:::i;:::-;23789:25;;23828:20;23846:1;23828:20;:::i;:::-;23823:25;;24016:1;23948:66;23944:74;23941:1;23938:81;23933:1;23926:9;23919:17;23915:105;23912:2;;;24023:18;;:::i;:::-;23912:2;24071:1;24068;24064:9;24053:20;;23779:300;;;;:::o;24085:191::-;24125:4;24145:20;24163:1;24145:20;:::i;:::-;24140:25;;24179:20;24197:1;24179:20;:::i;:::-;24174:25;;24218:1;24215;24212:8;24209:2;;;24223:18;;:::i;:::-;24209:2;24268:1;24265;24261:9;24253:17;;24130:146;;;;:::o;24282:96::-;24319:7;24348:24;24366:5;24348:24;:::i;:::-;24337:35;;24327:51;;;:::o;24384:104::-;24429:7;24458:24;24476:5;24458:24;:::i;:::-;24447:35;;24437:51;;;:::o;24494:90::-;24528:7;24571:5;24564:13;24557:21;24546:32;;24536:48;;;:::o;24590:126::-;24627:7;24667:42;24660:5;24656:54;24645:65;;24635:81;;;:::o;24722:77::-;24759:7;24788:5;24777:16;;24767:32;;;:::o;24805:86::-;24840:7;24880:4;24873:5;24869:16;24858:27;;24848:43;;;:::o;24897:134::-;24955:9;24988:37;25019:5;24988:37;:::i;:::-;24975:50;;24965:66;;;:::o;25037:162::-;25105:9;25138:55;25187:5;25138:55;:::i;:::-;25125:68;;25115:84;;;:::o;25205:131::-;25273:9;25306:24;25324:5;25306:24;:::i;:::-;25293:37;;25283:53;;;:::o;25342:121::-;25400:9;25433:24;25451:5;25433:24;:::i;:::-;25420:37;;25410:53;;;:::o;25469:126::-;25519:9;25552:37;25583:5;25552:37;:::i;:::-;25539:50;;25529:66;;;:::o;25601:113::-;25651:9;25684:24;25702:5;25684:24;:::i;:::-;25671:37;;25661:53;;;:::o;25720:307::-;25788:1;25798:113;25812:6;25809:1;25806:13;25798:113;;;25897:1;25892:3;25888:11;25882:18;25878:1;25873:3;25869:11;25862:39;25834:2;25831:1;25827:10;25822:15;;25798:113;;;25929:6;25926:1;25923:13;25920:2;;;26009:1;26000:6;25995:3;25991:16;25984:27;25920:2;25769:258;;;;:::o;26033:180::-;26081:77;26078:1;26071:88;26178:4;26175:1;26168:15;26202:4;26199:1;26192:15;26219:180;26267:77;26264:1;26257:88;26364:4;26361:1;26354:15;26388:4;26385:1;26378:15;26405:180;26453:77;26450:1;26443:88;26550:4;26547:1;26540:15;26574:4;26571:1;26564:15;26591:180;26639:77;26636:1;26629:88;26736:4;26733:1;26726:15;26760:4;26757:1;26750:15;26900:117;27009:1;27006;26999:12;27023:102;27064:6;27115:2;27111:7;27106:2;27099:5;27095:14;27091:28;27081:38;;27071:54;;;:::o;27131:167::-;27271:19;27267:1;27259:6;27255:14;27248:43;27237:61;:::o;27304:177::-;27444:29;27440:1;27432:6;27428:14;27421:53;27410:71;:::o;27487:180::-;27627:32;27623:1;27615:6;27611:14;27604:56;27593:74;:::o;27673:220::-;27813:34;27809:1;27801:6;27797:14;27790:58;27882:3;27877:2;27869:6;27865:15;27858:28;27779:114;:::o;27899:156::-;28039:8;28035:1;28027:6;28023:14;28016:32;28005:50;:::o;28061:114::-;28167:8;:::o;28181:161::-;28321:13;28317:1;28309:6;28305:14;28298:37;28287:55;:::o;28348:122::-;28421:24;28439:5;28421:24;:::i;:::-;28414:5;28411:35;28401:2;;28460:1;28457;28450:12;28401:2;28391:79;:::o;28476:138::-;28557:32;28583:5;28557:32;:::i;:::-;28550:5;28547:43;28537:2;;28604:1;28601;28594:12;28537:2;28527:87;:::o;28620:116::-;28690:21;28705:5;28690:21;:::i;:::-;28683:5;28680:32;28670:2;;28726:1;28723;28716:12;28670:2;28660:76;:::o;28742:122::-;28815:24;28833:5;28815:24;:::i;:::-;28808:5;28805:35;28795:2;;28854:1;28851;28844:12;28795:2;28785:79;:::o

Swarm Source

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