Contract 0xFF97F8a30F6b84fec3Ef17B1e93107b1dC6058ED

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7bd22aac3ac1965f6de0b25733e36e71cbad4d853c68a5302b3064f5b4b1ce75Approve130437862021-11-29 6:40:385 days 21 hrs ago0x65d9bc4ceb2dfa9a33123e90ab7cb6286caad7ec IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0xbd5b74fbc61024e0405de07b3f31f8c813691083a22208cb0ff51ccef370615aApprove123021642021-11-02 10:17:4732 days 17 hrs ago0xefdbde313636f0f62a01027f17c48ec5b41f7103 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000074445
0x6fba063c3f7ec99dc0e9ae0568e847a1f44a18422adc7fefdeb2528e2b813668Approve120743792021-10-25 9:11:3640 days 18 hrs ago0x1d6ddf84d1e3c07366aeb2f5b929d6f480f990db IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000104223
0xfa55321591571a56a688b6d44768662f1393a6757aebdccc6d58bb64f7537395Approve120084172021-10-23 1:38:5743 days 2 hrs ago0x48bcf637b986bd65dba916545871eea34e77baed IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000104223
0xc82dadf5feb4f5698ec6e8e4cbb0654070fdf18bf43831d44626f6102ed9fe7fApprove118543232021-10-17 15:13:0348 days 12 hrs ago0xdf754c6f7186aecf010e5cf03300d9eb78f137c2 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.0000759339
0x2b8f0a47b20ac9d10207271e55549a75d572b0e512467abd6e18830f1e9b81bcApprove118249402021-10-16 14:34:4849 days 13 hrs ago0xd9624af7a54190b1d45cb1a4159795613ed5d1a0 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0xfa9ed45d8806e91108babc47956d6b0f0453ea878438759844e9d74ceb113355Approve117277092021-10-13 4:53:1352 days 23 hrs ago0x166ab24ed3e9bd648caf05eae68c2a5e82b4824a IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000074445
0xa3962feb4b7c301cc75cca3a5ffbafa3a4800aabe252963f691977e5ff26650eApprove111040302021-09-21 9:24:5574 days 18 hrs ago0xbf4965e9af8da21a4f9a4f672bf74729b048ab50 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.0000759339
0xa8bcfc3027e8c8b741b1ebb1802bb1eb4a49dfb36182bc94891d25a05f87107cApprove107611132021-09-09 10:13:1186 days 17 hrs ago0xf59d4b858a68b7985b15c4b0fa3eaaf08e54aa51 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000074445
0xea763ed159f5ba2e58d254a1d56b5287b1bb7b4f595b55dde41b648febea7924Approve106309312021-09-04 20:41:1591 days 7 hrs ago0x17e9f6e51fc9334b5888e0e9a05d94605e15c657 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0x4c933179e3732e19ea02344a701dc5f5f6e9aaf3c316efe0ddd96394f80e273cApprove104807272021-08-30 13:57:0996 days 14 hrs ago0x4d2bede35c214a7df6f9e6393a91f17007e9f275 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000104223
0x81ac64ee79390d8eeda635e496b45a34081432c377c057939bac52ab098d63c0Approve104565432021-08-29 17:31:1397 days 10 hrs ago0xbdd74356980db0941fcd86189d42b3867d52a65f IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000270966
0x89a21b609282728bdbb9ce98cfb36fe1ace5783987a3c8730c4d3100f6e9bfc7Approve104372622021-08-29 1:24:4598 days 2 hrs ago0x8126367f09405fc8c14082c0f9225436a2c22b89 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000074445
0x01ecd6ab094e9a4ebe1950412061d82f80d8036a76d81aa310a1789dce095e6eApprove103112642021-08-24 15:01:10102 days 13 hrs ago0x02b8c8d1df05d9e19f3e89aa4ecefe3851794308 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.0000759339
0x92acef58c116c7b9924748af693137f80c5911bb9e9c16f5a499397244981cacApprove98342762021-08-07 20:40:45119 days 7 hrs ago0x07d80ae6f36a5e08dca74ce884a24d39db9934ed IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000154038
0x41a8c13d24d53bb53573b6b2e19eb1fbc9afd161322b093f3e43b03b9b3f6514Approve98342702021-08-07 20:40:27119 days 7 hrs ago0x07d80ae6f36a5e08dca74ce884a24d39db9934ed IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000269238
0x37f755865a507037d0ce5bcf8eded8b5dee7938ebd5f3e7bb23eb2c7b6a425b3Approve97067262021-08-03 6:39:42123 days 21 hrs ago0x8f7fbb748b3a8a03a1934b517657998923b3128f IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0x5237b2e4270952032270ba7830366b234ea114049cf181beded2ba95eb222925Approve96271262021-07-31 9:35:22126 days 18 hrs ago0x3d20b31ae06453b04c9fc176601e4d58b4b20b85 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000074445
0x0dff61f30c37757e0ead6498632103821c2db4f8434c95a952e299a08a2d27fdApprove94961752021-07-26 14:35:44131 days 13 hrs ago0xb2de267b33151d7712ed02e8dddf6ed9e20f655e IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0xb127c8bb9a8b846d4ea7cca9ee68f59d6905d770bc4b21b0e690978e946da34dApprove94771912021-07-25 22:25:19132 days 5 hrs ago0xa9ac709414f2eefbf6b91f5b677987f7bb147808 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000074445
0x3364aed4d3224bffc19d87463862d8e6f9377e2ed2b4991ae032e42b1b89e595Approve93905072021-07-22 21:36:26135 days 6 hrs ago0x5dc3d946ea259d82085005c0fce864607633e416 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0xae95cfdfa2c15b83992b8dd859ef0542432e8c57243d7032be5e5549ad9980a8Approve93494252021-07-21 11:21:34136 days 16 hrs ago0x8123dd77ee6e09f86bc67e7ea23e85e41de56c77 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0xf99b8a826d240d6fb83f9ddf3a8609511f077511447e4a2aed47f7c0fde208e5Approve92964232021-07-19 15:09:22138 days 12 hrs ago0x6f75810d4e90d9eac81640e29103cd0ba774d1ea IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225850161
0xa666c527df5791d1da6715555be66013ff6e9f1a76c740764ae34b145c2ccd04Approve91542532021-07-14 16:36:43143 days 11 hrs ago0x851a856e0732143b66aebc45e87841af7154c9d7 IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
0x84a794b1077fc751b436d838356a55fed65f3de6c6d823f49a483393974e9d38Approve91347482021-07-14 0:21:27144 days 3 hrs ago0x9ba3986f3f72fbbb359622c15926fbe84589e88c IN  0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0 BNB0.000225805
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd5e52cd5b16d8689e082a1fa0e1bf5e9b1926427e971cfde223bbef88856db96130437962021-11-29 6:41:085 days 21 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.00214605147546903 BNB
0xd5e52cd5b16d8689e082a1fa0e1bf5e9b1926427e971cfde223bbef88856db96130437962021-11-29 6:41:085 days 21 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.003985524168728196 BNB
0xd5e52cd5b16d8689e082a1fa0e1bf5e9b1926427e971cfde223bbef88856db96130437962021-11-29 6:41:085 days 21 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.006131575644197226 BNB
0xbe2eddad2a0878364604c463493fa2d6c5d07d4b6046af85d5679b49475a4f10110502132021-09-19 12:28:4576 days 15 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.002263640447716031 BNB
0xbe2eddad2a0878364604c463493fa2d6c5d07d4b6046af85d5679b49475a4f10110502132021-09-19 12:28:4576 days 15 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.004203903688615484 BNB
0xbe2eddad2a0878364604c463493fa2d6c5d07d4b6046af85d5679b49475a4f10110502132021-09-19 12:28:4576 days 15 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.006467544136331515 BNB
0xaca437d0284013795857c0c285929b39ccee1f22d137624a87eec0e3a6ede438106309722021-09-04 20:43:1891 days 7 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.003060585225655924 BNB
0xaca437d0284013795857c0c285929b39ccee1f22d137624a87eec0e3a6ede438106309722021-09-04 20:43:1891 days 7 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.005683943990503858 BNB
0xaca437d0284013795857c0c285929b39ccee1f22d137624a87eec0e3a6ede438106309722021-09-04 20:43:1891 days 7 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.008744529216159782 BNB
0xfe9fa234297354b5711ed4cc55894f0f7728aab16b408db80bd70fed8a5e18c2106309622021-09-04 20:42:4891 days 7 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.002579501525391455 BNB
0xfe9fa234297354b5711ed4cc55894f0f7728aab16b408db80bd70fed8a5e18c2106309622021-09-04 20:42:4891 days 7 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.004790502832869844 BNB
0xfe9fa234297354b5711ed4cc55894f0f7728aab16b408db80bd70fed8a5e18c2106309622021-09-04 20:42:4891 days 7 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.007370004358261299 BNB
0x7d5c91cd3a097b06b9ac652b758dd26ab29e33e5e8787229c861cb85e9c980ad98188442021-08-07 7:26:14119 days 20 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.002605899069677822 BNB
0x7d5c91cd3a097b06b9ac652b758dd26ab29e33e5e8787229c861cb85e9c980ad98188442021-08-07 7:26:14119 days 20 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.004839526843687383 BNB
0x7d5c91cd3a097b06b9ac652b758dd26ab29e33e5e8787229c861cb85e9c980ad98188442021-08-07 7:26:14119 days 20 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.007445425913365205 BNB
0x02539aad7559664b006c603e06076c16167ba71428c1e4b15bde2f5381a15dce95014762021-07-26 19:12:02131 days 8 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.002847980766938387 BNB
0x02539aad7559664b006c603e06076c16167ba71428c1e4b15bde2f5381a15dce95014762021-07-26 19:12:02131 days 8 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.005289107138599859 BNB
0x02539aad7559664b006c603e06076c16167ba71428c1e4b15bde2f5381a15dce95014762021-07-26 19:12:02131 days 8 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.008137087905538246 BNB
0xcab57f2515736e55148968916ee860eb92cb58c6dafef2880f5b9cb028b90dab93905142021-07-22 21:36:47135 days 6 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.003223196123481712 BNB
0xcab57f2515736e55148968916ee860eb92cb58c6dafef2880f5b9cb028b90dab93905142021-07-22 21:36:47135 days 6 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.005985935657894606 BNB
0xcab57f2515736e55148968916ee860eb92cb58c6dafef2880f5b9cb028b90dab93905142021-07-22 21:36:47135 days 6 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.009209131781376318 BNB
0x25dc3b2fd269050a1af825e90df8dd5281615f9a57a28faea58893d819a3ca3e93286482021-07-20 18:02:42137 days 10 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.002945131283222587 BNB
0x25dc3b2fd269050a1af825e90df8dd5281615f9a57a28faea58893d819a3ca3e93286482021-07-20 18:02:42137 days 10 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a0.005469529525984803 BNB
0x25dc3b2fd269050a1af825e90df8dd5281615f9a57a28faea58893d819a3ca3e93286482021-07-20 18:02:42137 days 10 hrs ago PancakeSwap: Router v2 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed0.00841466080920739 BNB
0xba77628e3e0c6e30dfd80512ab4a9f0d5241573356620eec2a9c4480f72aaaea92640202021-07-18 12:08:24139 days 15 hrs ago 0xff97f8a30f6b84fec3ef17b1e93107b1dc6058ed PancakeSwap: Router v20.00434429010638997 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GREENBULL

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
// SPDX-License-Identifier: UNLICENSED
*/

pragma solidity ^0.8.4;

