Contract 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4e72a8539c4b3439fbef279d3d3191477a48fa283df3218a098ed5e47a409888Approve132311002021-12-06 1:34:4220 hrs 6 mins ago0x1e42942577f7f297fe3570e92e0226ee159b8308 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x4bc0875bfffa23d210db784cd1d6b480b22acd7d6d5bc83ebdeabf82aebae05dApprove131898772021-12-04 14:39:342 days 7 hrs ago0xd6acae32c8d6553d0601024c6753cfa5074214f6 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.0000770848
0x31aa6d384a444ec607b21aebdd09bdee62e554c699a7062cded3811b5cb0ee30Approve130666452021-11-30 3:43:586 days 17 hrs ago0x35477aaa395651e9068b2aeeb808c6db0c8d0b98 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x45b28278a5827ee188d1f6217225f5e31c0444e08950cf89e51fbb3d959b033dApprove130622572021-11-29 23:41:086 days 21 hrs ago0x3af4e52010cf3e1f487a8d4b4f6059b3793e6ce4 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0xcf4727937558d22ed6d0a0b8b0d2e67a2a7310cd05a349b191126ef1d92e6d2aApprove130350622021-11-28 22:46:357 days 22 hrs ago0x901c8906f04c302cd7cbd44dcebe3ceb7da022c7 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x8c0f1bc4c39054ba1a40032a9cf0a4352deab5f587c5666cecc3e3fb5a9d4beeApprove129512882021-11-25 18:39:0211 days 3 hrs ago0x71a6e7397c9050d892c107b1bfd7aae914552579 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00007412
0x62fe55c2ebbb1f12ed09b0c97e4ebd51b1706b52222da530f33f3b6a5f01e95cApprove129340712021-11-25 3:06:4811 days 18 hrs ago0x016fe2c18b2428f787ea66e72970a875dbc4fa35 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x2ef434c83c4bcf8eca20a6fef3f5dbf9539872fe1f896904c030e5141e4067f4Approve129143682021-11-24 9:50:4812 days 11 hrs ago0x7a1547b4c8dc6e5703c580b54f4e0c5e809bab9c IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x56d5a0b390f9600f932d65c29bd3b74840378ea2f1760a4606399a6d06a9b6edApprove129006422021-11-23 21:58:3012 days 23 hrs ago0x61a60b9f95142f3507a2b4b7975d3f535e2e760f IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x55bdb4f87498f28a897c53531a5258c7927a26831a37f81e4c1af7a594fe1925Approve129001492021-11-23 21:33:0813 days 7 mins ago0xed10f305dab08c8e9f84e92cb813a758e291644d IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00007412
0x56a419aee5f1cf87f893b7a883535fa4c98e329df0708fb9d48912c7d43fee16Approve128757602021-11-23 0:18:2813 days 21 hrs ago0x4c5cbc2a845543a6de823099763c4be9e6ba5aed IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x90ecd52dd66808193216b1dac6e0a7bb6787533eda08885c89d993166b70f40aApprove127861352021-11-19 19:16:2617 days 2 hrs ago0x14fbbadcc2089808b40860792d74b0e8d9579fef IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x521e343a6b788567569d1881436f6127164dbd9ec80f3134ae57c5a8f0922e72Approve127561112021-11-18 17:15:1718 days 4 hrs ago0x56616f846171f94aa6fe7af2b94f49bc6ca03782 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00007412
0xd50acf529b976371c93f021aa0c88c4476572a1bd811a0b4bc2ffb099f65ddf9Approve127539702021-11-18 15:19:5218 days 6 hrs ago0x3e59be9baa87bd7635ae076f553cdbe2962b87ba IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0xc76469a92d36d7c9a797862a94a3ddefbb23f90e9089fc349b713085d80241f7Approve127495072021-11-18 11:24:1018 days 10 hrs ago0x75494c784b2d92363fb334d7513064741cefd9e0 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x6cd9336244e8b0bf2de582e413e74b26965d7d95ef621d34a2a22d7b6e7d6cd7Approve127391242021-11-18 2:26:5318 days 19 hrs ago0x2b248e4d619a86fe189171bda02d68d735fded3f IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0xf565b98daa328b32e5f0d66b1b02c86590bdc93cc78893993abaefc5bf3df2e9Approve126704092021-11-15 13:30:4521 days 8 hrs ago0x980f1c602eda0aac72baf25477505d33b48ebdbe IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x54fde7b7956f29b5829dfe6648ec79f14b8e99dae356865cf0b4162f0fafed46Approve126278182021-11-14 0:29:3722 days 21 hrs ago0x09e66873a286644cee93cdb7f7eaa20913fd757e IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x41b4d3e64024d2ed48467a98fef0dfb2405e8b5a03ac9b92fd2798c80bfb3268Approve Max126254142021-11-13 22:29:0422 days 23 hrs ago0x2566276f64a618e5a13f59011609a7274ab1c69f IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022208
0x84bf7091a771ae0626344c0b2151aeafbe7f56d4fd33a3b405ae35febe5f35feAuthorize126253742021-11-13 22:27:0422 days 23 hrs ago0x2566276f64a618e5a13f59011609a7274ab1c69f IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00021912
0x1dc29c35ac353f29c95e5da0245fc5bd68cb91d762a89ad66f3aecd6b2297fcaApprove126144392021-11-13 12:59:0323 days 8 hrs ago0xae48b1ee9c96da0074aff87e8a4cde0014b67940 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0x2f92e442b94049af2c039923a621b4fad64c03beb228251c4b1c6afafd1dadf7Approve125980492021-11-12 23:05:3123 days 22 hrs ago0x87d4f787ed48eae5418341d28a73ae571e99fca2 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00007412
0xeb5464b4d4ea7e6c6469916b2a62b9124c7c5f3ba8da604451a3d95521d33017Approve125744972021-11-12 2:41:5924 days 18 hrs ago0xc3a0d43167ffd54ef991801adce5c26b0788fede IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
0xe6e16a37667e5cfe7777d6071d6f8a0312a28f448fd55cdbebf6612492ed7162Transfer125743742021-11-12 2:35:4524 days 19 hrs ago0x8f2624ee28bfb4e8e8e135892976e09a1ea73dc6 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00185601
0x3028eca19ed56cb6b1af8c68e782cebf02d6095e3d4ad0aa7d6c68297dfc85b5Approve125468282021-11-11 2:50:3225 days 18 hrs ago0x3a9b5cef1a942f353e465c1f394a55739e42f1b6 IN  0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0 BNB0.00022516
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb3d0dd25370135eab601d4e995adde27f901d51dc18589ed3d3baa040ed4199b124892802021-11-09 1:30:5027 days 20 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.169907206549003816 BNB
0xb3d0dd25370135eab601d4e995adde27f901d51dc18589ed3d3baa040ed4199b124892802021-11-09 1:30:5027 days 20 hrs ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.169907206549003816 BNB
0xc408f0ad0937cba10b1cba329831d9497a32fd12d74cc38e07dd91baf9235e86119528812021-10-21 2:19:4146 days 19 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.201950226842186089 BNB
0xc408f0ad0937cba10b1cba329831d9497a32fd12d74cc38e07dd91baf9235e86119528812021-10-21 2:19:4146 days 19 hrs ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.201950226842186089 BNB
0xf911d2c07f79294876f4bb6f7611f00fae716de01a573cec292aa0d1cc52e87d118699172021-10-18 4:18:1249 days 17 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.243406840177765642 BNB
0xf911d2c07f79294876f4bb6f7611f00fae716de01a573cec292aa0d1cc52e87d118699172021-10-18 4:18:1249 days 17 hrs ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.243406840177765642 BNB
0x991aaf0b7c0d4ed2bda9aad052ccd8ee6579d9b6616a6d2e10a0ab8df8a9f046118548792021-10-17 15:41:2950 days 5 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.251627182803652943 BNB
0x991aaf0b7c0d4ed2bda9aad052ccd8ee6579d9b6616a6d2e10a0ab8df8a9f046118548792021-10-17 15:41:2950 days 5 hrs ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.251627182803652943 BNB
0xd93c006cb284708dbd3951f1da38da49893dc774efc141d289d4edfd21a78562118412562021-10-17 4:16:0250 days 17 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.588961616450528473 BNB
0x269e9fae9672123eb8eab0c979db1adf206ad437ba34c0e3026a839bbe8ffd9e118368952021-10-17 0:37:5950 days 21 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.085490667898382858 BNB
0x269e9fae9672123eb8eab0c979db1adf206ad437ba34c0e3026a839bbe8ffd9e118368952021-10-17 0:37:5950 days 21 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.170981335796765716 BNB
0x269e9fae9672123eb8eab0c979db1adf206ad437ba34c0e3026a839bbe8ffd9e118368952021-10-17 0:37:5950 days 21 hrs ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.256472003695148575 BNB
0x6fd3c5ada9697a6f02734c4b3a56c8fa7f52e1ec32578c5e112ffc9499fdd835118340512021-10-16 22:15:3550 days 23 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.094901658134360134 BNB
0x6fd3c5ada9697a6f02734c4b3a56c8fa7f52e1ec32578c5e112ffc9499fdd835118340512021-10-16 22:15:3550 days 23 hrs ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.189803316268720269 BNB
0x6fd3c5ada9697a6f02734c4b3a56c8fa7f52e1ec32578c5e112ffc9499fdd835118340512021-10-16 22:15:3550 days 23 hrs ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.284704974403080404 BNB
0xc296a9e00d68254221aa8d1b55c929703bc6aaa720af457444ced5b6d9572bb5118331242021-10-16 21:29:1451 days 11 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.112274891472155496 BNB
0xc296a9e00d68254221aa8d1b55c929703bc6aaa720af457444ced5b6d9572bb5118331242021-10-16 21:29:1451 days 11 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.224549782944310992 BNB
0xc296a9e00d68254221aa8d1b55c929703bc6aaa720af457444ced5b6d9572bb5118331242021-10-16 21:29:1451 days 11 mins ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.336824674416466489 BNB
0x6f6afde43b559eb27215f5f3635975c275056d2859a9bd8d94e2bef5c0986595118326782021-10-16 21:06:5651 days 33 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.119494752496633247 BNB
0x6f6afde43b559eb27215f5f3635975c275056d2859a9bd8d94e2bef5c0986595118326782021-10-16 21:06:5651 days 33 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.238989504993266494 BNB
0x6f6afde43b559eb27215f5f3635975c275056d2859a9bd8d94e2bef5c0986595118326782021-10-16 21:06:5651 days 33 mins ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.358484257489899742 BNB
0x25937d3aa4239e8299f58b93691682ca014f124be5a6f800820306392e39f570118326572021-10-16 21:05:5351 days 34 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.123846443877001246 BNB
0x25937d3aa4239e8299f58b93691682ca014f124be5a6f800820306392e39f570118326572021-10-16 21:05:5351 days 34 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a 0x0f1540e467874d01e2891f1aebff7072872d87830.247692887754002492 BNB
0x25937d3aa4239e8299f58b93691682ca014f124be5a6f800820306392e39f570118326572021-10-16 21:05:5351 days 34 mins ago PancakeSwap: Router v2 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0.371539331631003739 BNB
0xbc714ddca47d123b65cb70851e198cc2dca658759af3fea7fe26db4d8d25d5a6118326532021-10-16 21:05:4151 days 35 mins ago 0x1bef425ecc7f04e2d53c5f2497df40d00ece636a0x2566276f64a618e5a13f59011609a7274ab1c69f0.128575768036694313 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MaxTether

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT

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 REWARD = IBEP20(0x55d398326f99059fF775485246999027B3197955);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

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

    mapping (address => Share) public shares;

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

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

    uint256 currentIndex;

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

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

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

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

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

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

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

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

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

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

        uint256 amount = REWARD.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);
            REWARD.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 MaxTether is IBEP20, Auth {
    using SafeMath for uint256;

    address REWARD = 0x55d398326f99059fF775485246999027B3197955;
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Max Tether";
    string constant _symbol = "MaxTether";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply / 100; // 10000000000 1%
    uint256 public _maxWalletToken = _totalSupply / 40; // 25000000000 2.5%

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

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

    uint256 liquidityFee = 0;
    uint256 buybackFee = 0;
    uint256 reflectionFee = 1000;
    uint256 marketingFee = 500;
    uint256 totalFee = 1500;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

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

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

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 400; // = 2500000000 0.25%
    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 = 0x2566276F64a618e5a13f59011609A7274Ab1c69f;
        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 / 100);
        _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":[],"name":"_maxWalletToken","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"}]

60806040527355d398326f99059ff775485246999027b3197955600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000143919062000adc565b64174876e80062000155919062000c19565b600655606460065462000169919062000a49565b60075560286006546200017d919062000a49565b6008556000600e556000600f556103e86010556101f46011556105dc6012556127106013556019601655606460175560c8601b556064601c55610708601e556000601f60006101000a81548160ff0219169083151502179055506001601f60016101000a81548160ff0219169083151502179055506207a1206026556001602760006101000a81548160ff02191690831515021790555061019060065462000226919062000a49565b6028553480156200023657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550507310ed43c718714eb63d5aa57b78b54704e256024e601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038e57600080fd5b505afa158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c991906200098e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000427929190620009ff565b602060405180830381600087803b1580156200044257600080fd5b505af115801562000457573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047d91906200098e565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005b19062000969565b620005bd9190620009e2565b604051809103906000f080158015620005da573d6000803e3d6000fd5b50602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000732566276f64a618e5a13f59011609a7274ab1c69f90506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200095a919062000a2c565b60405180910390a35062000d4f565b6120a5806200553a83390190565b600081519050620009888162000d35565b92915050565b600060208284031215620009a757620009a662000d23565b5b6000620009b78482850162000977565b91505092915050565b620009cb8162000c7a565b82525050565b620009dc8162000cae565b82525050565b6000602082019050620009f96000830184620009c0565b92915050565b600060408201905062000a166000830185620009c0565b62000a256020830184620009c0565b9392505050565b600060208201905062000a436000830184620009d1565b92915050565b600062000a568262000cae565b915062000a638362000cae565b92508262000a765762000a7562000cf4565b5b828204905092915050565b6000808291508390505b600185111562000ad35780860481111562000aab5762000aaa62000cc5565b5b600185161562000abb5780820291505b808102905062000acb8562000d28565b945062000a8b565b94509492505050565b600062000ae98262000cae565b915062000af68362000cb8565b925062000b257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b2d565b905092915050565b60008262000b3f576001905062000c12565b8162000b4f576000905062000c12565b816001811462000b68576002811462000b735762000ba9565b600191505062000c12565b60ff84111562000b885762000b8762000cc5565b5b8360020a91508482111562000ba25762000ba162000cc5565b5b5062000c12565b5060208310610133831016604e8410600b841016171562000be35782820a90508381111562000bdd5762000bdc62000cc5565b5b62000c12565b62000bf2848484600162000a81565b9250905081840481111562000c0c5762000c0b62000cc5565b5b81810290505b9392505050565b600062000c268262000cae565b915062000c338362000cae565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c6f5762000c6e62000cc5565b5b828202905092915050565b600062000c878262000c8e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000d408162000c7a565b811462000d4c57600080fd5b50565b6147db8062000d5f6000396000f3fe6080604052600436106102b25760003560e01c8063893d20e811610175578063dd62ed3e116100dc578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610abb578063f84ba65d14610ae4578063f887ea4014610b0d578063fe9fbb8014610b38576102b9565b8063f1f3bca314610a3e578063f2fde38b14610a7b578063f429389014610aa4576102b9565b8063dd62ed3e14610942578063df20fd491461097f578063e1dcc71f146109a8578063e96fada2146109d3578063f0b37c04146109fe578063f0fc6bca14610a27576102b9565b8063b210b06d1161012e578063b210b06d14610844578063b6a5d7de1461085b578063bf56b37114610884578063ca33e64c146108af578063d51ed1c8146108da578063d806d12f14610917576102b9565b8063893d20e81461073457806395d89b411461075f5780639d1944f51461078a578063a4b45c00146107b3578063a8aa1b31146107dc578063a9059cbb14610807576102b9565b80632f54bf6e11610219578063658d4b7f116101d2578063658d4b7f146106245780636ddd17131461064d57806370a082311461067857806378109e54146106b55780637d1db4a5146106e057806382334b941461070b576102b9565b80632f54bf6e146105025780632f5620d11461053f578063313ce567146105685780633bb8a8d414610593578063571ac8b0146105be5780635c85974f146105fb576102b9565b8063201e79911161026b578063201e7991146103e25780632375ce401461040b57806323b872dd1461043457806328fd3198146104715780632b112e49146104ae5780632d48e896146104d9576102b9565b80630445b667146102be57806304a66b48146102e957806306fdde0314610312578063095ea7b31461033d5780631161ae391461037a57806318160ddd146103b7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b75565b6040516102e09190614224565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b9190613d2b565b610b7b565b005b34801561031e57600080fd5b50610327610c2a565b6040516103349190614142565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f9190613a83565b610c67565b60405161037191906140c0565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190613c45565b610d59565b6040516103ae91906140c0565b60405180910390f35b3480156103c357600080fd5b506103cc610d6e565b6040516103d99190614224565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c45565b610d78565b005b34801561041757600080fd5b50610432600480360381019061042d9190613c85565b610dd2565b005b34801561044057600080fd5b5061045b600480360381019061045691906139f0565b610e58565b60405161046891906140c0565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190613956565b611058565b6040516104a59190614224565b60405180910390f35b3480156104ba57600080fd5b506104c361110c565b6040516104d09190614224565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190613c45565b61118e565b005b34801561050e57600080fd5b5061052960048036038101906105249190613956565b611269565b60405161053691906140c0565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190613b30565b6112c2565b005b34801561057457600080fd5b5061057d611369565b60405161058a91906142c2565b60405180910390f35b34801561059f57600080fd5b506105a8611372565b6040516105b591906140c0565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613956565b611385565b6040516105f291906140c0565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d9190613bab565b6113b8565b005b34801561063057600080fd5b5061064b60048036038101906106469190613a43565b611425565b005b34801561065957600080fd5b506106626114c8565b60405161066f91906140c0565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190613956565b6114db565b6040516106ac9190614224565b60405180910390f35b3480156106c157600080fd5b506106ca611524565b6040516106d79190614224565b60405180910390f35b3480156106ec57600080fd5b506106f561152a565b6040516107029190614224565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190613c05565b611530565b005b34801561074057600080fd5b506107496115ef565b6040516107569190613fd7565b60405180910390f35b34801561076b57600080fd5b50610774611618565b6040516107819190614142565b60405180910390f35b34801561079657600080fd5b506107b160048036038101906107ac9190613bab565b611655565b005b3480156107bf57600080fd5b506107da60048036038101906107d591906139b0565b6116b6565b005b3480156107e857600080fd5b506107f1611784565b6040516107fe9190613fd7565b60405180910390f35b34801561081357600080fd5b5061082e60048036038101906108299190613a83565b6117aa565b60405161083b91906140c0565b60405180910390f35b34801561085057600080fd5b506108596117bf565b005b34801561086757600080fd5b50610882600480360381019061087d9190613956565b611811565b005b34801561089057600080fd5b506108996118b3565b6040516108a69190614224565b60405180910390f35b3480156108bb57600080fd5b506108c46118b9565b6040516108d19190613fd7565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc9190613bab565b6118df565b60405161090e9190614224565b60405180910390f35b34801561092357600080fd5b5061092c611951565b6040516109399190614224565b60405180910390f35b34801561094e57600080fd5b50610969600480360381019061096491906139b0565b611a04565b6040516109769190614224565b60405180910390f35b34801561098b57600080fd5b506109a660048036038101906109a19190613af0565b611a8b565b005b3480156109b457600080fd5b506109bd611af8565b6040516109ca91906140c0565b60405180910390f35b3480156109df57600080fd5b506109e8611b0b565b6040516109f59190613fd7565b60405180910390f35b348015610a0a57600080fd5b50610a256004803603810190610a209190613956565b611b31565b005b348015610a3357600080fd5b50610a3c611bd4565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190613ac3565b611c63565b604051610a729190614224565b60405180910390f35b348015610a8757600080fd5b50610aa26004803603810190610a9d9190613983565b611cd8565b005b348015610ab057600080fd5b50610ab9611df1565b005b348015610ac757600080fd5b50610ae26004803603810190610add9190613a43565b611eaa565b005b348015610af057600080fd5b50610b0b6004803603810190610b069190613a43565b61214a565b005b348015610b1957600080fd5b50610b226121ed565b604051610b2f91906140db565b60405180910390f35b348015610b4457600080fd5b50610b5f6004803603810190610b5a9190613956565b612213565b604051610b6c91906140c0565b60405180910390f35b60285481565b610b8433612213565b610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba90614204565b60405180910390fd5b84600e8190555083600f819055508260108190555081601181905550610c1682610c0885610bfa888a61226990919063ffffffff16565b61226990919063ffffffff16565b61226990919063ffffffff16565b601281905550806013819055505050505050565b60606040518060400160405280600a81526020017f4d61782054657468657200000000000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d479190614224565b60405180910390a36001905092915050565b600082610d65836118df565b11905092915050565b6000600654905090565b610d8133612213565b610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db790614204565b60405180910390fd5b81601681905550806017819055505050565b610ddb33612213565b610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190614204565b60405180910390fd5b60028284610e289190614393565b11158015610e3557508183115b610e3e57600080fd5b82601b8190555081601c8190555080601e81905550505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461104457610fc3826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c79092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61104f84848461232b565b90509392505050565b6000602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016110b59190613fd7565b60206040518083038186803b1580156110cd57600080fd5b505afa1580156110e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111059190613bd8565b9050919050565b600061118961113c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114db565b61117b61116a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114db565b60065461291490919063ffffffff16565b61291490919063ffffffff16565b905090565b61119733612213565b6111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90614204565b60405180910390fd5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611233929190614299565b600060405180830381600087803b15801561124d57600080fd5b505af1158015611261573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6112cb33612213565b61130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190614204565b60405180910390fd5b84601f60006101000a81548160ff02191690831515021790555083602081905550600060218190555082602281905550816023819055504360248190555080601f60016101000a81548160ff0219169083151502179055505050505050565b60006009905090565b601f60009054906101000a900460ff1681565b60006113b1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c67565b9050919050565b6113c133612213565b611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790614204565b60405180910390fd5b606460065461140f9190614393565b81101561141b57600080fd5b8060078190555050565b61142e33612213565b61146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490614204565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602760009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60075481565b61153933612213565b611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f90614204565b60405180910390fd5b6115a482600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661295e565b80156115eb5742601d819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601e546040516115e29190614224565b60405180910390a15b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f4d61785465746865720000000000000000000000000000000000000000000000815250905090565b61165e33612213565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490614204565b60405180910390fd5b620b71b081106116ac57600080fd5b8060268190555050565b6116bf33612213565b6116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590614204565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117b733848461232b565b905092915050565b6117c833612213565b611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90614204565b60405180910390fd5b6000601d81905550565b61181a33611269565b611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906141e4565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601a5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061194a6118ec61110c565b61193c61192d600261191f601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114db565b612b3c90919063ffffffff16565b85612b3c90919063ffffffff16565b612bb790919063ffffffff16565b9050919050565b60008061197d4261196f601e54601d5461226990919063ffffffff16565b61291490919063ffffffff16565b905060006119c06012546119b2601c546119a4601b54601254612b3c90919063ffffffff16565b612bb790919063ffffffff16565b61291490919063ffffffff16565b90506119fd6119ec601e546119de8585612b3c90919063ffffffff16565b612bb790919063ffffffff16565b60125461226990919063ffffffff16565b9250505090565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9433612213565b611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca90614204565b60405180910390fd5b81602760006101000a81548160ff021916908315150217905550806028819055505050565b601f60019054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b3a33611269565b611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b70906141e4565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401611c2f9190613fd7565b600060405180830381600087803b158015611c4957600080fd5b505af1158015611c5d573d6000803e3d6000fd5b50505050565b6000436001601a54611c75919061433d565b10611c9757611c90600160135461291490919063ffffffff16565b9050611cd3565b818015611cb9575042611cb7601e54601d5461226990919063ffffffff16565b115b15611ccd57611cc6611951565b9050611cd3565b60125490505b919050565b611ce133611269565b611d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d17906141e4565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611de69190613ff2565b60405180910390a150565b611dfa33612213565b611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3090614204565b60405180910390fd5b6000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ea6573d6000803e3d6000fd5b5050565b611eb333612213565b611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990614204565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f7c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f8557600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561207757602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161204092919061400d565b600060405180830381600087803b15801561205a57600080fd5b505af115801561206e573d6000803e3d6000fd5b50505050612146565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612113929190614036565b600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b505050505b5050565b61215333612213565b612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218990614204565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000808284612278919061433d565b9050838110156122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b490614184565b60405180910390fd5b8091505092915050565b600083831115829061230f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123069190614142565b60405180910390fd5b506000838561231e919061441e565b9050809150509392505050565b6000602960009054906101000a900460ff16156123545761234d848484612c01565b905061290d565b61235e8483612dd4565b612366612e71565b1561237457612373612f48565b5b61237c6134fd565b1561238a576123896135b0565b5b612392613682565b1580156123ec5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612446576000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161243d57600080fd5b61244561368f565b5b6124cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c79092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061251d85613698565b6125275782612533565b6125328585856136ef565b5b905061258781600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226990919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166126ed57602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016126b7929190614036565b600060405180830381600087803b1580156126d157600080fd5b505af19250505080156126e2575060015b6126eb576126ec565b5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661281057602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016127da929190614036565b600060405180830381600087803b1580156127f457600080fd5b505af1925050508015612805575060015b61280e5761280f565b5b5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796026546040518263ffffffff1660e01b815260040161286d9190614224565b600060405180830381600087803b15801561288757600080fd5b505af1925050508015612898575060015b6128a1576128a2565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128ff9190614224565b60405180910390a360019150505b9392505050565b600061295683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122c7565b905092915050565b6001602960006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612996576129956145e5565b5b6040519080825280602002602001820160405280156129c45781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106129fe576129fd6145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612a4d57612a4c6145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b8152600401612aea94939291906140f6565b6000604051808303818588803b158015612b0357600080fd5b505af1158015612b17573d6000803e3d6000fd5b5050505050506000602960006101000a81548160ff0219169083151502179055505050565b600080831415612b4f5760009050612bb1565b60008284612b5d91906143c4565b9050828482612b6c9190614393565b14612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba3906141c4565b60405180910390fd5b809150505b92915050565b6000612bf983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061388a565b905092915050565b6000612c8c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c79092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2182600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226990919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612dc19190614224565b60405180910390a3600190509392505050565b60075481111580612e2e5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6490614164565b60405180910390fd5b5050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612ede5750602960009054906101000a900460ff16155b8015612ef65750602760009054906101000a900460ff165b8015612f435750602854600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602960006101000a81548160ff0219169083151502179055506000612f73601654601754610d59565b612f7f57600e54612f82565b60005b90506000612fc26002612fb4601254612fa686602854612b3c90919063ffffffff16565b612bb790919063ffffffff16565b612bb790919063ffffffff16565b90506000612fdb8260285461291490919063ffffffff16565b90506000600267ffffffffffffffff811115612ffa57612ff96145e5565b5b6040519080825280602002602001820160405280156130285781602001602082028036833780820191505090505b50905030816000815181106130405761303f6145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106130b1576130b06145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161315495949392919061423f565b600060405180830381600087803b15801561316e57600080fd5b505af1158015613182573d6000803e3d6000fd5b50505050600061319b824761291490919063ffffffff16565b905060006131c76131b6600289612bb790919063ffffffff16565b60125461291490919063ffffffff16565b9050600061320360026131f5846131e78c88612b3c90919063ffffffff16565b612bb790919063ffffffff16565b612bb790919063ffffffff16565b9050600061322e8361322060105487612b3c90919063ffffffff16565b612bb790919063ffffffff16565b905060006132598461324b60115488612b3c90919063ffffffff16565b612bb790919063ffffffff16565b9050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156132c557600080fd5b505af1935050505080156132d7575060015b6132e0576132e1565b5b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161332d90613fc2565b600060405180830381858888f193505050503d806000811461336b576040519150601f19603f3d011682016040523d82523d6000602084013e613370565b606091505b50509050806133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab906141a4565b60405180910390fd5b60008a11156134d557601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016134469695949392919061405f565b6060604051808303818588803b15801561345f57600080fd5b505af1158015613473573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906134989190613cd8565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b6040516134cc929190614299565b60405180910390a15b50505050505050505050506000602960006101000a81548160ff021916908315150217905550565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561356a5750602960009054906101000a900460ff16155b80156135825750601f60009054906101000a900460ff165b801561359d57504360235460245461359a919061433d565b11155b80156135ab57506022544710155b905090565b6135de602254600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661295e565b601f60019054906101000a900460ff16156136345742601d819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601e5460405161362b9190614224565b60405180910390a15b4360248190555061365260225460215461226990919063ffffffff16565b6021819055506020546021541115613680576000601f60006101000a81548160ff0219169083151502179055505b565b600080601a541415905090565b43601a81905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080613771601354613763613754601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611c63565b86612b3c90919063ffffffff16565b612bb790919063ffffffff16565b90506137c581600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226990919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138659190614224565b60405180910390a3613880818461291490919063ffffffff16565b9150509392505050565b600080831182906138d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138c89190614142565b60405180910390fd5b50600083856138e09190614393565b9050809150509392505050565b6000813590506138fc81614749565b92915050565b60008135905061391181614760565b92915050565b60008135905061392681614777565b92915050565b60008135905061393b8161478e565b92915050565b6000815190506139508161478e565b92915050565b60006020828403121561396c5761396b614614565b5b600061397a848285016138ed565b91505092915050565b60006020828403121561399957613998614614565b5b60006139a784828501613902565b91505092915050565b600080604083850312156139c7576139c6614614565b5b60006139d5858286016138ed565b92505060206139e6858286016138ed565b9150509250929050565b600080600060608486031215613a0957613a08614614565b5b6000613a17868287016138ed565b9350506020613a28868287016138ed565b9250506040613a398682870161392c565b9150509250925092565b60008060408385031215613a5a57613a59614614565b5b6000613a68858286016138ed565b9250506020613a7985828601613917565b9150509250929050565b60008060408385031215613a9a57613a99614614565b5b6000613aa8858286016138ed565b9250506020613ab98582860161392c565b9150509250929050565b600060208284031215613ad957613ad8614614565b5b6000613ae784828501613917565b91505092915050565b60008060408385031215613b0757613b06614614565b5b6000613b1585828601613917565b9250506020613b268582860161392c565b9150509250929050565b600080600080600060a08688031215613b4c57613b4b614614565b5b6000613b5a88828901613917565b9550506020613b6b8882890161392c565b9450506040613b7c8882890161392c565b9350506060613b8d8882890161392c565b9250506080613b9e88828901613917565b9150509295509295909350565b600060208284031215613bc157613bc0614614565b5b6000613bcf8482850161392c565b91505092915050565b600060208284031215613bee57613bed614614565b5b6000613bfc84828501613941565b91505092915050565b60008060408385031215613c1c57613c1b614614565b5b6000613c2a8582860161392c565b9250506020613c3b85828601613917565b9150509250929050565b60008060408385031215613c5c57613c5b614614565b5b6000613c6a8582860161392c565b9250506020613c7b8582860161392c565b9150509250929050565b600080600060608486031215613c9e57613c9d614614565b5b6000613cac8682870161392c565b9350506020613cbd8682870161392c565b9250506040613cce8682870161392c565b9150509250925092565b600080600060608486031215613cf157613cf0614614565b5b6000613cff86828701613941565b9350506020613d1086828701613941565b9250506040613d2186828701613941565b9150509250925092565b600080600080600060a08688031215613d4757613d46614614565b5b6000613d558882890161392c565b9550506020613d668882890161392c565b9450506040613d778882890161392c565b9350506060613d888882890161392c565b9250506080613d998882890161392c565b9150509295509295909350565b6000613db28383613dcd565b60208301905092915050565b613dc7816144b9565b82525050565b613dd681614452565b82525050565b613de581614452565b82525050565b6000613df6826142ed565b613e008185614310565b9350613e0b836142dd565b8060005b83811015613e3c578151613e238882613da6565b9750613e2e83614303565b925050600181019050613e0f565b5085935050505092915050565b613e5281614476565b82525050565b613e61816144cb565b82525050565b613e70816144ef565b82525050565b6000613e81826142f8565b613e8b818561432c565b9350613e9b818560208601614525565b613ea481614619565b840191505092915050565b6000613ebc60118361432c565b9150613ec78261462a565b602082019050919050565b6000613edf601b8361432c565b9150613eea82614653565b602082019050919050565b6000613f02601e8361432c565b9150613f0d8261467c565b602082019050919050565b6000613f2560218361432c565b9150613f30826146a5565b604082019050919050565b6000613f4860068361432c565b9150613f53826146f4565b602082019050919050565b6000613f6b600083614321565b9150613f768261471d565b600082019050919050565b6000613f8e600b8361432c565b9150613f9982614720565b602082019050919050565b613fad816144a2565b82525050565b613fbc816144ac565b82525050565b6000613fcd82613f5e565b9150819050919050565b6000602082019050613fec6000830184613ddc565b92915050565b60006020820190506140076000830184613dbe565b92915050565b60006040820190506140226000830185613ddc565b61402f6020830184613e67565b9392505050565b600060408201905061404b6000830185613ddc565b6140586020830184613fa4565b9392505050565b600060c0820190506140746000830189613ddc565b6140816020830188613fa4565b61408e6040830187613e67565b61409b6060830186613e67565b6140a86080830185613ddc565b6140b560a0830184613fa4565b979650505050505050565b60006020820190506140d56000830184613e49565b92915050565b60006020820190506140f06000830184613e58565b92915050565b600060808201905061410b6000830187613e67565b818103602083015261411d8186613deb565b905061412c6040830185613ddc565b6141396060830184613fa4565b95945050505050565b6000602082019050818103600083015261415c8184613e76565b905092915050565b6000602082019050818103600083015261417d81613eaf565b9050919050565b6000602082019050818103600083015261419d81613ed2565b9050919050565b600060208201905081810360008301526141bd81613ef5565b9050919050565b600060208201905081810360008301526141dd81613f18565b9050919050565b600060208201905081810360008301526141fd81613f3b565b9050919050565b6000602082019050818103600083015261421d81613f81565b9050919050565b60006020820190506142396000830184613fa4565b92915050565b600060a0820190506142546000830188613fa4565b6142616020830187613e67565b81810360408301526142738186613deb565b90506142826060830185613ddc565b61428f6080830184613fa4565b9695505050505050565b60006040820190506142ae6000830185613fa4565b6142bb6020830184613fa4565b9392505050565b60006020820190506142d76000830184613fb3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000614348826144a2565b9150614353836144a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561438857614387614558565b5b828201905092915050565b600061439e826144a2565b91506143a9836144a2565b9250826143b9576143b8614587565b5b828204905092915050565b60006143cf826144a2565b91506143da836144a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561441357614412614558565b5b828202905092915050565b6000614429826144a2565b9150614434836144a2565b92508282101561444757614446614558565b5b828203905092915050565b600061445d82614482565b9050919050565b600061446f82614482565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006144c482614501565b9050919050565b60006144d6826144dd565b9050919050565b60006144e882614482565b9050919050565b60006144fa826144a2565b9050919050565b600061450c82614513565b9050919050565b600061451e82614482565b9050919050565b60005b83811015614543578082015181840152602081019050614528565b83811115614552576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61475281614452565b811461475d57600080fd5b50565b61476981614464565b811461477457600080fd5b50565b61478081614476565b811461478b57600080fd5b50565b614797816144a2565b81146147a257600080fd5b5056fea2646970667358221220bdf38b0aa79519f390f9e3ae71ae787462470a65f8edb4f5ee24abf25a2bbc9364736f6c6343000805003360806040527355d398326f99059ff775485246999027b3197955600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e55348015620000e057600080fd5b50604051620020a5380380620020a58339818101604052810190620001069190620001f7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000157577310ed43c718714eb63d5aa57b78b54704e256024e62000159565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027c565b600081519050620001f18162000262565b92915050565b60006020828403121562000210576200020f6200025d565b5b60006200022084828501620001e0565b91505092915050565b600062000236826200023d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200026d8162000229565b81146200027957600080fd5b50565b611e19806200028c6000396000f3fe6080604052600436106100dd5760003560e01c8063997664d71161007f578063e2d2e21911610059578063e2d2e2191461028f578063efca2eed146102ba578063ffb2c479146102e5578063ffd49c841461030e576100dd565b8063997664d71461021b578063ce7c2ac214610246578063d0e30db014610285576100dd565b806328fd3198116100bb57806328fd31981461015f5780632d48e8961461019c5780633a98ef39146101c55780634fab0ae8146101f0576100dd565b806311ce023d146100e257806314b6ca961461010d57806315f7e05e14610136575b600080fd5b3480156100ee57600080fd5b506100f7610339565b6040516101049190611993565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611669565b61033f565b005b34801561014257600080fd5b5061015d6004803603810190610158919061163c565b6105fe565b005b34801561016b57600080fd5b506101866004803603810190610181919061163c565b610662565b6040516101939190611993565b60405180910390f35b3480156101a857600080fd5b506101c360048036038101906101be9190611730565b61077c565b005b3480156101d157600080fd5b506101da6107e6565b6040516101e79190611993565b60405180910390f35b3480156101fc57600080fd5b506102056107ec565b6040516102129190611993565b60405180910390f35b34801561022757600080fd5b506102306107f2565b60405161023d9190611993565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061163c565b6107f8565b60405161027c939291906119ae565b60405180910390f35b61028d610822565b005b34801561029b57600080fd5b506102a4610c12565b6040516102b19190611993565b60405180910390f35b3480156102c657600080fd5b506102cf610c18565b6040516102dc9190611993565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906116d6565b610c1e565b005b34801561031a57600080fd5b50610323610db2565b6040516103309190611993565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039757600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103ec576103eb82610db8565b5b60008111801561043e57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104515761044c8261105f565b6104b3565b6000811480156104a357506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104b2576104b18261110e565b5b5b61051c8161050e600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461131590919063ffffffff16565b61135f90919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105b4600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461065657600080fd5b61065f81610db8565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106b75760009050610777565b6000610704600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161075f57600092505050610777565b610772818361131590919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d457600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461087a57600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108d791906118a1565b60206040518083038186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190611703565b90506000600267ffffffffffffffff81111561094657610945611ce1565b5b6040519080825280602002602001820160405280156109745781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106109ae576109ad611cb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a1f57610a1e611cb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610abc94939291906118e5565b6000604051808303818588803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b50505050506000610bad83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b4f91906118a1565b60206040518083038186803b158015610b6757600080fd5b505afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190611703565b61131590919063ffffffff16565b9050610bc48160095461135f90919063ffffffff16565b600981905550610c07610bf6600854610be884600c546113ef90919063ffffffff16565b61146a90919063ffffffff16565b600b5461135f90919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c7657600080fd5b600060048054905090506000811415610c8f5750610daf565b6000805a905060005b8483108015610ca657508381105b15610daa5783600f5410610cbd576000600f819055505b610d066004600f5481548110610cd657610cd5611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114b4565b15610d5557610d546004600f5481548110610d2457610d23611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610db8565b5b610d7a610d6b5a8461131590919063ffffffff16565b8461135f90919063ffffffff16565b92505a9150600f6000815480929190610d9290611bdc565b91905055508080610da290611bdc565b915050610c98565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610e085761105c565b6000610e1382610662565b9050600081111561105a57610e3381600a5461135f90919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e969291906118bc565b602060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee891906116a9565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f8281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461135f90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611013600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546113bd565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506111229190611b1b565b8154811061113357611132611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106111b1576111b0611cb2565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506112519190611b1b565b8154811061126257611261611cb2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806112dd576112dc611c83565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061135783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611521565b905092915050565b600080828461136e9190611a3a565b9050838110156113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90611953565b60405180910390fd5b8091505092915050565b60006113e8600c546113da600b54856113ef90919063ffffffff16565b61146a90919063ffffffff16565b9050919050565b6000808314156114025760009050611464565b600082846114109190611ac1565b905082848261141f9190611a90565b1461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690611973565b60405180910390fd5b809150505b92915050565b60006114ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611585565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115049190611a3a565b10801561151a5750600e5461151883610662565b115b9050919050565b6000838311158290611569576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115609190611931565b60405180910390fd5b50600083856115789190611b1b565b9050809150509392505050565b600080831182906115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39190611931565b60405180910390fd5b50600083856115db9190611a90565b9050809150509392505050565b6000813590506115f781611d9e565b92915050565b60008151905061160c81611db5565b92915050565b60008135905061162181611dcc565b92915050565b60008151905061163681611dcc565b92915050565b60006020828403121561165257611651611d10565b5b6000611660848285016115e8565b91505092915050565b600080604083850312156116805761167f611d10565b5b600061168e858286016115e8565b925050602061169f85828601611612565b9150509250929050565b6000602082840312156116bf576116be611d10565b5b60006116cd848285016115fd565b91505092915050565b6000602082840312156116ec576116eb611d10565b5b60006116fa84828501611612565b91505092915050565b60006020828403121561171957611718611d10565b5b600061172784828501611627565b91505092915050565b6000806040838503121561174757611746611d10565b5b600061175585828601611612565b925050602061176685828601611612565b9150509250929050565b600061177c8383611788565b60208301905092915050565b61179181611b4f565b82525050565b6117a081611b4f565b82525050565b60006117b1826119f5565b6117bb8185611a18565b93506117c6836119e5565b8060005b838110156117f75781516117de8882611770565b97506117e983611a0b565b9250506001810190506117ca565b5085935050505092915050565b61180d81611b97565b82525050565b600061181e82611a00565b6118288185611a29565b9350611838818560208601611ba9565b61184181611d15565b840191505092915050565b6000611859601b83611a29565b915061186482611d26565b602082019050919050565b600061187c602183611a29565b915061188782611d4f565b604082019050919050565b61189b81611b8d565b82525050565b60006020820190506118b66000830184611797565b92915050565b60006040820190506118d16000830185611797565b6118de6020830184611892565b9392505050565b60006080820190506118fa6000830187611804565b818103602083015261190c81866117a6565b905061191b6040830185611797565b6119286060830184611892565b95945050505050565b6000602082019050818103600083015261194b8184611813565b905092915050565b6000602082019050818103600083015261196c8161184c565b9050919050565b6000602082019050818103600083015261198c8161186f565b9050919050565b60006020820190506119a86000830184611892565b92915050565b60006060820190506119c36000830186611892565b6119d06020830185611892565b6119dd6040830184611892565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611a4582611b8d565b9150611a5083611b8d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a8557611a84611c25565b5b828201905092915050565b6000611a9b82611b8d565b9150611aa683611b8d565b925082611ab657611ab5611c54565b5b828204905092915050565b6000611acc82611b8d565b9150611ad783611b8d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1057611b0f611c25565b5b828202905092915050565b6000611b2682611b8d565b9150611b3183611b8d565b925082821015611b4457611b43611c25565b5b828203905092915050565b6000611b5a82611b6d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611ba282611b8d565b9050919050565b60005b83811015611bc7578082015181840152602081019050611bac565b83811115611bd6576000848401525b50505050565b6000611be782611b8d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c1a57611c19611c25565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b611da781611b4f565b8114611db257600080fd5b50565b611dbe81611b61565b8114611dc957600080fd5b50565b611dd581611b8d565b8114611de057600080fd5b5056fea2646970667358221220ac0d4766cd0d514de2c0e454b6d4d5aa6376f14d3fe5440320e3373a586c4e6c64736f6c63430008050033