/**
   #GREENBULL (GBULL📈)
   2% fee auto distribute to all holders
   8% fee auto liquidity and marketing

*/

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    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);
}
 
library SafeMath {

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

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        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;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor (address initialOwner) {
        _owner = initialOwner;
        emit OwnershipTransferred(address(0), initialOwner);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is still locked");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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



contract GREENBULL is Context, IBEP20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromAutoLiquidity;

    address[] private _excluded;
    address public _devWallet;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name     = "GREENBULL";
    string private _symbol   = "GBULL";
    uint8 private  _decimals = 9;
    
    uint256 public _taxFee       = 2; 
    uint256 public _liquidityFee = 9; 
    uint256 public _percentageOfLiquidityForDev = 65; 
    
    uint256 public  _maxTxAmount     = 2500000000000 * 10**9;
    uint256 private _minTokenBalance = 100000000 * 10**9;
    
    // auto liquidity
    bool public _swapAndLiquifyEnabled = true;
    bool _inSwapAndLiquify;
    IUniswapV2Router02 public _uniswapV2Router;
    address            public _uniswapV2Pair;
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 bnbReceived,
        uint256 tokensIntoLiqudity
    );
    event DevFeeSent(address to, uint256 bnbSent);
    
    modifier lockTheSwap {
        _inSwapAndLiquify = true;
        _;
        _inSwapAndLiquify = false;
    }
    
    constructor (address cOwner, address devWallet) Ownable(cOwner) {
        _devWallet = devWallet;

        _rOwned[cOwner] = _rTotal;
        
        // uniswap
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _uniswapV2Router = uniswapV2Router;
        _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());
        
        // exclude system contracts
        _isExcludedFromFee[owner()]        = true;
        _isExcludedFromFee[address(this)]  = true;
        _isExcludedFromFee[_devWallet]     = true;

        _isExcludedFromAutoLiquidity[_uniswapV2Pair]            = true;
        _isExcludedFromAutoLiquidity[address(_uniswapV2Router)] = true;
        
        emit Transfer(address(0), cOwner, _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero"));
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");

        (, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount,,) = _getRValues(tAmount, tFee, tLiquidity, currentRate);

        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal         = _rTotal.sub(rAmount);
        _tFeeTotal      = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        (, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        uint256 currentRate = _getRate();

        if (!deductTransferFee) {
            (uint256 rAmount,,) = _getRValues(tAmount, tFee, tLiquidity, currentRate);
            return rAmount;

        } else {
            (, uint256 rTransferAmount,) = _getRValues(tAmount, tFee, tLiquidity, currentRate);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");

        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");

        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already excluded");

        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

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

    function setExcludedFromFee(address account, bool e) external onlyOwner {
        _isExcludedFromFee[account] = e;
    }
    
    function setTaxFeePercent(uint256 taxFee) external onlyOwner {
        _taxFee = taxFee;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
        _liquidityFee = liquidityFee;
    }

    function setPercentageOfLiquidityForDev(uint256 devFee) external onlyOwner {
        _percentageOfLiquidityForDev = devFee;
    }
   
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(100);
    }

    function setSwapAndLiquifyEnabled(bool e) public onlyOwner {
        _swapAndLiquifyEnabled = e;
        emit SwapAndLiquifyEnabledUpdated(e);
    }
    
    receive() external payable {}

    function setUniswapRouter(address r) external onlyOwner {
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(r);
        _uniswapV2Router = uniswapV2Router;
    }

    function setUniswapPair(address p) external onlyOwner {
        _uniswapV2Pair = p;
    }

    function setExcludedFromAutoLiquidity(address a, bool b) external onlyOwner {
        _isExcludedFromAutoLiquidity[a] = b;
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal    = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
        uint256 tFee       = calculateFee(tAmount, _taxFee);
        uint256 tLiquidity = calculateFee(tAmount, _liquidityFee);
        uint256 tTransferAmount = tAmount.sub(tFee);
        tTransferAmount = tTransferAmount.sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount    = tAmount.mul(currentRate);
        uint256 rFee       = tFee.mul(currentRate);
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        rTransferAmount = rTransferAmount.sub(rLiquidity);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function takeTransactionFee(address to, uint256 tAmount, uint256 currentRate) private {
        if (tAmount <= 0) { return; }

        uint256 rAmount = tAmount.mul(currentRate);
        _rOwned[to] = _rOwned[to].add(rAmount);
        if (_isExcluded[to]) {
            _tOwned[to] = _tOwned[to].add(tAmount);
        }
    }
    
    function calculateFee(uint256 amount, uint256 fee) private pure returns (uint256) {
        return amount.mul(fee).div(100);
    }
    
    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        /*
            - swapAndLiquify will be initiated when token balance of this contract
            has accumulated enough over the minimum number of tokens required.
            - don't get caught in a circular liquidity event.
            - don't swapAndLiquify if sender is uniswap pair.
        */
        uint256 contractTokenBalance = balanceOf(address(this));
        
        if (contractTokenBalance >= _maxTxAmount) {
            contractTokenBalance = _maxTxAmount;
        }
        
        bool isOverMinTokenBalance = contractTokenBalance >= _minTokenBalance;
        if (
            isOverMinTokenBalance &&
            !_inSwapAndLiquify &&
            !_isExcludedFromAutoLiquidity[from] &&
            _swapAndLiquifyEnabled
        ) {
            // contractTokenBalance = _minTokenBalance;
            swapAndLiquify(contractTokenBalance);
        }

        
        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split contract balance into halves
        uint256 half      = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        /*
            capture the contract's current BNB balance.
            this is so that we can capture exactly the amount of BNB that
            the swap creates, and not make the liquidity event include any BNB
            that has been manually sent to the contract.
        */
        uint256 initialBalance = address(this).balance;

        // swap tokens for BNB
        swapTokensForBnb(half);

        // this is the amount of BNB that we just swapped into
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // take dev fee
        uint256 devFee          = newBalance.mul(_percentageOfLiquidityForDev).div(100);
        uint256 bnbForLiquidity = newBalance.sub(devFee);
        if (devFee > 0) {
            payable(_devWallet).transfer(devFee);
            emit DevFeeSent(_devWallet, devFee);
        }

        // add liquidity to uniswap
        addLiquidity(otherHalf, bnbForLiquidity);
        
        emit SwapAndLiquify(half, bnbForLiquidity, otherHalf);
    }
    function swapTokensForBnb(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), tokenAmount);

        // make the swap
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of BNB
            path,
            address(this),
            block.timestamp
        );
    }
    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(_uniswapV2Router), tokenAmount);

        // add the liquidity
        _uniswapV2Router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(this),
            block.timestamp
        );
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        uint256 previousTaxFee       = _taxFee;
        uint256 previousLiquidityFee = _liquidityFee;
        
        if (!takeFee) {
            _taxFee       = 0;
            _liquidityFee = 0;
        }
        
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);

        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);

        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);

        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);

        } else {
            _transferStandard(sender, recipient, amount);
        }
        
        if (!takeFee) {
            _taxFee       = previousTaxFee;
            _liquidityFee = previousLiquidityFee;
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate);

        _rOwned[sender]    = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate);

        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate);

        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);

        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate);

        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        
        takeTransactionFee(address(this), tLiquidity, currentRate);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"cOwner","type":"address"},{"internalType":"address","name":"devWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"bnbSent","type":"uint256"}],"name":"DevFeeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromAutoLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentageOfLiquidityForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"devWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bool","name":"b","type":"bool"}],"name":"setExcludedFromAutoLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"e","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setPercentageOfLiquidityForDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"p","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"r","type":"address"}],"name":"setUniswapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268056bc75e2d63100000600b55600b54600019620000239190620009ce565b6000196200003291906200091f565b600c556040518060400160405280600981526020017f475245454e42554c4c0000000000000000000000000000000000000000000000815250600e9080519060200190620000829291906200077f565b506040518060400160405280600581526020017f4742554c4c000000000000000000000000000000000000000000000000000000815250600f9080519060200190620000d09291906200077f565b506009601060006101000a81548160ff021916908360ff16021790555060026011556009601255604160135568878678326eac90000060145567016345785d8a00006015556001601660006101000a81548160ff0219169083151502179055503480156200013d57600080fd5b506040516200669338038062006693833981810160405281019062000163919062000872565b81806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060007310ed43c718714eb63d5aa57b78b54704e256024e905080601660026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032857600080fd5b505afa1580156200033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000363919062000846565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c657600080fd5b505afa158015620003db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000401919062000846565b6040518363ffffffff1660e01b815260040162000420929190620008d5565b602060405180830381600087803b1580156200043b57600080fd5b505af115801562000450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000476919062000846565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004cc6200075660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000745919062000902565b60405180910390a350505062000aad565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200078d9062000998565b90600052602060002090601f016020900481019282620007b15760008555620007fd565b82601f10620007cc57805160ff1916838001178555620007fd565b82800160010185558215620007fd579182015b82811115620007fc578251825591602001919060010190620007df565b5b5090506200080c919062000810565b5090565b5b808211156200082b57600081600090555060010162000811565b5090565b600081519050620008408162000a93565b92915050565b6000602082840312156200085957600080fd5b600062000869848285016200082f565b91505092915050565b600080604083850312156200088657600080fd5b600062000896858286016200082f565b9250506020620008a9858286016200082f565b9150509250929050565b620008be816200095a565b82525050565b620008cf816200098e565b82525050565b6000604082019050620008ec6000830185620008b3565b620008fb6020830184620008b3565b9392505050565b6000602082019050620009196000830184620008c4565b92915050565b60006200092c826200098e565b915062000939836200098e565b9250828210156200094f576200094e62000a06565b5b828203905092915050565b600062000967826200096e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006002820490506001821680620009b157607f821691505b60208210811415620009c857620009c762000a64565b5b50919050565b6000620009db826200098e565b9150620009e8836200098e565b925082620009fb57620009fa62000a35565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b62000a9e816200095a565b811462000aaa57600080fd5b50565b615bd68062000abd6000396000f3fe60806040526004361061026b5760003560e01c806370a0823111610144578063b71cbfd4116100b6578063d543dbeb1161007a578063d543dbeb14610961578063d5aed6bf1461098a578063d6b0e3b4146109b3578063dd467064146109de578063dd62ed3e14610a07578063f2fde38b14610a4457610272565b8063b71cbfd41461087e578063baa04398146108a7578063bea9849e146108e4578063c49b9a801461090d578063cbecede01461093657610272565b80638ee88c53116101085780638ee88c531461076e57806395d89b41146107975780639c74daf0146107c2578063a457c2d7146107ed578063a69df4b51461082a578063a9059cbb1461084157610272565b806370a0823114610687578063715018a6146106c45780637d1db4a5146106db57806388f82020146107065780638da5cb5b1461074357610272565b806339509351116101dd5780635342acb4116101a15780635342acb414610577578063583e0568146105b45780635d83b454146105df578063602bc62b146106085780636612e66f146106335780636bc87c3a1461065c57610272565b806339509351146104805780633b124fe7146104bd5780633bd5d173146104e85780634549b0391461051157806352390c021461054e57610272565b806318160ddd1161022f57806318160ddd1461035e5780631f53ac021461038957806323b872dd146103b25780632d838119146103ef578063313ce5671461042c5780633685d4191461045757610272565b8063061c82d01461027757806306fdde03146102a0578063095ea7b3146102cb57806311a63e171461030857806313114a9d1461033357610272565b3661027257005b600080fd5b34801561028357600080fd5b5061029e60048036038101906102999190614bdb565b610a6d565b005b3480156102ac57600080fd5b506102b5610b0c565b6040516102c291906150b2565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190614b76565b610b9e565b6040516102ff919061507c565b60405180910390f35b34801561031457600080fd5b5061031d610bbc565b60405161032a9190614fd7565b60405180910390f35b34801561033f57600080fd5b50610348610be2565b60405161035591906152d4565b60405180910390f35b34801561036a57600080fd5b50610373610bec565b60405161038091906152d4565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190614a5d565b610bf6565b005b3480156103be57600080fd5b506103d960048036038101906103d49190614aeb565b610ccf565b6040516103e6919061507c565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190614bdb565b610da8565b60405161042391906152d4565b60405180910390f35b34801561043857600080fd5b50610441610e16565b60405161044e9190615380565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190614a5d565b610e2d565b005b34801561048c57600080fd5b506104a760048036038101906104a29190614b76565b611214565b6040516104b4919061507c565b60405180910390f35b3480156104c957600080fd5b506104d26112c7565b6040516104df91906152d4565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190614bdb565b6112cd565b005b34801561051d57600080fd5b5061053860048036038101906105339190614c04565b611468565b60405161054591906152d4565b60405180910390f35b34801561055a57600080fd5b5061057560048036038101906105709190614a5d565b61150f565b005b34801561058357600080fd5b5061059e60048036038101906105999190614a5d565b6117c3565b6040516105ab919061507c565b60405180910390f35b3480156105c057600080fd5b506105c9611819565b6040516105d69190615097565b60405180910390f35b3480156105eb57600080fd5b5061060660048036038101906106019190614b3a565b61183f565b005b34801561061457600080fd5b5061061d61192f565b60405161062a91906152d4565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190614b3a565b611939565b005b34801561066857600080fd5b50610671611a29565b60405161067e91906152d4565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a99190614a5d565b611a2f565b6040516106bb91906152d4565b60405180910390f35b3480156106d057600080fd5b506106d9611b1a565b005b3480156106e757600080fd5b506106f0611c6d565b6040516106fd91906152d4565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190614a5d565b611c73565b60405161073a919061507c565b60405180910390f35b34801561074f57600080fd5b50610758611cc9565b6040516107659190614fd7565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190614bdb565b611cf2565b005b3480156107a357600080fd5b506107ac611d91565b6040516107b991906150b2565b60405180910390f35b3480156107ce57600080fd5b506107d7611e23565b6040516107e49190614fd7565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190614b76565b611e49565b604051610821919061507c565b60405180910390f35b34801561083657600080fd5b5061083f611f16565b005b34801561084d57600080fd5b5061086860048036038101906108639190614b76565b6120ea565b604051610875919061507c565b60405180910390f35b34801561088a57600080fd5b506108a560048036038101906108a09190614bdb565b612108565b005b3480156108b357600080fd5b506108ce60048036038101906108c99190614a5d565b6121a7565b6040516108db919061507c565b60405180910390f35b3480156108f057600080fd5b5061090b60048036038101906109069190614a5d565b6121c7565b005b34801561091957600080fd5b50610934600480360381019061092f9190614bb2565b6122a6565b005b34801561094257600080fd5b5061094b61238f565b604051610958919061507c565b60405180910390f35b34801561096d57600080fd5b5061098860048036038101906109839190614bdb565b6123a2565b005b34801561099657600080fd5b506109b160048036038101906109ac9190614a5d565b612468565b005b3480156109bf57600080fd5b506109c8612541565b6040516109d591906152d4565b60405180910390f35b3480156109ea57600080fd5b50610a056004803603810190610a009190614bdb565b612547565b005b348015610a1357600080fd5b50610a2e6004803603810190610a299190614aaf565b61270e565b604051610a3b91906152d4565b60405180910390f35b348015610a5057600080fd5b50610a6b6004803603810190610a669190614a5d565b612795565b005b610a75612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990615214565b60405180910390fd5b8060118190555050565b6060600e8054610b1b906155c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b47906155c3565b8015610b945780601f10610b6957610100808354040283529160200191610b94565b820191906000526020600020905b815481529060010190602001808311610b7757829003601f168201915b5050505050905090565b6000610bb2610bab612957565b848461295f565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d54905090565b6000600b54905090565b610bfe612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290615214565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610cdc848484612b2a565b610d9d84610ce8612957565b610d9885604051806060016040528060288152602001615b5460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d4e612957565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e909092919063ffffffff16565b61295f565b600190509392505050565b6000600c54821115610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690615134565b60405180910390fd5b6000610df9612ef4565b9050610e0e8184612f1f90919063ffffffff16565b915050919050565b6000601060009054906101000a900460ff16905090565b610e35612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990615214565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590615194565b60405180910390fd5b60005b600980549050811015611210578173ffffffffffffffffffffffffffffffffffffffff1660098281548110610faf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156111fd576009600160098054905061100a91906154d1565b81548110611041577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600982815481106110a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098054806111c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611210565b8080611208906155f5565b915050610f51565b5050565b60006112bd611221612957565b846112b88560076000611232612957565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b61295f565b6001905092915050565b60115481565b60006112d7612957565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90615274565b60405180910390fd5b60008061137284612fc7565b92509250506000611381612ef4565b905060006113918685858561302a565b505090506113e781600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061143f81600c546130b690919063ffffffff16565b600c8190555061145a86600d54612f6990919063ffffffff16565b600d81905550505050505050565b6000600b548311156114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a6906151b4565b60405180910390fd5b6000806114bb85612fc7565b925092505060006114ca612ef4565b9050846114ef5760006114df8785858561302a565b5050905080945050505050611509565b60006114fd8785858561302a565b50915050809450505050505b92915050565b611517612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90615214565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890615194565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611705576116c1600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da8565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611847612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90615214565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b611941612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590615214565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611aca57600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611b15565b611b12600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da8565b90505b919050565b611b22612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba690615214565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60145481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611cfa612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e90615214565b60405180910390fd5b8060128190555050565b6060600f8054611da0906155c3565b80601f0160208091040260200160405190810160405280929190818152602001828054611dcc906155c3565b8015611e195780601f10611dee57610100808354040283529160200191611e19565b820191906000526020600020905b815481529060010190602001808311611dfc57829003601f168201915b5050505050905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f0c611e56612957565b84611f0785604051806060016040528060258152602001615b7c6025913960076000611e80612957565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e909092919063ffffffff16565b61295f565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9d906152b4565b60405180910390fd5b6002544211611fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe1906150f4565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006120fe6120f7612957565b8484612b2a565b6001905092915050565b612110612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219490615214565b60405180910390fd5b8060138190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6121cf612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225390615214565b60405180910390fd5b600081905080601660026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6122ae612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461233b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233290615214565b60405180910390fd5b80601660006101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051612384919061507c565b60405180910390a150565b601660009054906101000a900460ff1681565b6123aa612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90615214565b60405180910390fd5b61245f606461245183600b5461310090919063ffffffff16565b612f1f90919063ffffffff16565b60148190555050565b612470612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f490615214565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b61254f612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390615214565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261268a91906153f0565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61279d612957565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461282a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282190615214565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561289a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289190615154565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c690615114565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3690615294565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b1d91906152d4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b91906150d4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0190615254565b60405180910390fd5b60008111612c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4490615234565b60405180910390fd5b612c55611cc9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612cc35750612c93611cc9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d0e57601454811115612d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d04906151d4565b60405180910390fd5b5b6000612d1930611a2f565b90506014548110612d2a5760145490505b60006015548210159050808015612d4e5750601660019054906101000a900460ff16155b8015612da45750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dbc5750601660009054906101000a900460ff165b15612dcb57612dca8261317b565b5b600060019050600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e725750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e7c57600090505b612e8886868684613364565b505050505050565b6000838311158290612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf91906150b2565b60405180910390fd5b5060008385612ee791906154d1565b9050809150509392505050565b6000806000612f01613693565b91509150612f188183612f1f90919063ffffffff16565b9250505090565b6000612f6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506139de565b905092915050565b6000808284612f7891906153f0565b905083811015612fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb490615174565b60405180910390fd5b8091505092915050565b600080600080612fd985601154613a41565b90506000612fe986601254613a41565b9050600061300083886130b690919063ffffffff16565b905061301582826130b690919063ffffffff16565b90508083839550955095505050509193909250565b600080600080613043858961310090919063ffffffff16565b9050600061305a868961310090919063ffffffff16565b90506000613071878961310090919063ffffffff16565b9050600061308883856130b690919063ffffffff16565b905061309d82826130b690919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006130f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e90565b905092915050565b6000808314156131135760009050613175565b600082846131219190615477565b90508284826131309190615446565b14613170576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613167906151f4565b60405180910390fd5b809150505b92915050565b6001601660016101000a81548160ff02191690831515021790555060006131ac600283612f1f90919063ffffffff16565b905060006131c382846130b690919063ffffffff16565b905060004790506131d383613a71565b60006131e882476130b690919063ffffffff16565b9050600061321460646132066013548561310090919063ffffffff16565b612f1f90919063ffffffff16565b9050600061322b82846130b690919063ffffffff16565b905060008211156132fb57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561329e573d6000803e3d6000fd5b507ff00ef454165952f9f1864c60595e806f9a1b7f118b5474cfde32bf4061041be9600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040516132f2929190614ff2565b60405180910390a15b6133058582613d35565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186828760405161333893929190615349565b60405180910390a15050505050506000601660016101000a81548160ff02191690831515021790555050565b60006011549050600060125490508261338857600060118190555060006012819055505b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561342b5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134405761343b868686613e22565b613677565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134e35750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156134f8576134f386868661409e565b613676565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561359c5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156135b1576135ac86868661431a565b613675565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156136535750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561366857613663868686614501565b613674565b61367386868661431a565b5b5b5b5b8261368b5781601181905550806012819055505b505050505050565b6000806000600c5490506000600b54905060005b6009805490508110156139a1578260036000600984815481106136f3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613807575081600460006009848154811061379f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561381e57600c54600b54945094505050506139da565b6138d4600360006009848154811061385f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846130b690919063ffffffff16565b925061398c6004600060098481548110613917577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836130b690919063ffffffff16565b91508080613999906155f5565b9150506136a7565b506139b9600b54600c54612f1f90919063ffffffff16565b8210156139d157600c54600b549350935050506139da565b81819350935050505b9091565b60008083118290613a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a1c91906150b2565b60405180910390fd5b5060008385613a349190615446565b9050809150509392505050565b6000613a696064613a5b848661310090919063ffffffff16565b612f1f90919063ffffffff16565b905092915050565b6000600267ffffffffffffffff811115613ab4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015613ae25781602001602082028036833780820191505090505b5090503081600081518110613b20577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc257600080fd5b505afa158015613bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfa9190614a86565b81600181518110613c34577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c9b30601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461295f565b601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613cff9594939291906152ef565b600060405180830381600087803b158015613d1957600080fd5b505af1158015613d2d573d6000803e3d6000fd5b505050505050565b613d6230601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461295f565b601660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401613dc99695949392919061501b565b6060604051808303818588803b158015613de257600080fd5b505af1158015613df6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e1b9190614c40565b5050505050565b6000806000613e3084612fc7565b9250925092506000613e40612ef4565b90506000806000613e538887878761302a565b925092509250613eab88600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f4083600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fd582600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614023308686614812565b61402d81876149ba565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8960405161408a91906152d4565b60405180910390a350505050505050505050565b60008060006140ac84612fc7565b92509250925060006140bc612ef4565b905060008060006140cf8887878761302a565b92509250925061412783600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141bc87600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061425182600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061429f308686614812565b6142a981876149ba565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8960405161430691906152d4565b60405180910390a350505050505050505050565b600080600061432884612fc7565b9250925092506000614338612ef4565b9050600080600061434b8887878761302a565b9250925092506143a383600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061443882600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614486308686614812565b61449081876149ba565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040516144ed91906152d4565b60405180910390a350505050505050505050565b600080600061450f84612fc7565b925092509250600061451f612ef4565b905060008060006145328887878761302a565b92509250925061458a88600460008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061461f83600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b690919063ffffffff16565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506146b487600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061474982600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614797308686614812565b6147a181876149ba565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040516147fe91906152d4565b60405180910390a350505050505050505050565b6000821161481f576149b5565b6000614834828461310090919063ffffffff16565b905061488881600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156149b35761496f83600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b505050565b6149cf82600c546130b690919063ffffffff16565b600c819055506149ea81600d54612f6990919063ffffffff16565b600d819055505050565b600081359050614a0381615b0e565b92915050565b600081519050614a1881615b0e565b92915050565b600081359050614a2d81615b25565b92915050565b600081359050614a4281615b3c565b92915050565b600081519050614a5781615b3c565b92915050565b600060208284031215614a6f57600080fd5b6000614a7d848285016149f4565b91505092915050565b600060208284031215614a9857600080fd5b6000614aa684828501614a09565b91505092915050565b60008060408385031215614ac257600080fd5b6000614ad0858286016149f4565b9250506020614ae1858286016149f4565b9150509250929050565b600080600060608486031215614b0057600080fd5b6000614b0e868287016149f4565b9350506020614b1f868287016149f4565b9250506040614b3086828701614a33565b9150509250925092565b60008060408385031215614b4d57600080fd5b6000614b5b858286016149f4565b9250506020614b6c85828601614a1e565b9150509250929050565b60008060408385031215614b8957600080fd5b6000614b97858286016149f4565b9250506020614ba885828601614a33565b9150509250929050565b600060208284031215614bc457600080fd5b6000614bd284828501614a1e565b91505092915050565b600060208284031215614bed57600080fd5b6000614bfb84828501614a33565b91505092915050565b60008060408385031215614c1757600080fd5b6000614c2585828601614a33565b9250506020614c3685828601614a1e565b9150509250929050565b600080600060608486031215614c5557600080fd5b6000614c6386828701614a48565b9350506020614c7486828701614a48565b9250506040614c8586828701614a48565b9150509250925092565b6000614c9b8383614ca7565b60208301905092915050565b614cb081615505565b82525050565b614cbf81615505565b82525050565b6000614cd0826153ab565b614cda81856153ce565b9350614ce58361539b565b8060005b83811015614d16578151614cfd8882614c8f565b9750614d08836153c1565b925050600181019050614ce9565b5085935050505092915050565b614d2c81615517565b82525050565b614d3b8161555a565b82525050565b614d4a8161557e565b82525050565b6000614d5b826153b6565b614d6581856153df565b9350614d75818560208601615590565b614d7e816156cb565b840191505092915050565b6000614d966025836153df565b9150614da1826156dc565b604082019050919050565b6000614db96018836153df565b9150614dc48261572b565b602082019050919050565b6000614ddc6024836153df565b9150614de782615754565b604082019050919050565b6000614dff602a836153df565b9150614e0a826157a3565b604082019050919050565b6000614e226026836153df565b9150614e2d826157f2565b604082019050919050565b6000614e45601b836153df565b9150614e5082615841565b602082019050919050565b6000614e68601b836153df565b9150614e738261586a565b602082019050919050565b6000614e8b601f836153df565b9150614e9682615893565b602082019050919050565b6000614eae6028836153df565b9150614eb9826158bc565b604082019050919050565b6000614ed16021836153df565b9150614edc8261590b565b604082019050919050565b6000614ef46020836153df565b9150614eff8261595a565b602082019050919050565b6000614f176029836153df565b9150614f2282615983565b604082019050919050565b6000614f3a6023836153df565b9150614f45826159d2565b604082019050919050565b6000614f5d602c836153df565b9150614f6882615a21565b604082019050919050565b6000614f806022836153df565b9150614f8b82615a70565b604082019050919050565b6000614fa36023836153df565b9150614fae82615abf565b604082019050919050565b614fc281615543565b82525050565b614fd18161554d565b82525050565b6000602082019050614fec6000830184614cb6565b92915050565b60006040820190506150076000830185614cb6565b6150146020830184614fb9565b9392505050565b600060c0820190506150306000830189614cb6565b61503d6020830188614fb9565b61504a6040830187614d41565b6150576060830186614d41565b6150646080830185614cb6565b61507160a0830184614fb9565b979650505050505050565b60006020820190506150916000830184614d23565b92915050565b60006020820190506150ac6000830184614d32565b92915050565b600060208201905081810360008301526150cc8184614d50565b905092915050565b600060208201905081810360008301526150ed81614d89565b9050919050565b6000602082019050818103600083015261510d81614dac565b9050919050565b6000602082019050818103600083015261512d81614dcf565b9050919050565b6000602082019050818103600083015261514d81614df2565b9050919050565b6000602082019050818103600083015261516d81614e15565b9050919050565b6000602082019050818103600083015261518d81614e38565b9050919050565b600060208201905081810360008301526151ad81614e5b565b9050919050565b600060208201905081810360008301526151cd81614e7e565b9050919050565b600060208201905081810360008301526151ed81614ea1565b9050919050565b6000602082019050818103600083015261520d81614ec4565b9050919050565b6000602082019050818103600083015261522d81614ee7565b9050919050565b6000602082019050818103600083015261524d81614f0a565b9050919050565b6000602082019050818103600083015261526d81614f2d565b9050919050565b6000602082019050818103600083015261528d81614f50565b9050919050565b600060208201905081810360008301526152ad81614f73565b9050919050565b600060208201905081810360008301526152cd81614f96565b9050919050565b60006020820190506152e96000830184614fb9565b92915050565b600060a0820190506153046000830188614fb9565b6153116020830187614d41565b81810360408301526153238186614cc5565b90506153326060830185614cb6565b61533f6080830184614fb9565b9695505050505050565b600060608201905061535e6000830186614fb9565b61536b6020830185614fb9565b6153786040830184614fb9565b949350505050565b60006020820190506153956000830184614fc8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006153fb82615543565b915061540683615543565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561543b5761543a61563e565b5b828201905092915050565b600061545182615543565b915061545c83615543565b92508261546c5761546b61566d565b5b828204905092915050565b600061548282615543565b915061548d83615543565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156154c6576154c561563e565b5b828202905092915050565b60006154dc82615543565b91506154e783615543565b9250828210156154fa576154f961563e565b5b828203905092915050565b600061551082615523565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155658261556c565b9050919050565b600061557782615523565b9050919050565b600061558982615543565b9050919050565b60005b838110156155ae578082015181840152602081019050615593565b838111156155bd576000848401525b50505050565b600060028204905060018216806155db57607f821691505b602082108114156155ef576155ee61569c565b5b50919050565b600061560082615543565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156156335761563261563e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973207374696c6c206c6f636b65640000000000000000600082015250565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b615b1781615505565b8114615b2257600080fd5b50565b615b2e81615517565b8114615b3957600080fd5b50565b615b4581615543565b8114615b5057600080fd5b5056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b6b0bcfc0b83b0228c8da2e8e842c1ceace2d66b42c03feac69ba0fd2dbc505964736f6c63430008040033000000000000000000000000f2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a000000000000000000000000f2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a

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

000000000000000000000000f2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a000000000000000000000000f2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a

-----Decoded View---------------
Arg [0] : cOwner (address): 0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a
Arg [1] : devWallet (address): 0xf2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a
Arg [1] : 000000000000000000000000f2f1e0bfcb9a80daaddc6c117ad9dfc8bcc8995a


Deployed ByteCode Sourcemap

15345:19162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22600:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17974:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18886:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15827:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20007:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18251:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22357:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19055:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21266:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18160:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21870:479;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19376:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16184:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20102:536;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20646:612;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21528:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26020:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16554:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23601:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6737:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22466:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16224:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18354:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6329:148;;;;;;;;;;;;;:::i;:::-;;16326:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19879:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6115:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22704:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18065:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16603:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19602:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7073:298;;;;;;;;;;;;;:::i;:::-;;18560:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22832:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15723:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23316:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23116:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16477:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22974:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23502:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16264:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6835:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18735:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22600:96;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22682:6:::1;22672:7;:16;;;;22600:96:::0;:::o;17974:83::-;18011:13;18044:5;18037:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17974:83;:::o;18886:161::-;18961:4;18978:39;18987:12;:10;:12::i;:::-;19001:7;19010:6;18978:8;:39::i;:::-;19035:4;19028:11;;18886:161;;;;:::o;15827:25::-;;;;;;;;;;;;;:::o;20007:87::-;20049:7;20076:10;;20069:17;;20007:87;:::o;18251:95::-;18304:7;18331;;18324:14;;18251:95;:::o;22357:101::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22441:9:::1;22428:10;;:22;;;;;;;;;;;;;;;;;;22357:101:::0;:::o;19055:313::-;19153:4;19170:36;19180:6;19188:9;19199:6;19170:9;:36::i;:::-;19217:121;19226:6;19234:12;:10;:12::i;:::-;19248:89;19286:6;19248:89;;;;;;;;;;;;;;;;;:11;:19;19260:6;19248:19;;;;;;;;;;;;;;;:33;19268:12;:10;:12::i;:::-;19248:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19217:8;:121::i;:::-;19356:4;19349:11;;19055:313;;;;;:::o;21266:254::-;21332:7;21371;;21360;:18;;21352:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21438:19;21460:10;:8;:10::i;:::-;21438:32;;21488:24;21500:11;21488:7;:11;;:24;;;;:::i;:::-;21481:31;;;21266:254;;;:::o;18160:83::-;18201:5;18226:9;;;;;;;;;;;18219:16;;18160:83;:::o;21870:479::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21950:11:::1;:20;21962:7;21950:20;;;;;;;;;;;;;;;;;;;;;;;;;21942:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22020:9;22015:327;22039:9;:16;;;;22035:1;:20;22015:327;;;22097:7;22081:23;;:9;22091:1;22081:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;22077:254;;;22140:9;22169:1;22150:9;:16;;;;:20;;;;:::i;:::-;22140:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22125:9;22135:1;22125:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22209:1;22190:7;:16;22198:7;22190:16;;;;;;;;;;;;;;;:20;;;;22252:5;22229:11;:20;22241:7;22229:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22276:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22310:5;;22077:254;22057:3;;;;;:::i;:::-;;;;22015:327;;;;21870:479:::0;:::o;19376:218::-;19464:4;19481:83;19490:12;:10;:12::i;:::-;19504:7;19513:50;19552:10;19513:11;:25;19525:12;:10;:12::i;:::-;19513:25;;;;;;;;;;;;;;;:34;19539:7;19513:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19481:8;:83::i;:::-;19582:4;19575:11;;19376:218;;;;:::o;16184:32::-;;;;:::o;20102:536::-;20154:14;20171:12;:10;:12::i;:::-;20154:29;;20203:11;:19;20215:6;20203:19;;;;;;;;;;;;;;;;;;;;;;;;;20202:20;20194:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;20287:12;20301:18;20323:20;20335:7;20323:11;:20::i;:::-;20284:59;;;;;20354:19;20376:10;:8;:10::i;:::-;20354:32;;20398:15;20419:51;20431:7;20440:4;20446:10;20458:11;20419;:51::i;:::-;20397:73;;;;20501:28;20521:7;20501;:15;20509:6;20501:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20483:7;:15;20491:6;20483:15;;;;;;;;;;;;;;;:46;;;;20558:20;20570:7;20558;;:11;;:20;;;;:::i;:::-;20540:7;:38;;;;20607:23;20622:7;20607:10;;:14;;:23;;;;:::i;:::-;20589:10;:41;;;;20102:536;;;;;;:::o;20646:612::-;20736:7;20775;;20764;:18;;20756:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;20832:12;20846:18;20868:20;20880:7;20868:11;:20::i;:::-;20829:59;;;;;20899:19;20921:10;:8;:10::i;:::-;20899:32;;20949:17;20944:307;;20984:15;21005:51;21017:7;21026:4;21032:10;21044:11;21005;:51::i;:::-;20983:73;;;;21078:7;21071:14;;;;;;;;20944:307;21123:23;21151:51;21163:7;21172:4;21178:10;21190:11;21151;:51::i;:::-;21120:82;;;;21224:15;21217:22;;;;;;20646:612;;;;;:::o;21528:334::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21609:11:::1;:20;21621:7;21609:20;;;;;;;;;;;;;;;;;;;;;;;;;21608:21;21600:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;21697:1;21678:7;:16;21686:7;21678:16;;;;;;;;;;;;;;;;:20;21674:109;;;21734:37;21754:7;:16;21762:7;21754:16;;;;;;;;;;;;;;;;21734:19;:37::i;:::-;21715:7;:16;21723:7;21715:16;;;;;;;;;;;;;;;:56;;;;21674:109;21816:4;21793:11;:20;21805:7;21793:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21831:9;21846:7;21831:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21528:334:::0;:::o;26020:123::-;26084:4;26108:18;:27;26127:7;26108:27;;;;;;;;;;;;;;;;;;;;;;;;;26101:34;;26020:123;;;:::o;16554:42::-;;;;;;;;;;;;;:::o;23601:130::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23722:1:::1;23688:28;:31;23717:1;23688:31;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;23601:130:::0;;:::o;6737:90::-;6783:7;6810:9;;6803:16;;6737:90;:::o;22466:122::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22579:1:::1;22549:18;:27;22568:7;22549:27;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;22466:122:::0;;:::o;16224:32::-;;;;:::o;18354:198::-;18420:7;18444:11;:20;18456:7;18444:20;;;;;;;;;;;;;;;;;;;;;;;;;18440:49;;;18473:7;:16;18481:7;18473:16;;;;;;;;;;;;;;;;18466:23;;;;18440:49;18507:37;18527:7;:16;18535:7;18527:16;;;;;;;;;;;;;;;;18507:19;:37::i;:::-;18500:44;;18354:198;;;;:::o;6329:148::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6436:1:::1;6399:40;;6420:6;::::0;::::1;;;;;;;;6399:40;;;;;;;;;;;;6467:1;6450:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6329:148::o:0;16326:56::-;;;;:::o;19879:120::-;19947:4;19971:11;:20;19983:7;19971:20;;;;;;;;;;;;;;;;;;;;;;;;;19964:27;;19879:120;;;:::o;6115:79::-;6153:7;6180:6;;;;;;;;;;;6173:13;;6115:79;:::o;22704:120::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22804:12:::1;22788:13;:28;;;;22704:120:::0;:::o;18065:87::-;18104:13;18137:7;18130:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18065:87;:::o;16603:40::-;;;;;;;;;;;;;:::o;19602:269::-;19695:4;19712:129;19721:12;:10;:12::i;:::-;19735:7;19744:96;19783:15;19744:96;;;;;;;;;;;;;;;;;:11;:25;19756:12;:10;:12::i;:::-;19744:25;;;;;;;;;;;;;;;:34;19770:7;19744:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19712:8;:129::i;:::-;19859:4;19852:11;;19602:269;;;;:::o;7073:298::-;7143:10;7125:28;;:14;;;;;;;;;;;:28;;;7117:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7230:9;;7212:15;:27;7204:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:14;;;;;;;;;;;7285:44;;7306:6;;;;;;;;;;7285:44;;;;;;;;;;;;7349:14;;;;;;;;;;;7340:6;;:23;;;;;;;;;;;;;;;;;;7073:298::o;18560:167::-;18638:4;18655:42;18665:12;:10;:12::i;:::-;18679:9;18690:6;18655:9;:42::i;:::-;18715:4;18708:11;;18560:167;;;;:::o;22832:131::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22949:6:::1;22918:28;:37;;;;22832:131:::0;:::o;15723:61::-;;;;;;;;;;;;;;;;;;;;;;:::o;23316:178::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23383:34:::1;23439:1;23383:58;;23471:15;23452:16;;:34;;;;;;;;;;;;;;;;;;6312:1;23316:178:::0;:::o;23116:151::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23211:1:::1;23186:22;;:26;;;;;;;;;;;;;;;;;;23228:31;23257:1;23228:31;;;;;;:::i;:::-;;;;;;;;23116:151:::0;:::o;16477:41::-;;;;;;;;;;;;;:::o;22974:134::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23066:34:::1;23096:3;23066:25;23078:12;23066:7;;:11;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23051:12;:49;;;;22974:134:::0;:::o;23502:91::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23584:1:::1;23567:14;;:18;;;;;;;;;;;;;;;;;;23502:91:::0;:::o;16264:48::-;;;;:::o;6835:226::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6916:6:::1;::::0;::::1;;;;;;;;6899:14;;:23;;;;;;;;;;;;;;;;;;6950:1;6933:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6993:4;6975:15;:22;;;;:::i;:::-;6963:9;:34;;;;7050:1;7013:40;;7034:6;::::0;::::1;;;;;;;;7013:40;;;;;;;;;;;;6835:226:::0;:::o;18735:143::-;18816:7;18843:11;:18;18855:5;18843:18;;;;;;;;;;;;;;;:27;18862:7;18843:27;;;;;;;;;;;;;;;;18836:34;;18735:143;;;;:::o;6485:244::-;6252:12;:10;:12::i;:::-;6242:22;;:6;;;;;;;;;;:22;;;6234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6594:1:::1;6574:22;;:8;:22;;;;6566:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6684:8;6655:38;;6676:6;::::0;::::1;;;;;;;;6655:38;;;;;;;;;;;;6713:8;6704:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6485:244:::0;:::o;233:98::-;286:7;313:10;306:17;;233:98;:::o;26151:337::-;26261:1;26244:19;;:5;:19;;;;26236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26342:1;26323:21;;:7;:21;;;;26315:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26426:6;26396:11;:18;26408:5;26396:18;;;;;;;;;;;;;;;:27;26415:7;26396:27;;;;;;;;;;;;;;;:36;;;;26464:7;26448:32;;26457:5;26448:32;;;26473:6;26448:32;;;;;;:::i;:::-;;;;;;;;26151:337;;;:::o;26496:1597::-;26634:1;26618:18;;:4;:18;;;;26610:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;26711:1;26697:16;;:2;:16;;;;26689:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26781:1;26772:6;:10;26764:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;26853:7;:5;:7::i;:::-;26845:15;;:4;:15;;;;:32;;;;;26870:7;:5;:7::i;:::-;26864:13;;:2;:13;;;;26845:32;26841:140;;;26912:12;;26902:6;:22;;26894:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;26841:140;27307:28;27338:24;27356:4;27338:9;:24::i;:::-;27307:55;;27411:12;;27387:20;:36;27383:104;;27463:12;;27440:35;;27383:104;27507:26;27560:16;;27536:20;:40;;27507:69;;27605:21;:56;;;;;27644:17;;;;;;;;;;;27643:18;27605:56;:108;;;;;27679:28;:34;27708:4;27679:34;;;;;;;;;;;;;;;;;;;;;;;;;27678:35;27605:108;:147;;;;;27730:22;;;;;;;;;;;27605:147;27587:297;;;27836:36;27851:20;27836:14;:36::i;:::-;27587:297;27906:12;27921:4;27906:19;;27940:18;:24;27959:4;27940:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;27968:18;:22;27987:2;27968:22;;;;;;;;;;;;;;;;;;;;;;;;;27940:50;27936:98;;;28017:5;28007:15;;27936:98;28044:41;28059:4;28065:2;28069:6;28077:7;28044:14;:41::i;:::-;26496:1597;;;;;;:::o;2186:192::-;2272:7;2305:1;2300;:6;;2308:12;2292:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2332:9;2348:1;2344;:5;;;;:::i;:::-;2332:17;;2369:1;2362:8;;;2186:192;;;;;:::o;24787:163::-;24828:7;24849:15;24866;24885:19;:17;:19::i;:::-;24848:56;;;;24922:20;24934:7;24922;:11;;:20;;;;:::i;:::-;24915:27;;;;24787:163;:::o;3584:132::-;3642:7;3669:39;3673:1;3676;3669:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3662:46;;3584:132;;;;:::o;1283:181::-;1341:7;1361:9;1377:1;1373;:5;;;;:::i;:::-;1361:17;;1402:1;1397;:6;;1389:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1455:1;1448:8;;;1283:181;;;;:::o;23897:392::-;23957:7;23966;23975;23995:12;24016:30;24029:7;24038;;24016:12;:30::i;:::-;23995:51;;24057:18;24078:36;24091:7;24100:13;;24078:12;:36::i;:::-;24057:57;;24125:23;24151:17;24163:4;24151:7;:11;;:17;;;;:::i;:::-;24125:43;;24197:31;24217:10;24197:15;:19;;:31;;;;:::i;:::-;24179:49;;24247:15;24264:4;24270:10;24239:42;;;;;;;;;23897:392;;;;;:::o;24297:482::-;24412:7;24421;24430;24450:15;24471:24;24483:11;24471:7;:11;;:24;;;;:::i;:::-;24450:45;;24506:12;24527:21;24536:11;24527:4;:8;;:21;;;;:::i;:::-;24506:42;;24559:18;24580:27;24595:11;24580:10;:14;;:27;;;;:::i;:::-;24559:48;;24618:23;24644:17;24656:4;24644:7;:11;;:17;;;;:::i;:::-;24618:43;;24690:31;24710:10;24690:15;:19;;:31;;;;:::i;:::-;24672:49;;24740:7;24749:15;24766:4;24732:39;;;;;;;;;;24297:482;;;;;;;;:::o;1747:136::-;1805:7;1832:43;1836:1;1839;1832:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1825:50;;1747:136;;;;:::o;2637:471::-;2695:7;2945:1;2940;:6;2936:47;;;2970:1;2963:8;;;;2936:47;2995:9;3011:1;3007;:5;;;;:::i;:::-;2995:17;;3040:1;3035;3031;:5;;;;:::i;:::-;:10;3023:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3099:1;3092:8;;;2637:471;;;;;:::o;28101:1286::-;17016:4;16996:17;;:24;;;;;;;;;;;;;;;;;;28233:12:::1;28253:27;28278:1;28253:20;:24;;:27;;;;:::i;:::-;28233:47;;28291:17;28311:30;28336:4;28311:20;:24;;:30;;;;:::i;:::-;28291:50;;28648:22;28673:21;28648:46;;28739:22;28756:4;28739:16;:22::i;:::-;28838:18;28859:41;28885:14;28859:21;:25;;:41;;;;:::i;:::-;28838:62;;28938:14;28964:53;29013:3;28964:44;28979:28;;28964:10;:14;;:44;;;;:::i;:::-;:48;;:53;;;;:::i;:::-;28938:79;;29028:23;29054:22;29069:6;29054:10;:14;;:22;;;;:::i;:::-;29028:48;;29100:1;29091:6;:10;29087:129;;;29126:10;;;;;;;;;;;29118:28;;:36;29147:6;29118:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;29174:30;29185:10;;;;;;;;;;;29197:6;29174:30;;;;;;;:::i;:::-;;;;;;;;29087:129;29265:40;29278:9;29289:15;29265:12;:40::i;:::-;29331:48;29346:4;29352:15;29369:9;29331:48;;;;;;;;:::i;:::-;;;;;;;;17031:1;;;;;;17063:5:::0;17043:17;;:25;;;;;;;;;;;;;;;;;;28101:1286;:::o;30520:1085::-;30627:22;30658:7;;30627:38;;30676:28;30707:13;;30676:44;;30746:7;30741:90;;30786:1;30770:7;:17;;;;30818:1;30802:13;:17;;;;30741:90;30855:11;:19;30867:6;30855:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;30879:11;:22;30891:9;30879:22;;;;;;;;;;;;;;;;;;;;;;;;;30878:23;30855:46;30851:605;;;30918:48;30940:6;30948:9;30959:6;30918:21;:48::i;:::-;30851:605;;;30991:11;:19;31003:6;30991:19;;;;;;;;;;;;;;;;;;;;;;;;;30990:20;:46;;;;;31014:11;:22;31026:9;31014:22;;;;;;;;;;;;;;;;;;;;;;;;;30990:46;30986:470;;;31053:46;31073:6;31081:9;31092:6;31053:19;:46::i;:::-;30986:470;;;31124:11;:19;31136:6;31124:19;;;;;;;;;;;;;;;;;;;;;;;;;31123:20;:47;;;;;31148:11;:22;31160:9;31148:22;;;;;;;;;;;;;;;;;;;;;;;;;31147:23;31123:47;31119:337;;;31187:44;31205:6;31213:9;31224:6;31187:17;:44::i;:::-;31119:337;;;31255:11;:19;31267:6;31255:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;31278:11;:22;31290:9;31278:22;;;;;;;;;;;;;;;;;;;;;;;;;31255:45;31251:205;;;31317:48;31339:6;31347:9;31358:6;31317:21;:48::i;:::-;31251:205;;;31400:44;31418:6;31426:9;31437:6;31400:17;:44::i;:::-;31251:205;31119:337;30986:470;30851:605;31481:7;31476:122;;31521:14;31505:7;:30;;;;31566:20;31550:13;:36;;;;31476:122;30520:1085;;;;;;:::o;24958:561::-;25008:7;25017;25037:15;25055:7;;25037:25;;25073:15;25091:7;;25073:25;;25120:9;25115:289;25139:9;:16;;;;25135:1;:20;25115:289;;;25205:7;25181;:21;25189:9;25199:1;25189:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25181:21;;;;;;;;;;;;;;;;:31;:66;;;;25240:7;25216;:21;25224:9;25234:1;25224:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25216:21;;;;;;;;;;;;;;;;:31;25181:66;25177:97;;;25257:7;;25266;;25249:25;;;;;;;;;25177:97;25299:34;25311:7;:21;25319:9;25329:1;25319:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25311:21;;;;;;;;;;;;;;;;25299:7;:11;;:34;;;;:::i;:::-;25289:44;;25358:34;25370:7;:21;25378:9;25388:1;25378:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25370:21;;;;;;;;;;;;;;;;25358:7;:11;;:34;;;;:::i;:::-;25348:44;;25157:3;;;;;:::i;:::-;;;;25115:289;;;;25428:20;25440:7;;25428;;:11;;:20;;;;:::i;:::-;25418:7;:30;25414:61;;;25458:7;;25467;;25450:25;;;;;;;;25414:61;25494:7;25503;25486:25;;;;;;24958:561;;;:::o;4212:278::-;4298:7;4330:1;4326;:5;4333:12;4318:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4357:9;4373:1;4369;:5;;;;:::i;:::-;4357:17;;4481:1;4474:8;;;4212:278;;;;;:::o;25876:132::-;25949:7;25976:24;25996:3;25976:15;25987:3;25976:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;25969:31;;25876:132;;;;:::o;29393:592::-;29519:21;29557:1;29543:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29519:40;;29588:4;29570;29575:1;29570:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;29614:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29604:4;29609:1;29604:7;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;29650:63;29667:4;29682:16;;;;;;;;;;;29701:11;29650:8;:63::i;:::-;29752:16;;;;;;;;;;;:67;;;29834:11;29860:1;29904:4;29931;29951:15;29752:225;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29393:592;;:::o;29991:521::-;30139:63;30156:4;30171:16;;;;;;;;;;;30190:11;30139:8;:63::i;:::-;30245:16;;;;;;;;;;;:32;;;30285:9;30318:4;30338:11;30364:1;30407;30458:4;30478:15;30245:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29991:521;;:::o;33786:716::-;33889:23;33914:12;33928:18;33950:20;33962:7;33950:11;:20::i;:::-;33888:82;;;;;;33981:19;34003:10;:8;:10::i;:::-;33981:32;;34025:15;34042:23;34067:12;34083:51;34095:7;34104:4;34110:10;34122:11;34083;:51::i;:::-;34024:110;;;;;;34165:28;34185:7;34165;:15;34173:6;34165:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;34147:7;:15;34155:6;34147:15;;;;;;;;;;;;;;;:46;;;;34222:28;34242:7;34222;:15;34230:6;34222:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;34204:7;:15;34212:6;34204:15;;;;;;;;;;;;;;;:46;;;;34282:39;34305:15;34282:7;:18;34290:9;34282:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;34261:7;:18;34269:9;34261:18;;;;;;;;;;;;;;;:60;;;;34342:58;34369:4;34376:10;34388:11;34342:18;:58::i;:::-;34411:23;34423:4;34429;34411:11;:23::i;:::-;34467:9;34450:44;;34459:6;34450:44;;;34478:15;34450:44;;;;;;:::i;:::-;;;;;;;;33786:716;;;;;;;;;;:::o;33058:720::-;33159:23;33184:12;33198:18;33220:20;33232:7;33220:11;:20::i;:::-;33158:82;;;;;;33251:19;33273:10;:8;:10::i;:::-;33251:32;;33295:15;33312:23;33337:12;33353:51;33365:7;33374:4;33380:10;33392:11;33353;:51::i;:::-;33294:110;;;;;;33435:28;33455:7;33435;:15;33443:6;33435:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;33417:7;:15;33425:6;33417:15;;;;;;;;;;;;;;;:46;;;;33495:39;33518:15;33495:7;:18;33503:9;33495:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;33474:7;:18;33482:9;33474:18;;;;;;;;;;;;;;;:60;;;;33566:39;33589:15;33566:7;:18;33574:9;33566:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;33545:7;:18;33553:9;33545:18;;;;;;;;;;;;;;;:60;;;;33618:58;33645:4;33652:10;33664:11;33618:18;:58::i;:::-;33687:23;33699:4;33705;33687:11;:23::i;:::-;33743:9;33726:44;;33735:6;33726:44;;;33754:15;33726:44;;;;;;:::i;:::-;;;;;;;;33058:720;;;;;;;;;;:::o;31613:650::-;31712:23;31737:12;31751:18;31773:20;31785:7;31773:11;:20::i;:::-;31711:82;;;;;;31804:19;31826:10;:8;:10::i;:::-;31804:32;;31848:15;31865:23;31890:12;31906:51;31918:7;31927:4;31933:10;31945:11;31906;:51::i;:::-;31847:110;;;;;;31991:28;32011:7;31991;:15;31999:6;31991:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;31970:7;:15;31978:6;31970:15;;;;;;;;;;;;;;;:49;;;;32051:39;32074:15;32051:7;:18;32059:9;32051:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;32030:7;:18;32038:9;32030:18;;;;;;;;;;;;;;;:60;;;;32103:58;32130:4;32137:10;32149:11;32103:18;:58::i;:::-;32172:23;32184:4;32190;32172:11;:23::i;:::-;32228:9;32211:44;;32220:6;32211:44;;;32239:15;32211:44;;;;;;:::i;:::-;;;;;;;;31613:650;;;;;;;;;;:::o;32271:779::-;32374:23;32399:12;32413:18;32435:20;32447:7;32435:11;:20::i;:::-;32373:82;;;;;;32466:19;32488:10;:8;:10::i;:::-;32466:32;;32510:15;32527:23;32552:12;32568:51;32580:7;32589:4;32595:10;32607:11;32568;:51::i;:::-;32509:110;;;;;;32650:28;32670:7;32650;:15;32658:6;32650:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;32632:7;:15;32640:6;32632:15;;;;;;;;;;;;;;;:46;;;;32707:28;32727:7;32707;:15;32715:6;32707:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;32689:7;:15;32697:6;32689:15;;;;;;;;;;;;;;;:46;;;;32767:39;32790:15;32767:7;:18;32775:9;32767:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;32746:7;:18;32754:9;32746:18;;;;;;;;;;;;;;;:60;;;;32838:39;32861:15;32838:7;:18;32846:9;32838:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;32817:7;:18;32825:9;32817:18;;;;;;;;;;;;;;;:60;;;;32890:58;32917:4;32924:10;32936:11;32890:18;:58::i;:::-;32959:23;32971:4;32977;32959:11;:23::i;:::-;33015:9;32998:44;;33007:6;32998:44;;;33026:15;32998:44;;;;;;:::i;:::-;;;;;;;;32271:779;;;;;;;;;;:::o;25531:333::-;25643:1;25632:7;:12;25628:29;;25648:7;;25628:29;25669:15;25687:24;25699:11;25687:7;:11;;:24;;;;:::i;:::-;25669:42;;25736:24;25752:7;25736;:11;25744:2;25736:11;;;;;;;;;;;;;;;;:15;;:24;;;;:::i;:::-;25722:7;:11;25730:2;25722:11;;;;;;;;;;;;;;;:38;;;;25775:11;:15;25787:2;25775:15;;;;;;;;;;;;;;;;;;;;;;;;;25771:86;;;25821:24;25837:7;25821;:11;25829:2;25821:11;;;;;;;;;;;;;;;;:15;;:24;;;;:::i;:::-;25807:7;:11;25815:2;25807:11;;;;;;;;;;;;;;;:38;;;;25771:86;25531:333;;;;;:::o;23739:150::-;23820:17;23832:4;23820:7;;:11;;:17;;;;:::i;:::-;23807:7;:30;;;;23861:20;23876:4;23861:10;;:14;;:20;;;;:::i;:::-;23848:10;:33;;;;23739:150;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;793:6;842:2;830:9;821:7;817:23;813:32;810:2;;;858:1;855;848:12;810:2;901:1;926:53;971:7;962:6;951:9;947:22;926:53;:::i;:::-;916:63;;872:117;800:196;;;;:::o;1002:284::-;1072:6;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:64;1261:7;1252:6;1241:9;1237:22;1205:64;:::i;:::-;1195:74;;1151:128;1079:207;;;;:::o;1292:407::-;1360:6;1368;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1433:1;1430;1423:12;1385:2;1476:1;1501:53;1546:7;1537:6;1526:9;1522:22;1501:53;:::i;:::-;1491:63;;1447:117;1603:2;1629:53;1674:7;1665:6;1654:9;1650:22;1629:53;:::i;:::-;1619:63;;1574:118;1375:324;;;;;:::o;1705:552::-;1782:6;1790;1798;1847:2;1835:9;1826:7;1822:23;1818:32;1815:2;;;1863:1;1860;1853:12;1815:2;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;2033:2;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2004:118;2161:2;2187:53;2232:7;2223:6;2212:9;2208:22;2187:53;:::i;:::-;2177:63;;2132:118;1805:452;;;;;:::o;2263:401::-;2328:6;2336;2385:2;2373:9;2364:7;2360:23;2356:32;2353:2;;;2401:1;2398;2391:12;2353:2;2444:1;2469:53;2514:7;2505:6;2494:9;2490:22;2469:53;:::i;:::-;2459:63;;2415:117;2571:2;2597:50;2639:7;2630:6;2619:9;2615:22;2597:50;:::i;:::-;2587:60;;2542:115;2343:321;;;;;:::o;2670:407::-;2738:6;2746;2795:2;2783:9;2774:7;2770:23;2766:32;2763:2;;;2811:1;2808;2801:12;2763:2;2854:1;2879:53;2924:7;2915:6;2904:9;2900:22;2879:53;:::i;:::-;2869:63;;2825:117;2981:2;3007:53;3052:7;3043:6;3032:9;3028:22;3007:53;:::i;:::-;2997:63;;2952:118;2753:324;;;;;:::o;3083:256::-;3139:6;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3204:1;3201;3194:12;3156:2;3247:1;3272:50;3314:7;3305:6;3294:9;3290:22;3272:50;:::i;:::-;3262:60;;3218:114;3146:193;;;;:::o;3345:262::-;3404:6;3453:2;3441:9;3432:7;3428:23;3424:32;3421:2;;;3469:1;3466;3459:12;3421:2;3512:1;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3483:117;3411:196;;;;:::o;3613:401::-;3678:6;3686;3735:2;3723:9;3714:7;3710:23;3706:32;3703:2;;;3751:1;3748;3741:12;3703:2;3794:1;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3765:117;3921:2;3947:50;3989:7;3980:6;3969:9;3965:22;3947:50;:::i;:::-;3937:60;;3892:115;3693:321;;;;;:::o;4020:596::-;4108:6;4116;4124;4173:2;4161:9;4152:7;4148:23;4144:32;4141:2;;;4189:1;4186;4179:12;4141:2;4232:1;4257:64;4313:7;4304:6;4293:9;4289:22;4257:64;:::i;:::-;4247:74;;4203:128;4370:2;4396:64;4452:7;4443:6;4432:9;4428:22;4396:64;:::i;:::-;4386:74;;4341:129;4509:2;4535:64;4591:7;4582:6;4571:9;4567:22;4535:64;:::i;:::-;4525:74;;4480:129;4131:485;;;;;:::o;4622:179::-;4691:10;4712:46;4754:3;4746:6;4712:46;:::i;:::-;4790:4;4785:3;4781:14;4767:28;;4702:99;;;;:::o;4807:108::-;4884:24;4902:5;4884:24;:::i;:::-;4879:3;4872:37;4862:53;;:::o;4921:118::-;5008:24;5026:5;5008:24;:::i;:::-;5003:3;4996:37;4986:53;;:::o;5075:732::-;5194:3;5223:54;5271:5;5223:54;:::i;:::-;5293:86;5372:6;5367:3;5293:86;:::i;:::-;5286:93;;5403:56;5453:5;5403:56;:::i;:::-;5482:7;5513:1;5498:284;5523:6;5520:1;5517:13;5498:284;;;5599:6;5593:13;5626:63;5685:3;5670:13;5626:63;:::i;:::-;5619:70;;5712:60;5765:6;5712:60;:::i;:::-;5702:70;;5558:224;5545:1;5542;5538:9;5533:14;;5498:284;;;5502:14;5798:3;5791:10;;5199:608;;;;;;;:::o;5813:109::-;5894:21;5909:5;5894:21;:::i;:::-;5889:3;5882:34;5872:50;;:::o;5928:185::-;6042:64;6100:5;6042:64;:::i;:::-;6037:3;6030:77;6020:93;;:::o;6119:147::-;6214:45;6253:5;6214:45;:::i;:::-;6209:3;6202:58;6192:74;;:::o;6272:364::-;6360:3;6388:39;6421:5;6388:39;:::i;:::-;6443:71;6507:6;6502:3;6443:71;:::i;:::-;6436:78;;6523:52;6568:6;6563:3;6556:4;6549:5;6545:16;6523:52;:::i;:::-;6600:29;6622:6;6600:29;:::i;:::-;6595:3;6591:39;6584:46;;6364:272;;;;;:::o;6642:366::-;6784:3;6805:67;6869:2;6864:3;6805:67;:::i;:::-;6798:74;;6881:93;6970:3;6881:93;:::i;:::-;6999:2;6994:3;6990:12;6983:19;;6788:220;;;:::o;7014:366::-;7156:3;7177:67;7241:2;7236:3;7177:67;:::i;:::-;7170:74;;7253:93;7342:3;7253:93;:::i;:::-;7371:2;7366:3;7362:12;7355:19;;7160:220;;;:::o;7386:366::-;7528:3;7549:67;7613:2;7608:3;7549:67;:::i;:::-;7542:74;;7625:93;7714:3;7625:93;:::i;:::-;7743:2;7738:3;7734:12;7727:19;;7532:220;;;:::o;7758:366::-;7900:3;7921:67;7985:2;7980:3;7921:67;:::i;:::-;7914:74;;7997:93;8086:3;7997:93;:::i;:::-;8115:2;8110:3;8106:12;8099:19;;7904:220;;;:::o;8130:366::-;8272:3;8293:67;8357:2;8352:3;8293:67;:::i;:::-;8286:74;;8369:93;8458:3;8369:93;:::i;:::-;8487:2;8482:3;8478:12;8471:19;;8276:220;;;:::o;8502:366::-;8644:3;8665:67;8729:2;8724:3;8665:67;:::i;:::-;8658:74;;8741:93;8830:3;8741:93;:::i;:::-;8859:2;8854:3;8850:12;8843:19;;8648:220;;;:::o;8874:366::-;9016:3;9037:67;9101:2;9096:3;9037:67;:::i;:::-;9030:74;;9113:93;9202:3;9113:93;:::i;:::-;9231:2;9226:3;9222:12;9215:19;;9020:220;;;:::o;9246:366::-;9388:3;9409:67;9473:2;9468:3;9409:67;:::i;:::-;9402:74;;9485:93;9574:3;9485:93;:::i;:::-;9603:2;9598:3;9594:12;9587:19;;9392:220;;;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9764:220;;;:::o;9990:366::-;10132:3;10153:67;10217:2;10212:3;10153:67;:::i;:::-;10146:74;;10229:93;10318:3;10229:93;:::i;:::-;10347:2;10342:3;10338:12;10331:19;;10136:220;;;:::o;10362:366::-;10504:3;10525:67;10589:2;10584:3;10525:67;:::i;:::-;10518:74;;10601:93;10690:3;10601:93;:::i;:::-;10719:2;10714:3;10710:12;10703:19;;10508:220;;;:::o;10734:366::-;10876:3;10897:67;10961:2;10956:3;10897:67;:::i;:::-;10890:74;;10973:93;11062:3;10973:93;:::i;:::-;11091:2;11086:3;11082:12;11075:19;;10880:220;;;:::o;11106:366::-;11248:3;11269:67;11333:2;11328:3;11269:67;:::i;:::-;11262:74;;11345:93;11434:3;11345:93;:::i;:::-;11463:2;11458:3;11454:12;11447:19;;11252:220;;;:::o;11478:366::-;11620:3;11641:67;11705:2;11700:3;11641:67;:::i;:::-;11634:74;;11717:93;11806:3;11717:93;:::i;:::-;11835:2;11830:3;11826:12;11819:19;;11624:220;;;:::o;11850:366::-;11992:3;12013:67;12077:2;12072:3;12013:67;:::i;:::-;12006:74;;12089:93;12178:3;12089:93;:::i;:::-;12207:2;12202:3;12198:12;12191:19;;11996:220;;;:::o;12222:366::-;12364:3;12385:67;12449:2;12444:3;12385:67;:::i;:::-;12378:74;;12461:93;12550:3;12461:93;:::i;:::-;12579:2;12574:3;12570:12;12563:19;;12368:220;;;:::o;12594:118::-;12681:24;12699:5;12681:24;:::i;:::-;12676:3;12669:37;12659:53;;:::o;12718:112::-;12801:22;12817:5;12801:22;:::i;:::-;12796:3;12789:35;12779:51;;:::o;12836:222::-;12929:4;12967:2;12956:9;12952:18;12944:26;;12980:71;13048:1;13037:9;13033:17;13024:6;12980:71;:::i;:::-;12934:124;;;;:::o;13064:332::-;13185:4;13223:2;13212:9;13208:18;13200:26;;13236:71;13304:1;13293:9;13289:17;13280:6;13236:71;:::i;:::-;13317:72;13385:2;13374:9;13370:18;13361:6;13317:72;:::i;:::-;13190:206;;;;;:::o;13402:807::-;13651:4;13689:3;13678:9;13674:19;13666:27;;13703:71;13771:1;13760:9;13756:17;13747:6;13703:71;:::i;:::-;13784:72;13852:2;13841:9;13837:18;13828:6;13784:72;:::i;:::-;13866:80;13942:2;13931:9;13927:18;13918:6;13866:80;:::i;:::-;13956;14032:2;14021:9;14017:18;14008:6;13956:80;:::i;:::-;14046:73;14114:3;14103:9;14099:19;14090:6;14046:73;:::i;:::-;14129;14197:3;14186:9;14182:19;14173:6;14129:73;:::i;:::-;13656:553;;;;;;;;;:::o;14215:210::-;14302:4;14340:2;14329:9;14325:18;14317:26;;14353:65;14415:1;14404:9;14400:17;14391:6;14353:65;:::i;:::-;14307:118;;;;:::o;14431:276::-;14551:4;14589:2;14578:9;14574:18;14566:26;;14602:98;14697:1;14686:9;14682:17;14673:6;14602:98;:::i;:::-;14556:151;;;;:::o;14713:313::-;14826:4;14864:2;14853:9;14849:18;14841:26;;14913:9;14907:4;14903:20;14899:1;14888:9;14884:17;14877:47;14941:78;15014:4;15005:6;14941:78;:::i;:::-;14933:86;;14831:195;;;;:::o;15032:419::-;15198:4;15236:2;15225:9;15221:18;15213:26;;15285:9;15279:4;15275:20;15271:1;15260:9;15256:17;15249:47;15313:131;15439:4;15313:131;:::i;:::-;15305:139;;15203:248;;;:::o;15457:419::-;15623:4;15661:2;15650:9;15646:18;15638:26;;15710:9;15704:4;15700:20;15696:1;15685:9;15681:17;15674:47;15738:131;15864:4;15738:131;:::i;:::-;15730:139;;15628:248;;;:::o;15882:419::-;16048:4;16086:2;16075:9;16071:18;16063:26;;16135:9;16129:4;16125:20;16121:1;16110:9;16106:17;16099:47;16163:131;16289:4;16163:131;:::i;:::-;16155:139;;16053:248;;;:::o;16307:419::-;16473:4;16511:2;16500:9;16496:18;16488:26;;16560:9;16554:4;16550:20;16546:1;16535:9;16531:17;16524:47;16588:131;16714:4;16588:131;:::i;:::-;16580:139;;16478:248;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16903:248;;;:::o;17157:419::-;17323:4;17361:2;17350:9;17346:18;17338:26;;17410:9;17404:4;17400:20;17396:1;17385:9;17381:17;17374:47;17438:131;17564:4;17438:131;:::i;:::-;17430:139;;17328:248;;;:::o;17582:419::-;17748:4;17786:2;17775:9;17771:18;17763:26;;17835:9;17829:4;17825:20;17821:1;17810:9;17806:17;17799:47;17863:131;17989:4;17863:131;:::i;:::-;17855:139;;17753:248;;;:::o;18007:419::-;18173:4;18211:2;18200:9;18196:18;18188:26;;18260:9;18254:4;18250:20;18246:1;18235:9;18231:17;18224:47;18288:131;18414:4;18288:131;:::i;:::-;18280:139;;18178:248;;;:::o;18432:419::-;18598:4;18636:2;18625:9;18621:18;18613:26;;18685:9;18679:4;18675:20;18671:1;18660:9;18656:17;18649:47;18713:131;18839:4;18713:131;:::i;:::-;18705:139;;18603:248;;;:::o;18857:419::-;19023:4;19061:2;19050:9;19046:18;19038:26;;19110:9;19104:4;19100:20;19096:1;19085:9;19081:17;19074:47;19138:131;19264:4;19138:131;:::i;:::-;19130:139;;19028:248;;;:::o;19282:419::-;19448:4;19486:2;19475:9;19471:18;19463:26;;19535:9;19529:4;19525:20;19521:1;19510:9;19506:17;19499:47;19563:131;19689:4;19563:131;:::i;:::-;19555:139;;19453:248;;;:::o;19707:419::-;19873:4;19911:2;19900:9;19896:18;19888:26;;19960:9;19954:4;19950:20;19946:1;19935:9;19931:17;19924:47;19988:131;20114:4;19988:131;:::i;:::-;19980:139;;19878:248;;;:::o;20132:419::-;20298:4;20336:2;20325:9;20321:18;20313:26;;20385:9;20379:4;20375:20;20371:1;20360:9;20356:17;20349:47;20413:131;20539:4;20413:131;:::i;:::-;20405:139;;20303:248;;;:::o;20557:419::-;20723:4;20761:2;20750:9;20746:18;20738:26;;20810:9;20804:4;20800:20;20796:1;20785:9;20781:17;20774:47;20838:131;20964:4;20838:131;:::i;:::-;20830:139;;20728:248;;;:::o;20982:419::-;21148:4;21186:2;21175:9;21171:18;21163:26;;21235:9;21229:4;21225:20;21221:1;21210:9;21206:17;21199:47;21263:131;21389:4;21263:131;:::i;:::-;21255:139;;21153:248;;;:::o;21407:419::-;21573:4;21611:2;21600:9;21596:18;21588:26;;21660:9;21654:4;21650:20;21646:1;21635:9;21631:17;21624:47;21688:131;21814:4;21688:131;:::i;:::-;21680:139;;21578:248;;;:::o;21832:222::-;21925:4;21963:2;21952:9;21948:18;21940:26;;21976:71;22044:1;22033:9;22029:17;22020:6;21976:71;:::i;:::-;21930:124;;;;:::o;22060:831::-;22323:4;22361:3;22350:9;22346:19;22338:27;;22375:71;22443:1;22432:9;22428:17;22419:6;22375:71;:::i;:::-;22456:80;22532:2;22521:9;22517:18;22508:6;22456:80;:::i;:::-;22583:9;22577:4;22573:20;22568:2;22557:9;22553:18;22546:48;22611:108;22714:4;22705:6;22611:108;:::i;:::-;22603:116;;22729:72;22797:2;22786:9;22782:18;22773:6;22729:72;:::i;:::-;22811:73;22879:3;22868:9;22864:19;22855:6;22811:73;:::i;:::-;22328:563;;;;;;;;:::o;22897:442::-;23046:4;23084:2;23073:9;23069:18;23061:26;;23097:71;23165:1;23154:9;23150:17;23141:6;23097:71;:::i;:::-;23178:72;23246:2;23235:9;23231:18;23222:6;23178:72;:::i;:::-;23260;23328:2;23317:9;23313:18;23304:6;23260:72;:::i;:::-;23051:288;;;;;;:::o;23345:214::-;23434:4;23472:2;23461:9;23457:18;23449:26;;23485:67;23549:1;23538:9;23534:17;23525:6;23485:67;:::i;:::-;23439:120;;;;:::o;23565:132::-;23632:4;23655:3;23647:11;;23685:4;23680:3;23676:14;23668:22;;23637:60;;;:::o;23703:114::-;23770:6;23804:5;23798:12;23788:22;;23777:40;;;:::o;23823:99::-;23875:6;23909:5;23903:12;23893:22;;23882:40;;;:::o;23928:113::-;23998:4;24030;24025:3;24021:14;24013:22;;24003:38;;;:::o;24047:184::-;24146:11;24180:6;24175:3;24168:19;24220:4;24215:3;24211:14;24196:29;;24158:73;;;;:::o;24237:169::-;24321:11;24355:6;24350:3;24343:19;24395:4;24390:3;24386:14;24371:29;;24333:73;;;;:::o;24412:305::-;24452:3;24471:20;24489:1;24471:20;:::i;:::-;24466:25;;24505:20;24523:1;24505:20;:::i;:::-;24500:25;;24659:1;24591:66;24587:74;24584:1;24581:81;24578:2;;;24665:18;;:::i;:::-;24578:2;24709:1;24706;24702:9;24695:16;;24456:261;;;;:::o;24723:185::-;24763:1;24780:20;24798:1;24780:20;:::i;:::-;24775:25;;24814:20;24832:1;24814:20;:::i;:::-;24809:25;;24853:1;24843:2;;24858:18;;:::i;:::-;24843:2;24900:1;24897;24893:9;24888:14;;24765:143;;;;:::o;24914:348::-;24954:7;24977:20;24995:1;24977:20;:::i;:::-;24972:25;;25011:20;25029:1;25011:20;:::i;:::-;25006:25;;25199:1;25131:66;25127:74;25124:1;25121:81;25116:1;25109:9;25102:17;25098:105;25095:2;;;25206:18;;:::i;:::-;25095:2;25254:1;25251;25247:9;25236:20;;24962:300;;;;:::o;25268:191::-;25308:4;25328:20;25346:1;25328:20;:::i;:::-;25323:25;;25362:20;25380:1;25362:20;:::i;:::-;25357:25;;25401:1;25398;25395:8;25392:2;;;25406:18;;:::i;:::-;25392:2;25451:1;25448;25444:9;25436:17;;25313:146;;;;:::o;25465:96::-;25502:7;25531:24;25549:5;25531:24;:::i;:::-;25520:35;;25510:51;;;:::o;25567:90::-;25601:7;25644:5;25637:13;25630:21;25619:32;;25609:48;;;:::o;25663:126::-;25700:7;25740:42;25733:5;25729:54;25718:65;;25708:81;;;:::o;25795:77::-;25832:7;25861:5;25850:16;;25840:32;;;:::o;25878:86::-;25913:7;25953:4;25946:5;25942:16;25931:27;;25921:43;;;:::o;25970:180::-;26047:9;26080:64;26138:5;26080:64;:::i;:::-;26067:77;;26057:93;;;:::o;26156:140::-;26233:9;26266:24;26284:5;26266:24;:::i;:::-;26253:37;;26243:53;;;:::o;26302:121::-;26360:9;26393:24;26411:5;26393:24;:::i;:::-;26380:37;;26370:53;;;:::o;26429:307::-;26497:1;26507:113;26521:6;26518:1;26515:13;26507:113;;;26606:1;26601:3;26597:11;26591:18;26587:1;26582:3;26578:11;26571:39;26543:2;26540:1;26536:10;26531:15;;26507:113;;;26638:6;26635:1;26632:13;26629:2;;;26718:1;26709:6;26704:3;26700:16;26693:27;26629:2;26478:258;;;;:::o;26742:320::-;26786:6;26823:1;26817:4;26813:12;26803:22;;26870:1;26864:4;26860:12;26891:18;26881:2;;26947:4;26939:6;26935:17;26925:27;;26881:2;27009;27001:6;26998:14;26978:18;26975:38;26972:2;;;27028:18;;:::i;:::-;26972:2;26793:269;;;;:::o;27068:233::-;27107:3;27130:24;27148:5;27130:24;:::i;:::-;27121:33;;27176:66;27169:5;27166:77;27163:2;;;27246:18;;:::i;:::-;27163:2;27293:1;27286:5;27282:13;27275:20;;27111:190;;;:::o;27307:180::-;27355:77;27352:1;27345:88;27452:4;27449:1;27442:15;27476:4;27473:1;27466:15;27493:180;27541:77;27538:1;27531:88;27638:4;27635:1;27628:15;27662:4;27659:1;27652:15;27679:180;27727:77;27724:1;27717:88;27824:4;27821:1;27814:15;27848:4;27845:1;27838:15;27865:102;27906:6;27957:2;27953:7;27948:2;27941:5;27937:14;27933:28;27923:38;;27913:54;;;:::o;27973:224::-;28113:34;28109:1;28101:6;28097:14;28090:58;28182:7;28177:2;28169:6;28165:15;28158:32;28079:118;:::o;28203:174::-;28343:26;28339:1;28331:6;28327:14;28320:50;28309:68;:::o;28383:223::-;28523:34;28519:1;28511:6;28507:14;28500:58;28592:6;28587:2;28579:6;28575:15;28568:31;28489:117;:::o;28612:229::-;28752:34;28748:1;28740:6;28736:14;28729:58;28821:12;28816:2;28808:6;28804:15;28797:37;28718:123;:::o;28847:225::-;28987:34;28983:1;28975:6;28971:14;28964:58;29056:8;29051:2;29043:6;29039:15;29032:33;28953:119;:::o;29078:177::-;29218:29;29214:1;29206:6;29202:14;29195:53;29184:71;:::o;29261:177::-;29401:29;29397:1;29389:6;29385:14;29378:53;29367:71;:::o;29444:181::-;29584:33;29580:1;29572:6;29568:14;29561:57;29550:75;:::o;29631:227::-;29771:34;29767:1;29759:6;29755:14;29748:58;29840:10;29835:2;29827:6;29823:15;29816:35;29737:121;:::o;29864:220::-;30004:34;30000:1;29992:6;29988:14;29981:58;30073:3;30068:2;30060:6;30056:15;30049:28;29970:114;:::o;30090:182::-;30230:34;30226:1;30218:6;30214:14;30207:58;30196:76;:::o;30278:228::-;30418:34;30414:1;30406:6;30402:14;30395:58;30487:11;30482:2;30474:6;30470:15;30463:36;30384:122;:::o;30512:222::-;30652:34;30648:1;30640:6;30636:14;30629:58;30721:5;30716:2;30708:6;30704:15;30697:30;30618:116;:::o;30740:231::-;30880:34;30876:1;30868:6;30864:14;30857:58;30949:14;30944:2;30936:6;30932:15;30925:39;30846:125;:::o;30977:221::-;31117:34;31113:1;31105:6;31101:14;31094:58;31186:4;31181:2;31173:6;31169:15;31162:29;31083:115;:::o;31204:222::-;31344:34;31340:1;31332:6;31328:14;31321:58;31413:5;31408:2;31400:6;31396:15;31389:30;31310:116;:::o;31432:122::-;31505:24;31523:5;31505:24;:::i;:::-;31498:5;31495:35;31485:2;;31544:1;31541;31534:12;31485:2;31475:79;:::o;31560:116::-;31630:21;31645:5;31630:21;:::i;:::-;31623:5;31620:32;31610:2;;31666:1;31663;31656:12;31610:2;31600:76;:::o;31682:122::-;31755:24;31773:5;31755:24;:::i;:::-;31748:5;31745:35;31735:2;;31794:1;31791;31784:12;31735:2;31725:79;:::o

Swarm Source

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