Deployed ByteCode Sourcemap

11593:15162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13558:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24315:449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14865:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15287:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26480:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14595:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25172:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23017:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15805:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25852:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26155:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25555:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3426:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22564:445;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14689:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13179:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15511:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23544:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24051:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13521:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15035:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12189:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12116:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21265:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14951:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14775:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26007:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24772:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12925:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15641:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21595:105;;;;;;;;;;;;;:::i;:::-;;3099:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12953:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12723:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26305:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18212:391;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15146:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25008:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13224:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12766:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3269:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25750:90;;;;;;;;;;;;;:::i;:::-;;17898:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3826:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25363:180;;;;;;;;;;;;;:::i;:::-;;23696:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24179:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12894:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3600:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13558:49;;;;:::o;24315:449::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24494:13:::1;24479:12;:28;;;;24531:11;24518:10;:24;;;;24569:14;24553:13;:30;;;;24609:13;24594:12;:28;;;;24644:69;24699:13;24644:50;24679:14;24644:30;24662:11;24644:13;:17;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;:54;;:69;;;;:::i;:::-;24633:8;:80;;;;24741:15;24724:14;:32;;;;24315:449:::0;;;;;:::o;14865:80::-;14913:13;14937:5;;;;;;;;;;;;;;;;;14930:12;;14865:80;:::o;15287:216::-;15362:4;15414:6;15379:11;:23;15391:10;15379:23;;;;;;;;;;;;;;;:32;15403:7;15379:32;;;;;;;;;;;;;;;:41;;;;15457:7;15436:37;;15445:10;15436:37;;;15466:6;15436:37;;;;;;:::i;:::-;;;;;;;;15491:4;15484:11;;15287:216;;;;:::o;26480:150::-;26560:4;26616:6;26584:29;26604:8;26584:19;:29::i;:::-;:38;26577:45;;26480:150;;;;:::o;14595:88::-;14650:7;14668:12;;14661:19;;14595:88;:::o;25172:183::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25288:7:::1;25270:15;:25;;;;25335:12;25306:26;:41;;;;25172:183:::0;;:::o;23017:342::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23177:1:::1;23162:11;23150:9;:23;;;;:::i;:::-;:28;;:55;;;;;23194:11;23182:9;:23;23150:55;23142:64;;;::::0;::::1;;23246:9;23217:26;:38;;;;23297:11;23266:28;:42;;;;23345:6;23319:23;:32;;;;23017:342:::0;;;:::o;15805:370::-;15905:4;15960:17;15925:11;:19;15937:6;15925:19;;;;;;;;;;;;;;;:31;15945:10;15925:31;;;;;;;;;;;;;;;;:52;15922:186;;16027:69;16063:6;16027:69;;;;;;;;;;;;;;;;;:11;:19;16039:6;16027:19;;;;;;;;;;;;;;;:31;16047:10;16027:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;15993:11;:19;16005:6;15993:19;;;;;;;;;;;;;;;:31;16013:10;15993:31;;;;;;;;;;;;;;;:103;;;;15922:186;16127:40;16141:6;16149:9;16160:6;16127:13;:40::i;:::-;16120:47;;15805:370;;;;;:::o;25852:146::-;25921:7;25948:11;;;;;;;;;;;:29;;;25978:11;25948:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25941:49;;25852:146;;;:::o;26155:142::-;26208:7;26235:54;26273:15;26283:4;;;;;;;;;;;26273:9;:15::i;:::-;26235:33;26252:15;26262:4;;;;;;;;;;;26252:9;:15::i;:::-;26235:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;26228:61;;26155:142;:::o;25555:183::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25665:11:::1;;;;;;;;;;;:35;;;25701:10;25713:16;25665:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25555:183:::0;;:::o;3426:103::-;3481:4;3516:5;;;;;;;;;;;3505:16;;:7;:16;;;3498:23;;3426:103;;;:::o;22564:445::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;22740:8:::1;22719:18;;:29;;;;;;;;;;;;;;;;;;22776:4;22759:14;:21;;;;22816:1;22791:22;:26;;;;22848:7;22828:17;:27;;;;22891:7;22866:22;:32;;;;22932:12;22909:20;:35;;;;22979:22;22955:21;;:46;;;;;;;;;;;;;;;;;;22564:445:::0;;;;;:::o;14689:80::-;14741:5;12044:1;14750:16;;14689:80;:::o;13179:38::-;;;;;;;;;;;;;:::o;15511:122::-;15566:4;15590:35;15598:7;15607:17;15590:7;:35::i;:::-;15583:42;;15511:122;;;:::o;23544:144::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23644:3:::1;23629:12;;:18;;;;:::i;:::-;23619:6;:28;;23611:37;;;::::0;::::1;;23674:6;23659:12;:21;;;;23544:144:::0;:::o;24051:120::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24157:6:::1;24135:11;:19;24147:6;24135:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;24051:120:::0;;:::o;13521:30::-;;;;;;;;;;;;;:::o;15035:105::-;15101:7;15119:9;:18;15129:7;15119:18;;;;;;;;;;;;;;;;15112:25;;15035:105;;;:::o;12189:50::-;;;;:::o;12116:48::-;;;;:::o;21265:318::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;21373:23:::1;21383:6;21391:4;;;;;;;;;;;21373:9;:23::i;:::-;21410:24;21407:169;;;21481:15;21450:28;:46;;;;21516:48;21540:23;;21516:48;;;;;;:::i;:::-;;;;;;;;21407:169;21265:318:::0;;:::o;14951:78::-;15003:7;15021:5;;;;;;;;;;;15014:12;;14951:78;:::o;14775:84::-;14825:13;14849:7;;;;;;;;;;;;;;;;;14842:14;;14775:84;:::o;26007:136::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;26097:6:::1;26091:3;:12;26083:21;;;::::0;::::1;;26132:3;26115:14;:20;;;;26007:136:::0;:::o;24772:228::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24915:22:::1;24891:21;;:46;;;;;;;;;;;;;;;;;;24971:21;24948:20;;:44;;;;;;;;;;;;;;;;;;24772:228:::0;;:::o;12925:19::-;;;;;;;;;;;;;:::o;15641:156::-;15721:4;15745:44;15759:10;15771:9;15782:6;15745:13;:44::i;:::-;15738:51;;15641:156;;;;:::o;21595:105::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;21691:1:::1;21660:28;:32;;;;21595:105::o:0;3099:94::-;2815:19;2823:10;2815:7;:19::i;:::-;2807:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3181:4:::1;3159:14:::0;:19:::1;3174:3;3159:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3099:94:::0;:::o;12953:25::-;;;;:::o;12723:36::-;;;;;;;;;;;;;:::o;26305:167::-;26373:7;26400:64;26441:22;:20;:22::i;:::-;26400:36;26413:22;26433:1;26413:15;26423:4;;;;;;;;;;;26413:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;26400:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;26393:71;;26305:167;;;:::o;18212:391::-;18261:7;18281:21;18305:78;18367:15;18305:57;18338:23;;18305:28;;:32;;:57;;;;:::i;:::-;:61;;:78;;;;:::i;:::-;18281:102;;18394:19;18416:88;18495:8;;18416:74;18461:28;;18416:40;18429:26;;18416:8;;:12;;:40;;;;:::i;:::-;:44;;:74;;;;:::i;:::-;:78;;:88;;;;:::i;:::-;18394:110;;18522:73;18535:59;18570:23;;18535:30;18551:13;18535:11;:15;;:30;;;;:::i;:::-;:34;;:59;;;;:::i;:::-;18522:8;;:12;;:73;;;;:::i;:::-;18515:80;;;;18212:391;:::o;15146:133::-;15230:7;15248:11;:19;15260:6;15248:19;;;;;;;;;;;;;;;:28;15268:7;15248:28;;;;;;;;;;;;;;;;15241:35;;15146:133;;;;:::o;25008:156::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25114:8:::1;25100:11;;:22;;;;;;;;;;;;;;;;;;25149:7;25133:13;:23;;;;25008:156:::0;;:::o;13224:40::-;;;;;;;;;;;;;:::o;12766:35::-;;;;;;;;;;;;;:::o;3269:97::-;2815:19;2823:10;2815:7;:19::i;:::-;2807:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3353:5:::1;3331:14;:19;3346:3;3331:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3269:97:::0;:::o;25750:90::-;25795:11;;;;;;;;;;;:25;;;25821:10;25795:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25750:90::o;17898:306::-;17954:7;17995:12;17990:1;17977:10;;:14;;;;:::i;:::-;:30;17974:67;;18017:21;18036:1;18017:14;;:18;;:21;;;;:::i;:::-;18010:28;;;;17974:67;18054:7;:86;;;;;18125:15;18065:57;18098:23;;18065:28;;:32;;:57;;;;:::i;:::-;:75;18054:86;18051:120;;;18150:18;:16;:18::i;:::-;18143:25;;;;18051:120;18188:8;;18181:15;;17898:306;;;;:::o;3826:173::-;2815:19;2823:10;2815:7;:19::i;:::-;2807:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3910:3:::1;3902:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3946:4;3924:14:::0;:19:::1;3939:3;3924:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3966:25;3987:3;3966:25;;;;;;:::i;:::-;;;;;;;;3826:173:::0;:::o;25363:180::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;25416:26:::1;25445:21;25416:50;;25485:20;;;;;;;;;;;25477:38;;:58;25516:18;25477:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25405:138;25363:180::o:0;23696:347::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;23811:4:::1;23793:23;;:6;:23;;;;:41;;;;;23830:4;;;;;;;;;;;23820:14;;:6;:14;;;;23793:41;23785:50;;;::::0;::::1;;23873:6;23846:16;:24;23863:6;23846:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;23893:6;23890:146;;;23915:11;;;;;;;;;;;:20;;;23936:6;23944:1;23915:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23890:146;;;23977:11;;;;;;;;;;;:20;;;23998:6;24006:9;:17;24016:6;24006:17;;;;;;;;;;;;;;;;23977:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23890:146;23696:347:::0;;:::o;24179:128::-;2984:24;2997:10;2984:12;:24::i;:::-;2976:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;24293:6:::1;24267:15;:23;24283:6;24267:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;24179:128:::0;;:::o;12894:24::-;;;;;;;;;;;;;:::o;3600:107::-;3656:4;3680:14;:19;3695:3;3680:19;;;;;;;;;;;;;;;;;;;;;;;;;3673:26;;3600:107;;;:::o;156:181::-;214:7;234:9;250:1;246;:5;;;;:::i;:::-;234:17;;275:1;270;:6;;262:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;328:1;321:8;;;156:181;;;;:::o;485:192::-;571:7;604:1;599;:6;;607:12;591:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;631:9;647:1;643;:5;;;;:::i;:::-;631:17;;668:1;661:8;;;485:192;;;;;:::o;16183:1060::-;16275:4;16295:6;;;;;;;;;;;16292:63;;;16311:41;16326:6;16334:9;16345:6;16311:14;:41::i;:::-;16304:48;;;;16292:63;16375:28;16388:6;16396;16375:12;:28::i;:::-;16419:16;:14;:16::i;:::-;16416:35;;;16438:10;:8;:10::i;:::-;16416:35;16464:19;:17;:19::i;:::-;16461:48;;;16486:20;:18;:20::i;:::-;16461:48;16525:10;:8;:10::i;:::-;16524:11;:32;;;;;16552:4;;;;;;;;;;;16539:17;;:9;:17;;;16524:32;16521:81;;;16587:1;16567:9;:17;16577:6;16567:17;;;;;;;;;;;;;;;;:21;16559:30;;;;;;16591:8;:6;:8::i;:::-;16521:81;16634:53;16656:6;16634:53;;;;;;;;;;;;;;;;;:9;:17;16644:6;16634:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16614:9;:17;16624:6;16614:17;;;;;;;;;;;;;;;:73;;;;16700:22;16725:21;16739:6;16725:13;:21::i;:::-;:67;;16786:6;16725:67;;;16749:34;16757:6;16765:9;16776:6;16749:7;:34::i;:::-;16725:67;16700:92;;16826:40;16851:14;16826:9;:20;16836:9;16826:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16803:9;:20;16813:9;16803:20;;;;;;;;;;;;;;;:63;;;;16883:16;:24;16900:6;16883:24;;;;;;;;;;;;;;;;;;;;;;;;;16879:96;;16914:11;;;;;;;;;;;:20;;;16935:6;16943:9;:17;16953:6;16943:17;;;;;;;;;;;;;;;;16914:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16910:63;;;;;;16879:96;16989:16;:27;17006:9;16989:27;;;;;;;;;;;;;;;;;;;;;;;;;16985:105;;17023:11;;;;;;;;;;;:20;;;17044:9;17055;:20;17065:9;17055:20;;;;;;;;;;;;;;;;17023:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17019:69;;;;;;16985:105;17106:11;;;;;;;;;;;:19;;;17126:14;;17106:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17102:51;;;;;;17187:9;17170:43;;17179:6;17170:43;;;17198:14;17170:43;;;;;;:::i;:::-;;;;;;;;17231:4;17224:11;;;16183:1060;;;;;;:::o;343:136::-;401:7;428:43;432:1;435;428:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;421:50;;343:136;;;;:::o;22195:361::-;13685:4;13676:6;;:13;;;;;;;;;;;;;;;;;;22271:21:::1;22309:1;22295:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22271:40;;22332:4;;;;;;;;;;;22322;22327:1;22322:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;22365:4;22347;22352:1;22347:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;22383:6;;;;;;;;;;;:57;;;22448:6;22470:1;22486:4;22505:2;22522:15;22383:165;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;22260:296;13703:5:::0;13694:6;;:14;;;;;;;;;;;;;;;;;;22195:361;;:::o;683:250::-;741:7;770:1;765;:6;761:47;;;795:1;788:8;;;;761:47;820:9;836:1;832;:5;;;;:::i;:::-;820:17;;865:1;860;856;:5;;;;:::i;:::-;:10;848:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;924:1;917:8;;;683:250;;;;;:::o;939:132::-;997:7;1024:39;1028:1;1031;1024:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1017:46;;939:132;;;;:::o;17255:330::-;17348:4;17385:53;17407:6;17385:53;;;;;;;;;;;;;;;;;:9;:17;17395:6;17385:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17365:9;:17;17375:6;17365:17;;;;;;;;;;;;;;;:73;;;;17472:32;17497:6;17472:9;:20;17482:9;17472:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17449:9;:20;17459:9;17449:20;;;;;;;;;;;;;;;:55;;;;17537:9;17520:35;;17529:6;17520:35;;;17548:6;17520:35;;;;;;:::i;:::-;;;;;;;;17573:4;17566:11;;17255:330;;;;;:::o;17593:175::-;17690:12;;17680:6;:22;;:49;;;;17706:15;:23;17722:6;17706:23;;;;;;;;;;;;;;;;;;;;;;;;;17680:49;17672:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17593:175;;:::o;18991:197::-;19040:4;19078;;;;;;;;;;;19064:18;;:10;:18;;;;:38;;;;;19096:6;;;;;;;;;;;19095:7;19064:38;:62;;;;;19115:11;;;;;;;;;;;19064:62;:116;;;;;19167:13;;19139:9;:24;19157:4;19139:24;;;;;;;;;;;;;;;;:41;;19064:116;19057:123;;18991:197;:::o;19196:1755::-;13685:4;13676:6;;:13;;;;;;;;;;;;;;;;;;19245:27:::1;19275:60;19291:15;;19308:26;;19275:15;:60::i;:::-;:79;;19342:12;;19275:79;;;19338:1;19275:79;19245:109;;19365:23;19391:59;19448:1;19391:52;19434:8;;19391:38;19409:19;19391:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;19365:85;;19461:20;19484:34;19502:15;19484:13;;:17;;:34;;;;:::i;:::-;19461:57;;19531:21;19569:1;19555:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19531:40;;19600:4;19582;19587:1;19582:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19626:4;;;;;;;;;;;19616;19621:1;19616:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;19643:21;19667;19643:45;;19701:6;;;;;;;;;;;:57;;;19773:12;19800:1;19816:4;19843;19863:15;19701:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19900:17;19920:40;19946:13;19920:21;:25;;:40;;;;:::i;:::-;19900:60;;19971:19;19993:40;20006:26;20030:1;20006:19;:23;;:26;;;;:::i;:::-;19993:8;;:12;;:40;;;;:::i;:::-;19971:62;;20044:26;20073:58;20129:1;20073:51;20112:11;20073:34;20087:19;20073:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;20044:87;;20142:27;20172:45;20205:11;20172:28;20186:13;;20172:9;:13;;:28;;;;:::i;:::-;:32;;:45;;;;:::i;:::-;20142:75;;20228:26;20257:44;20289:11;20257:27;20271:12;;20257:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;20228:73;;20318:11;;;;;;;;;;;:19;;;20345;20318:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;20314:65;;;;;;20390:12;20439:20;;;;;;;;;;;20431:34;;20473:18;20498:5;20431:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20389:119;;;20527:7;20519:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;20603:1;20585:15;:19;20582:362;;;20620:6;;;;;;;;;;;:22;;;20650:18;20696:4;20720:15;20754:1;20774::::0;20794:21:::1;;;;;;;;;;;20834:15;20620:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20884:48;20896:18;20916:15;20884:48;;;;;;;:::i;:::-;;;;;;;;20582:362;19234:1717;;;;;;;;;;;13703:5:::0;13694:6;;:14;;;;;;;;;;;;;;;;;;19196:1755::o;20959:298::-;21011:4;21049;;;;;;;;;;;21035:18;;:10;:18;;;;:42;;;;;21071:6;;;;;;;;;;;21070:7;21035:42;:77;;;;;21094:18;;;;;;;;;;;21035:77;:155;;;;;21178:12;21152:22;;21129:20;;:45;;;;:::i;:::-;:61;;21035:155;:214;;;;;21232:17;;21207:21;:42;;21035:214;21028:221;;20959:298;:::o;21708:479::-;21758:34;21768:17;;21787:4;;;;;;;;;;;21758:9;:34::i;:::-;21806:21;;;;;;;;;;;21803:166;;;21874:15;21843:28;:46;;;;21909:48;21933:23;;21909:48;;;;;;:::i;:::-;;;;;;;;21803:166;22002:12;21979:20;:35;;;;22050:45;22077:17;;22050:22;;:26;;:45;;;;:::i;:::-;22025:22;:70;;;;22134:14;;22109:22;;:39;22106:74;;;22172:5;22151:18;;:26;;;;;;;;;;;;;;;;;;22106:74;21708:479::o;23367:90::-;23410:4;23448:1;23434:10;;:15;;23427:22;;23367:90;:::o;23465:71::-;23516:12;23503:10;:25;;;;23465:71::o;17776:114::-;17838:4;17863:11;:19;17875:6;17863:19;;;;;;;;;;;;;;;;;;;;;;;;;17862:20;17855:27;;17776:114;;;:::o;18611:372::-;18696:7;18716:17;18736:61;18782:14;;18736:41;18747:29;18771:4;;;;;;;;;;;18759:16;;:8;:16;;;18747:11;:29::i;:::-;18736:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;18716:81;;18837:39;18866:9;18837;:24;18855:4;18837:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18810:9;:24;18828:4;18810:24;;;;;;;;;;;;;;;:66;;;;18917:4;18892:42;;18901:6;18892:42;;;18924:9;18892:42;;;;;;:::i;:::-;;;;;;;;18954:21;18965:9;18954:6;:10;;:21;;;;:::i;:::-;18947:28;;;18611:372;;;;;:::o;1077:345::-;1163:7;1262:1;1258;:5;1265:12;1250:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1289:9;1305:1;1301;:5;;;;:::i;:::-;1289:17;;1413:1;1406:8;;;1077: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://ac0d4766cd0d514de2c0e454b6d4d5aa6376f14d3fe5440320e3373a586c4e6c
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.