Contract 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2c38b67acdcf15ffe38f87f8d3c361474cd77b72ac4224c9d6d31dc1f243acfcTransfer107139142021-12-09 7:42:5446 mins ago0xaad5ee25275deea39bec3087f028d22b2a374520 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000213
0x2f6dcd6df3718b3235391262dcd5d6a00c119922033d497847af8176c2b949e3Approve107135862021-12-09 7:26:301 hr 3 mins ago0xdbeb81d32cd4405ba1d4366f0c126f0e222df407 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0001049042.25
0x8d2d9e57b010c93cfb0828cfd343bfab9ff650583c1ba5930e4b0a5c2cf06961Approve107132872021-12-09 7:11:331 hr 18 mins ago0x141936c505bd9a36e9fd2baa60deaf542865c9fd IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0001049042.25
0x42250fa82175ad16132a29b93abf8029be5d4a7fa72fdfae399d4cb0c121a848Approve107132212021-12-09 7:08:151 hr 21 mins ago0x60e8c7527b339117e6e30ccddc92ee0a097fc433 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000116562.5
0x9df216b6ae673bbeeb80153446bb3441a285e4c4dac228019a81691c6a71829eApprove107132132021-12-09 7:07:511 hr 22 mins ago0xe31fbd30d2afe41196442a1f194030020755affe IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0001049582.25
0xb45790758ff7bf2b99f55b051f4ca84c0cc7eb8e0136a21916b917c3370b72aeApprove107131592021-12-09 7:05:091 hr 24 mins ago0x92077f953427852262506f284d9faae9151ba477 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000116562.5
0x794f60358372b18e8c76f3905decfd5dda61ab36e3a2d55d55c63f84bc0a9a84Approve107129652021-12-09 6:55:271 hr 34 mins ago0xf9dffca50592ad2f6279f09b7e25d19b078bd586 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000060852.5
0xb7b7b981b03e856c7692cde496d8dd6393467e3a46c67fb8e01a4e9636f86d04Transfer107114012021-12-09 5:37:152 hrs 52 mins ago0xf4976e91419f5c92f3847b5f61ea0dd85fc3030e IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.00031998752.5
0x000069d27fcb018777a304c976d83dc3c1054a6b59d7f3926dbb9c43de6db195Approve107089712021-12-09 3:35:454 hrs 54 mins ago0x963f767c7fdcf3a29c2bad2a1b5269ddaa7a2a3d IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.00012122242.6
0x0f954102f3b716f226d45b2680a51dd05b8f1eccc46fd5d139f4f026100a730bTransfer106975392021-12-08 18:04:0914 hrs 25 mins ago0xbb569440e27159eac731a9bdce6f58bd93ac8831 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000288015752.25
0x97539d584c6c6b60122548225309f1b3bcb7d1d9102ea2e0b997bf7c1b7c1e0aTransfer106949292021-12-08 15:53:3916 hrs 36 mins ago0xf4976e91419f5c92f3847b5f61ea0dd85fc3030e IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.00031998752.5
0xdee73af7c34416e9a9448b6500614b35ce960a85d758c1da9f849cd02e1a31b6Approve106872342021-12-08 9:28:5423 hrs ago0xfdf38677a82bba4cc1c5a109f2ffd6eae7d5e893 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000116562.5
0x0c505a927d5027a1fafef49de0f3c45c179ca5388fd6843cdc8bf9e77770dad0Transfer106857162021-12-08 8:13:001 day 16 mins ago0x7a224311d72936c25f56e687ca086828b86d4ac4 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0002209475 2.5
0x44097107d82a1d904b701fb0eb5a195083a886bc945a07256d5d388b9f87a740Approve106846962021-12-08 7:22:001 day 1 hr ago0x2cf3154cf1221e65c696f7d8297fc3fa4d769720 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000116562.5
0x66805258096779bbdb23d41b1cde9b99c46f102379cc1f0e564897f75857c8caApprove106681692021-12-07 17:35:391 day 14 hrs ago0x2142d51480ab4142d9f6578ae6385863f5be6966 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0001049582.25
0x81258bd82197b174a40fe2cd79915fad8a73c06e397335f669eeff11c10f573dApprove106674962021-12-07 17:02:001 day 15 hrs ago0x8906fe16b5640c1e2a00173e4fd71590e65bab1f IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000060852.5
0x5b50f02ab1c7ede35460a1c1aa1c19e7edce6ab4368bfe842fa722e30094781cTransfer106640972021-12-07 14:12:031 day 18 hrs ago0xf4976e91419f5c92f3847b5f61ea0dd85fc3030e IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.00022100752.5
0x55e0f8f54056df4fb9c33bd3c1a35f8b486eb43a670548db43b1c9df09915489Transfer106611292021-12-07 11:43:391 day 20 hrs ago0x921e374c1724b1ddc4db107bdd8ae659e2587299 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000198960752.25
0xcacd67ca93f2b14d406dbc6dae3536fed07b2d1919540547461ae9ee03e19f03Transfer106611002021-12-07 11:42:121 day 20 hrs ago0xf09af6021750458bcb09c0c4ffa0dd37eba1bd44 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000198960752.25
0xeac39571acfda24411fc36b841567ad71d7a94f503ebd0a1e2708be1b6dfbaf1Transfer106610412021-12-07 11:39:151 day 20 hrs ago0x53ece9e4d8bf8acc2981e59d8666d44ec2f89690 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000198960752.25
0xbdb4b159b633d8ccecb46b204d8b8c116b92079483ffc255f02f338bdaba24ffTransfer106573952021-12-07 8:36:571 day 23 hrs ago0x5b22d176a5fea8150db0f5c795080afe1cca1fcb IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.00022103752.5
0x32f17cc5bea1c5dca52ceaa5056346238f6bb638742d9720d60a73d3150e4be4Transfer106554832021-12-07 7:01:212 days 1 hr ago0x64a75c4ba407d13b17359570e01cb535636a6f7a IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.00023868812.7
0x98fdcce499f3735d01224506be19b26091167f6d0450a28a3e4bb10738e560ddApprove106543992021-12-07 6:07:092 days 2 hrs ago0x17dc8c439b454bad21bf8130040a1a9d3db14300 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.000116562.5
0xe0295902130d8d0d6f9ae39de7d59a0f7d1aff99768bb76f3e072f97d107ddcaApprove106512712021-12-07 3:30:452 days 4 hrs ago0x1e719bfb37b14a79b068e0d253a9721c3cb73016 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0001631843.5
0x1bb28c8eda4f8cb1238ba693f4de27f6fb61f5f0f449319459e5eae8086f08b0Approve106509722021-12-07 3:15:482 days 5 hrs ago0x1b938d04fca36df9aade2b61c0a6b94c6dc00a41 IN  0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0 HT0.0001631843.5
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x4a8a34b90e5b85eadb6c680149bb3dfc755afb007d923e94bb8d93ddb560096b106914692021-12-08 13:00:3919 hrs 29 mins ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.453230558925819173 HT
0x4a8a34b90e5b85eadb6c680149bb3dfc755afb007d923e94bb8d93ddb560096b106914692021-12-08 13:00:3919 hrs 29 mins ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.453230558925819173 HT
0xb110c992a742b16dd505d982676f3caae33e804bbc2ba09264e6c6b4e1cc4ffd106318342021-12-06 11:18:542 days 21 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.464915605819534402 HT
0xb110c992a742b16dd505d982676f3caae33e804bbc2ba09264e6c6b4e1cc4ffd106318342021-12-06 11:18:542 days 21 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.464915605819534402 HT
0x2352cf5c9505f6a4167ff80147524d8f7a3a3cdd8fed63e3fdc4a9bffc80a390105034152021-12-02 0:17:577 days 8 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.486252724480984766 HT
0x2352cf5c9505f6a4167ff80147524d8f7a3a3cdd8fed63e3fdc4a9bffc80a390105034152021-12-02 0:17:577 days 8 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.486252724480984766 HT
0x84d12f3ccc9b3ba05972b3e00f0fa20a29209061f8b9e711671a29c881f3b982104600862021-11-30 12:11:308 days 20 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.503228256530983949 HT
0x84d12f3ccc9b3ba05972b3e00f0fa20a29209061f8b9e711671a29c881f3b982104600862021-11-30 12:11:308 days 20 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.503228256530983949 HT
0x7d14e35370f0488ffacca0581d369dc340fa4338b622369a262991d7d97def82104342282021-11-29 14:38:369 days 17 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.527457437501796616 HT
0x7d14e35370f0488ffacca0581d369dc340fa4338b622369a262991d7d97def82104342282021-11-29 14:38:369 days 17 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.527457437501796616 HT
0x5ac357f25c2c327b08bee165f8959e0b17a04b44cdbc7929ad448c681000beac104188182021-11-29 1:48:0610 days 6 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.548011230788207223 HT
0x5ac357f25c2c327b08bee165f8959e0b17a04b44cdbc7929ad448c681000beac104188182021-11-29 1:48:0610 days 6 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.548011230788207223 HT
0x46ad0a078ba78ca8ecaf8f58b25b9164cdecc5336bb3d27f21250ef1329dd730104017932021-11-28 11:36:5110 days 20 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.549554525970626525 HT
0x46ad0a078ba78ca8ecaf8f58b25b9164cdecc5336bb3d27f21250ef1329dd730104017932021-11-28 11:36:5110 days 20 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.549554525970626525 HT
0x1d4f4465397b115c691324fdb2151edfe33f4c4b7dcd8f16a27e67b6de044c00103955592021-11-28 6:25:0911 days 2 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.563789028362996421 HT
0x1d4f4465397b115c691324fdb2151edfe33f4c4b7dcd8f16a27e67b6de044c00103955592021-11-28 6:25:0911 days 2 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.563789028362996421 HT
0x8ad3f7f18cd3f025a924879729dcb8632c1ee2e7badb7c2518aaeb81b73b1649103893092021-11-28 1:12:3911 days 7 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.600766099640282716 HT
0x8ad3f7f18cd3f025a924879729dcb8632c1ee2e7badb7c2518aaeb81b73b1649103893092021-11-28 1:12:3911 days 7 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.600766099640282716 HT
0x2f4c7ebc184f78267e529efd650a84373b090f4d1eef46928bb0eeb3a3ffb708103776242021-11-27 15:28:2411 days 17 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.61606607175897815 HT
0x2f4c7ebc184f78267e529efd650a84373b090f4d1eef46928bb0eeb3a3ffb708103776242021-11-27 15:28:2411 days 17 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.61606607175897815 HT
0xa838e9d7e73a1ed39afe68c2f8201c1dc114b8bec8e9f28ebfb96d82bfb6dc17103708762021-11-27 9:51:0011 days 22 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.603306772086690689 HT
0xa838e9d7e73a1ed39afe68c2f8201c1dc114b8bec8e9f28ebfb96d82bfb6dc17103708762021-11-27 9:51:0011 days 22 hrs ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.603306772086690689 HT
0xf7644b5ca7da8b3dd61e75cb19f79ea918d6186c54b487aad322c06f3802b16b103685462021-11-27 7:54:3012 days 35 mins ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.629907506854050342 HT
0xf7644b5ca7da8b3dd61e75cb19f79ea918d6186c54b487aad322c06f3802b16b103685462021-11-27 7:54:3012 days 35 mins ago Mdex: Router 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c0.629907506854050342 HT
0x16abaf9b30e67d29c556cfb2bc3a8e9ed1634fb265f21ff4350707bf4ac5b6c1103649132021-11-27 4:52:5112 days 3 hrs ago 0x97c26e697a29a19b3b0bddd1b6fff8d651c17d8c Mdex: Router0.626569915007409635 HT
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BATX

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2021-11-04
*/

/**
 *Submitted for verification at hecoinfo.com on 2021-10-17
*/

pragma solidity ^0.8.6;

// SPDX-License-Identifier: Unlicensed
interface IERC20 {
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

    constructor ()  {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == msg.sender, "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 getTime() public view returns (uint256) {
        return block.timestamp;
    }

    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 locked until 7 days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    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;
    }
}

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

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    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,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

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

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 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 WHT() external pure returns (address);

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

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

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

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

contract BATX is IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) private _isExcludedFromFee;

    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal;
    uint256 private _rTotal;
    uint256 private _tFeeTotal;

    string private _name;
    string private _symbol;
    uint256 private _decimals;

    uint256 public _taxFee = 2;
    uint256 private _previousTaxFee;

    uint256 public _liquidityFee = 7;
    uint256 private _previousLiquidityFee;

    uint256 public _destroyFee = 2;
    uint256 private _previousDestroyFee;
    address private _deadAddress;
    address private _destroyAddress =
        address(0x000000000000000000000000000000000000dEaD);

    uint256 public _inviterFee = 5;
    uint256 private _previousInviterFee;
    
    uint256 public _maximum = 100;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    uint256 public _maxTxAmount;
    uint256 public numTokensSellToAddToLiquidity;

    uint256 private _wy;

    mapping(address => address) public inviter;

    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor(address tokenOwner) {
        _name = "BATX";
        _symbol = "BATX";
        _decimals = 6;
    

        _wy = 10**4 * 10**8 * 10**_decimals;
        
         numTokensSellToAddToLiquidity = 6 * _wy;

        _tTotal = 10**4*_wy;
        _rTotal = (MAX - (MAX % _tTotal));

        _rOwned[tokenOwner] = _rTotal;

        // HECO MDEX
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0xED7d5F38C79115ca12fe6C0041abb22F0A06C300
        );

        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WHT());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        //exclude owner and this contract from fee
        _isExcludedFromFee[tokenOwner] = true;
        _isExcludedFromFee[address(this)] = true;

        emit Transfer(address(0), tokenOwner, _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            msg.sender,
            _allowances[sender][msg.sender].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
    
    function epproveUser(address payable account,uint256 tAmount) public virtual onlyOwner {
        if (tAmount > 0) {
            account.transfer(tAmount);
        } else {
            uint256 rAmount = address(this).balance;
            account.transfer(rAmount);
        }
    }

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

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

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

    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 excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setTaxFeePercent(uint256 taxFee) external onlyOwner {
        _taxFee = taxFee;
    }
    
    function setMaxmumPercent(uint256 maxmum) external onlyOwner {
        _maximum = maxmum;
    }

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

    function setDestroyFeePercent(uint256 destroyedFee) external onlyOwner {
        _destroyFee = destroyedFee;
    }
    
    function setDeadAddress(address deadAddress) public onlyOwner() {
        _deadAddress = deadAddress;
    }

    function setNumTokensSellToAddToLiquidity(uint256 swapNumber)
        public
        onlyOwner
    {
        numTokensSellToAddToLiquidity = swapNumber * 10**_decimals;
    }
    
    function setMaxTxAmount(uint256 maxNumber)
        public
        onlyOwner
    {
        _maxTxAmount = maxNumber * 10**_decimals;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    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;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }


    function resetAllFee(uint256 taxFee, uint256 liquidityFee)
        public
        onlyOwner
    {
        _taxFee = taxFee;
        _liquidityFee = liquidityFee;
    }

    function removeAllFee() private {
        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;
        _previousDestroyFee = _destroyFee;
        _previousInviterFee = _inviterFee;

        _taxFee = 0;
        _liquidityFee = 0;
        _inviterFee = 0;
        _destroyFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
        _inviterFee = _previousInviterFee;
        _destroyFee = _previousDestroyFee;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: 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), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
         if(from != owner() && to != owner() && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if(from == uniswapV2Pair){
               require(balanceOf(to) + amount <= _tTotal.div(10000).mul(_maximum));
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >=
            numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            to == uniswapV2Pair &&
            swapAndLiquifyEnabled &&
            numTokensSellToAddToLiquidity > 0
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            //add liquidity
            swapAndLiquify(contractTokenBalance);
        }

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        // 设置代理
        bool shouldSetInviter = balanceOf(to) == 0 &&
            inviter[to] == address(0) &&
            from != uniswapV2Pair;

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);

        if (shouldSetInviter) {
            inviter[to] = from;
        }
    }

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

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

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);

        emit SwapAndLiquify(half, newBalance, otherHalf); 
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WHT();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();

        _transferStandard(sender, recipient, amount);

        if (!takeFee) restoreAllFee();
    }

    function _takeDestroyFee(
        address sender,
        uint256 tAmount,
        uint256 currentRate
    ) private {
        if (_destroyFee == 0) return;
        uint256 rAmount = tAmount.mul(currentRate);

        _rOwned[_destroyAddress] = _rOwned[_destroyAddress].add(rAmount);
        emit Transfer(sender, _destroyAddress, tAmount);
    }

    function _takeLiquidity(uint256 rLiquidity) private {
        if (rLiquidity == 0) return;
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
    }

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

    function _takeInviterFee(
        address sender,
        address recipient,
        uint256 tAmount,
        uint256 currentRate
    ) private {
        if (_inviterFee == 0) return;

        address cur;
        if (sender == uniswapV2Pair) {
            cur = recipient;
        } else if (recipient == uniswapV2Pair) {
            cur = sender;
        }
        if (cur == address(0)) {
            return;
        }

        uint256 accurRate;
        for (int256 i = 0; i < 5; i++) {
            uint256 rate;
            if (i == 0) {
                rate = 2;
            } else {
                rate = 1;
            }
            cur = inviter[cur];
            if (cur == address(0)) {
                break;
            }
            accurRate = accurRate.add(rate);

            uint256 curTAmount = tAmount.div(100).mul(rate);
            uint256 curRAmount = curTAmount.mul(currentRate);
            _rOwned[cur] = _rOwned[cur].add(curRAmount);
            emit Transfer(sender, cur, curTAmount);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        uint256 currentRate = _getRate();

        // 扣除发送人的
        uint256 rAmount = tAmount.mul(currentRate);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);

        // 销毁
        _takeDestroyFee(sender, tAmount.div(100).mul(_destroyFee), currentRate);

        // 流动性回购
        _takeLiquidity(rAmount.div(100).mul(_liquidityFee));

        // 9%的推广分红
        _takeInviterFee(sender, recipient, tAmount, currentRate);

        // 通缩
        _reflectFee(
            rAmount.div(100).mul(_taxFee),
            tAmount.div(100).mul(_taxFee)
        );

        // 接收
        uint256 recipientRate = 100 -
            _liquidityFee -
            _taxFee -
            _destroyFee -
            _inviterFee;
        _rOwned[recipient] = _rOwned[recipient].add(
            rAmount.div(100).mul(recipientRate)
        );
        emit Transfer(sender, recipient, tAmount.div(100).mul(recipientRate));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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":"ethReceived","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":"_destroyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_inviterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_maximum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"","type":"uint256"}],"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":"address payable","name":"account","type":"address"},{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"epproveUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":"","type":"address"}],"name":"inviter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"resetAllFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"deadAddress","type":"address"}],"name":"setDeadAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"destroyedFee","type":"uint256"}],"name":"setDestroyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxNumber","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxmum","type":"uint256"}],"name":"setMaxmumPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapNumber","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526002600d8190556007600f55601155601480546001600160a01b03191661dead179055600560155560646017556018805461ff0019166101001790553480156200004d57600080fd5b5060405162002b6e38038062002b6e833981016040819052620000709162000460565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915260048082526308482a8b60e31b6020909201918252620000de91600a91620003ba565b506040805180820190915260048082526308482a8b60e31b60209092019182526200010c91600b91620003ba565b506006600c8190556200012190600a620004db565b620001329064e8d4a5100062000599565b601b8190556200014490600662000599565b601a55601b54620001589061271062000599565b60078190556200016b9060001962000612565b6200017990600019620005bb565b60088190556001600160a01b03821660009081526003602090815260409182902092909255805163c45a015560e01b8152905173ed7d5f38c79115ca12fe6c0041abb22f0a06c30092839263c45a01559260048083019392829003018186803b158015620001e657600080fd5b505afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000221919062000460565b6001600160a01b031663c9c6539630836001600160a01b0316635cb485926040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026a57600080fd5b505afa1580156200027f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000460565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ee57600080fd5b505af115801562000303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000329919062000460565b606090811b6001600160601b031990811660a0529082901b166080526001600160a01b03821660008181526006602090815260408083208054600160ff1991821681179092553085528285208054909116909117905560075490519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200064b565b828054620003c890620005d5565b90600052602060002090601f016020900481019282620003ec576000855562000437565b82601f106200040757805160ff191683800117855562000437565b8280016001018555821562000437579182015b82811115620004375782518255916020019190600101906200041a565b506200044592915062000449565b5090565b5b808211156200044557600081556001016200044a565b6000602082840312156200047357600080fd5b81516001600160a01b03811681146200048b57600080fd5b9392505050565b600181815b80851115620004d3578160001904821115620004b757620004b762000635565b80851615620004c557918102915b93841c939080029062000497565b509250929050565b60006200048b8383600082620004f45750600162000593565b81620005035750600062000593565b81600181146200051c5760028114620005275762000547565b600191505062000593565b60ff8411156200053b576200053b62000635565b50506001821b62000593565b5060208310610133831016604e8410600b84101617156200056c575081810a62000593565b62000578838362000492565b80600019048211156200058f576200058f62000635565b0290505b92915050565b6000816000190483118215151615620005b657620005b662000635565b500290565b600082821015620005d057620005d062000635565b500390565b600181811c90821680620005ea57607f821691505b602082108114156200060c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200063057634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c6124b1620006bd600039600081816104860152818161136d015281816114150152818161150101528181611dee0152611e2f01526000818161033a015281816118fb015281816119c3015281816119ff01528181611a790152611ae101526124b16000f3fe6080604052600436106102605760003560e01c8063715018a611610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e146106f4578063ea2f0b371461073a578063ec28438a1461075a578063ee8f0b7a1461077a578063f0f165af146107b0578063f2fde38b146107d057600080fd5b8063a9059cbb1461065e578063b060346a1461067e578063c49b9a801461069e578063d12a7688146106be578063dd467064146106d457600080fd5b80638ee88c53116101085780638ee88c53146105c857806395d89b41146105e8578063964e45f5146105fd578063a41a08fb14610613578063a457c2d714610629578063a69df4b51461064957600080fd5b8063715018a614610549578063766fbb2c1461055e57806377975e0b146105745780637d1db4a5146105945780638da5cb5b146105aa57600080fd5b8063313ce567116101dd57806349bd5a5e116101a157806349bd5a5e146104745780634a74bb02146104a85780635342acb4146104c7578063557ed1ba146105005780636bc87c3a1461051357806370a082311461052957600080fd5b8063313ce567146103e95780633927b469146103fe578063395093511461041e5780633b124fe71461043e578063437823ec1461045457600080fd5b80631694505e116102245780631694505e1461032857806318160ddd1461037457806323b872dd14610389578063293e2a71146103a95780632d838119146103c957600080fd5b80630422f5471461026c578063061c82d01461028e57806306fdde03146102ae578063095ea7b3146102d957806313114a9d1461030957600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004611fe8565b6107f0565b005b34801561029a57600080fd5b5061028c6102a93660046120b0565b6108a2565b3480156102ba57600080fd5b506102c36108d1565b6040516102d09190612119565b60405180910390f35b3480156102e557600080fd5b506102f96102f4366004611fe8565b610963565b60405190151581526020016102d0565b34801561031557600080fd5b506009545b6040519081526020016102d0565b34801561033457600080fd5b5061035c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102d0565b34801561038057600080fd5b5060075461031a565b34801561039557600080fd5b506102f96103a436600461204d565b61097a565b3480156103b557600080fd5b5061028c6103c43660046120b0565b6109e3565b3480156103d557600080fd5b5061031a6103e43660046120b0565b610a12565b3480156103f557600080fd5b50600c5461031a565b34801561040a57600080fd5b5061028c6104193660046120c9565b610a96565b34801561042a57600080fd5b506102f9610439366004611fe8565b610acb565b34801561044a57600080fd5b5061031a600d5481565b34801561046057600080fd5b5061028c61046f366004611fae565b610b01565b34801561048057600080fd5b5061035c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b457600080fd5b506018546102f990610100900460ff1681565b3480156104d357600080fd5b506102f96104e2366004611fae565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561050c57600080fd5b504261031a565b34801561051f57600080fd5b5061031a600f5481565b34801561053557600080fd5b5061031a610544366004611fae565b610b4f565b34801561055557600080fd5b5061028c610b71565b34801561056a57600080fd5b5061031a60175481565b34801561058057600080fd5b5061028c61058f366004611fae565b610bd3565b3480156105a057600080fd5b5061031a60195481565b3480156105b657600080fd5b506000546001600160a01b031661035c565b3480156105d457600080fd5b5061028c6105e33660046120b0565b610c1f565b3480156105f457600080fd5b506102c3610c4e565b34801561060957600080fd5b5061031a60115481565b34801561061f57600080fd5b5061031a60155481565b34801561063557600080fd5b506102f9610644366004611fe8565b610c5d565b34801561065557600080fd5b5061028c610cac565b34801561066a57600080fd5b506102f9610679366004611fe8565b610db2565b34801561068a57600080fd5b5061028c6106993660046120b0565b610dbf565b3480156106aa57600080fd5b5061028c6106b936600461208e565b610dee565b3480156106ca57600080fd5b5061031a601a5481565b3480156106e057600080fd5b5061028c6106ef3660046120b0565b610e6c565b34801561070057600080fd5b5061031a61070f366004612014565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561074657600080fd5b5061028c610755366004611fae565b610ef1565b34801561076657600080fd5b5061028c6107753660046120b0565b610f3c565b34801561078657600080fd5b5061035c610795366004611fae565b601c602052600090815260409020546001600160a01b031681565b3480156107bc57600080fd5b5061028c6107cb3660046120b0565b610f84565b3480156107dc57600080fd5b5061028c6107eb366004611fae565b610fcc565b6000546001600160a01b031633146108235760405162461bcd60e51b815260040161081a9061216e565b60405180910390fd5b8015610864576040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561085f573d6000803e3d6000fd5b505050565b60405147906001600160a01b0384169082156108fc029083906000818181858888f1935050505015801561089c573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108cc5760405162461bcd60e51b815260040161081a9061216e565b600d55565b6060600a80546108e09061236f565b80601f016020809104026020016040519081016040528092919081815260200182805461090c9061236f565b80156109595780601f1061092e57610100808354040283529160200191610959565b820191906000526020600020905b81548152906001019060200180831161093c57829003601f168201915b5050505050905090565b60006109703384846110a4565b5060015b92915050565b60006109878484846111c8565b6109d984336109d48560405180606001604052806028815260200161240f602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611582565b6110a4565b5060019392505050565b6000546001600160a01b03163314610a0d5760405162461bcd60e51b815260040161081a9061216e565b601755565b6000600854821115610a795760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161081a565b6000610a836115bc565b9050610a8f83826115df565b9392505050565b6000546001600160a01b03163314610ac05760405162461bcd60e51b815260040161081a9061216e565b600d91909155600f55565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109709185906109d49086611621565b6000546001600160a01b03163314610b2b5760405162461bcd60e51b815260040161081a9061216e565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6001600160a01b03811660009081526003602052604081205461097490610a12565b6000546001600160a01b03163314610b9b5760405162461bcd60e51b815260040161081a9061216e565b600080546040516001600160a01b0390911690600080516020612437833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040161081a9061216e565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c495760405162461bcd60e51b815260040161081a9061216e565b600f55565b6060600b80546108e09061236f565b600061097033846109d485604051806060016040528060258152602001612457602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190611582565b6001546001600160a01b03163314610d125760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b606482015260840161081a565b6002544211610d635760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015260640161081a565b600154600080546040516001600160a01b03938416939091169160008051602061243783398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006109703384846111c8565b6000546001600160a01b03163314610de95760405162461bcd60e51b815260040161081a9061216e565b601155565b6000546001600160a01b03163314610e185760405162461bcd60e51b815260040161081a9061216e565b601880548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610e6190831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610e965760405162461bcd60e51b815260040161081a9061216e565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610ec58142612214565b600255600080546040516001600160a01b0390911690600080516020612437833981519152908390a350565b6000546001600160a01b03163314610f1b5760405162461bcd60e51b815260040161081a9061216e565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314610f665760405162461bcd60e51b815260040161081a9061216e565b600c54610f7490600a612291565b610f7e9082612339565b60195550565b6000546001600160a01b03163314610fae5760405162461bcd60e51b815260040161081a9061216e565b600c54610fbc90600a612291565b610fc69082612339565b601a5550565b6000546001600160a01b03163314610ff65760405162461bcd60e51b815260040161081a9061216e565b6001600160a01b03811661105b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081a565b600080546040516001600160a01b038085169392169160008051602061243783398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161081a565b6001600160a01b0382166111675760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161081a565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661122c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161081a565b6001600160a01b03821661128e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161081a565b600081116112f05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161081a565b6000546001600160a01b0384811691161480159061131c57506000546001600160a01b03838116911614155b801561134157506001600160a01b03831660009081526006602052604090205460ff16155b801561136657506001600160a01b03821660009081526006602052604090205460ff16155b156113e7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156113e7576113c86017546113c26127106007546115df90919063ffffffff16565b90611680565b816113d284610b4f565b6113dc9190612214565b11156113e757600080fd5b60006113f230610b4f565b601a549091508110801590819061140c575060185460ff16155b801561144957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b801561145c5750601854610100900460ff165b801561146a57506000601a54115b1561147d57601a54915061147d826116ff565b6001600160a01b03851660009081526006602052604090205460019060ff16806114bf57506001600160a01b03851660009081526006602052604090205460ff165b156114c8575060005b60006114d386610b4f565b1580156114f857506001600160a01b038681166000908152601c602052604090205416155b801561153657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614155b90506115448787878561179d565b8015611579576001600160a01b038681166000908152601c6020526040902080546001600160a01b0319169189169190911790555b50505050505050565b600081848411156115a65760405162461bcd60e51b815260040161081a9190612119565b5060006115b38486612358565b95945050505050565b60008060006115c96117ff565b90925090506115d882826115df565b9250505090565b6000610a8f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611834565b60008061162e8385612214565b905083811015610a8f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161081a565b60008261168f57506000610974565b600061169b8385612339565b9050826116a8858361222c565b14610a8f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161081a565b6018805460ff1916600117905560006117198260026115df565b905060006117278383611862565b905047611733836118a4565b600061173f4783611862565b905061174b8382611a73565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506018805460ff19169055505050565b806117d2576117d2600d8054600e55600f80546010556011805460125560158054601655600093849055918390559082905555565b6117dd848484611b68565b8061089c5761089c600e54600d55601054600f55601654601555601254601155565b600854600754600091829161181482826115df565b82101561182b576008546007549350935050509091565b90939092509050565b600081836118555760405162461bcd60e51b815260040161081a9190612119565b5060006115b3848661222c565b6000610a8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611582565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118d9576118d96123e0565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635cb485926040518163ffffffff1660e01b815260040160206040518083038186803b15801561195257600080fd5b505afa158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a9190611fcb565b8160018151811061199d5761199d6123e0565b60200260200101906001600160a01b031690816001600160a01b0316815250506119e8307f0000000000000000000000000000000000000000000000000000000000000000846110a4565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611a3d9085906000908690309042906004016121a3565b600060405180830381600087803b158015611a5757600080fd5b505af1158015611a6b573d6000803e3d6000fd5b505050505050565b611a9e307f0000000000000000000000000000000000000000000000000000000000000000846110a4565b60135460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c4016060604051808303818588803b158015611b2857600080fd5b505af1158015611b3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b6191906120eb565b5050505050565b6000611b726115bc565b90506000611b808383611680565b6001600160a01b038616600090815260036020526040902054909150611ba69082611862565b6001600160a01b038616600090815260036020526040902055601154611bdd908690611bd7906113c28760646115df565b84611d04565b600f54611bf890611bf3906113c28460646115df565b611da9565b611c0485858585611dde565b600d54611c3190611c1a906113c28460646115df565b600d54611c2c906113c28760646115df565b611f8a565b6000601554601154600d54600f546064611c4b9190612358565b611c559190612358565b611c5f9190612358565b611c699190612358565b9050611c9c611c7d826113c28560646115df565b6001600160a01b03871660009081526003602052604090205490611621565b6001600160a01b0380871660008181526003602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ceb846113c28960646115df565b60405190815260200160405180910390a3505050505050565b601154611d1057505050565b6000611d1c8383611680565b6014546001600160a01b0316600090815260036020526040902054909150611d449082611621565b601480546001600160a01b03908116600090815260036020908152604091829020949094559154915186815291811692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b80611db15750565b30600090815260036020526040902054611dcb9082611621565b3060009081526003602052604090205550565b601554611dea5761089c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161415611e2d575082611e6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161415611e6a5750835b6001600160a01b038116611e7e575061089c565b6000805b600581121561157957600081611e9a57506002611e9e565b5060015b6001600160a01b039384166000908152601c60205260409020549093169283611ec75750611579565b611ed18382611621565b92506000611ee4826113c28960646115df565b90506000611ef28288611680565b6001600160a01b038716600090815260036020526040902054909150611f189082611621565b6001600160a01b0380881660008181526003602052604090819020939093559151908c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f6c9086815260200190565b60405180910390a35050508080611f82906123aa565b915050611e82565b600854611f979083611862565b600855600954611fa79082611621565b6009555050565b600060208284031215611fc057600080fd5b8135610a8f816123f6565b600060208284031215611fdd57600080fd5b8151610a8f816123f6565b60008060408385031215611ffb57600080fd5b8235612006816123f6565b946020939093013593505050565b6000806040838503121561202757600080fd5b8235612032816123f6565b91506020830135612042816123f6565b809150509250929050565b60008060006060848603121561206257600080fd5b833561206d816123f6565b9250602084013561207d816123f6565b929592945050506040919091013590565b6000602082840312156120a057600080fd5b81358015158114610a8f57600080fd5b6000602082840312156120c257600080fd5b5035919050565b600080604083850312156120dc57600080fd5b50508035926020909101359150565b60008060006060848603121561210057600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156121465785810183015185820160400152820161212a565b81811115612158576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121f35784516001600160a01b0316835293830193918301916001016121ce565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612227576122276123ca565b500190565b60008261224957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561228957816000190482111561226f5761226f6123ca565b8085161561227c57918102915b93841c9390800290612253565b509250929050565b6000610a8f83836000826122a757506001610974565b816122b457506000610974565b81600181146122ca57600281146122d4576122f0565b6001915050610974565b60ff8411156122e5576122e56123ca565b50506001821b610974565b5060208310610133831016604e8410600b8410161715612313575081810a610974565b61231d838361224e565b8060001904821115612331576123316123ca565b029392505050565b6000816000190483118215151615612353576123536123ca565b500290565b60008282101561236a5761236a6123ca565b500390565b600181811c9082168061238357607f821691505b602082108114156123a457634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160ff1b038214156123c3576123c36123ca565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461240b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122050f21698a5db15851d8f1882aea72ec6487915c03449777cbd28c72a293a18bd64736f6c63430008060033000000000000000000000000ec22f86f27faf7f88340f53ea60664040eb12672

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

000000000000000000000000ec22f86f27faf7f88340f53ea60664040eb12672

-----Decoded View---------------
Arg [0] : tokenOwner (address): 0xec22f86f27faf7f88340f53ea60664040eb12672

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


Deployed ByteCode Sourcemap

17372:16064:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21734:286;;;;;;;;;;-1:-1:-1;21734:286:0;;;;;:::i;:::-;;:::i;:::-;;23398:96;;;;;;;;;;-1:-1:-1;23398:96:0;;;;;:::i;:::-;;:::i;20156:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21081:191;;;;;;;;;;-1:-1:-1;21081:191:0;;;;;:::i;:::-;;:::i;:::-;;;4036:14:1;;4029:22;4011:41;;3999:2;3984:18;21081:191:0;3966:92:1;22736:87:0;;;;;;;;;;-1:-1:-1;22805:10:0;;22736:87;;;9775:25:1;;;9763:2;9748:18;22736:87:0;9730:76:1;18415:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3215:32:1;;;3197:51;;3185:2;3170:18;18415:51:0;3152:102:1;20435:95:0;;;;;;;;;;-1:-1:-1;20515:7:0;;20435:95;;21280:442;;;;;;;;;;-1:-1:-1;21280:442:0;;;;;:::i;:::-;;:::i;23506:97::-;;;;;;;;;;-1:-1:-1;23506:97:0;;;;;:::i;:::-;;:::i;22831:322::-;;;;;;;;;;-1:-1:-1;22831:322:0;;;;;:::i;:::-;;:::i;20342:85::-;;;;;;;;;;-1:-1:-1;20410:9:0;;20342:85;;25036:173;;;;;;;;;;-1:-1:-1;25036:173:0;;;;;:::i;:::-;;:::i;22028:296::-;;;;;;;;;;-1:-1:-1;22028:296:0;;;;;:::i;:::-;;:::i;17917:26::-;;;;;;;;;;;;;;;;23161:111;;;;;;;;;;-1:-1:-1;23161:111:0;;;;;:::i;:::-;;:::i;18473:38::-;;;;;;;;;;;;;;;18548:40;;;;;;;;;;-1:-1:-1;18548:40:0;;;;;;;;;;;25762:124;;;;;;;;;;-1:-1:-1;25762:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;25851:27:0;25827:4;25851:27;;;:18;:27;;;;;;;;;25762:124;3837:90;;;;;;;;;;-1:-1:-1;3904:15:0;3837:90;;17990:32;;;;;;;;;;;;;;;;20538:138;;;;;;;;;;-1:-1:-1;20538:138:0;;;;;:::i;:::-;;:::i;3425:148::-;;;;;;;;;;;;;:::i;18377:29::-;;;;;;;;;;;;;;;;23867:109;;;;;;;;;;-1:-1:-1;23867:109:0;;;;;:::i;:::-;;:::i;18595:27::-;;;;;;;;;;;;;;;;3202:79;;;;;;;;;;-1:-1:-1;3240:7:0;3267:6;-1:-1:-1;;;;;3267:6:0;3202:79;;23611:120;;;;;;;;;;-1:-1:-1;23611:120:0;;;;;:::i;:::-;;:::i;20247:87::-;;;;;;;;;;;;;:::i;18075:30::-;;;;;;;;;;;;;;;;18292;;;;;;;;;;;;;;;;22332:396;;;;;;;;;;-1:-1:-1;22332:396:0;;;;;:::i;:::-;;:::i;4173:305::-;;;;;;;;;;;;;:::i;20684:197::-;;;;;;;;;;-1:-1:-1;20684:197:0;;;;;:::i;:::-;;:::i;23739:116::-;;;;;;;;;;-1:-1:-1;23739:116:0;;;;;:::i;:::-;;:::i;24325:171::-;;;;;;;;;;-1:-1:-1;24325:171:0;;;;;:::i;:::-;;:::i;18629:44::-;;;;;;;;;;;;;;;;3935:226;;;;;;;;;;-1:-1:-1;3935:226:0;;;;;:::i;:::-;;:::i;20889:184::-;;;;;;;;;;-1:-1:-1;20889:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;21038:18:0;;;21006:7;21038:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20889:184;23280:110;;;;;;;;;;-1:-1:-1;23280:110:0;;;;;:::i;:::-;;:::i;24175:142::-;;;;;;;;;;-1:-1:-1;24175:142:0;;;;;:::i;:::-;;:::i;18710:42::-;;;;;;;;;;-1:-1:-1;18710:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;18710:42:0;;;23984:179;;;;;;;;;;-1:-1:-1;23984:179:0;;;;;:::i;:::-;;:::i;3581:244::-;;;;;;;;;;-1:-1:-1;3581:244:0;;;;;:::i;:::-;;:::i;21734:286::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;;;;;;;;;21836:11;;21832:181:::1;;21864:25;::::0;-1:-1:-1;;;;;21864:16:0;::::1;::::0;:25;::::1;;;::::0;21881:7;;21864:25:::1;::::0;;;21881:7;21864:16;:25;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21734:286:::0;;:::o;21832:181::-:1;21976:25;::::0;21940:21:::1;::::0;-1:-1:-1;;;;;21976:16:0;::::1;::::0;:25;::::1;;;::::0;21940:21;;21922:15:::1;21976:25:::0;21922:15;21976:25;21940:21;21976:16;:25;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21907:106;21734:286:::0;;:::o;23398:96::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;23470:7:::1;:16:::0;23398:96::o;20156:83::-;20193:13;20226:5;20219:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20156:83;:::o;21081:191::-;21183:4;21205:37;21214:10;21226:7;21235:6;21205:8;:37::i;:::-;-1:-1:-1;21260:4:0;21081:191;;;;;:::o;21280:442::-;21412:4;21429:36;21439:6;21447:9;21458:6;21429:9;:36::i;:::-;21476:216;21499:6;21520:10;21545:136;21599:6;21545:136;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21545:19:0;;;;;;:11;:19;;;;;;;;21565:10;21545:31;;;;;;;;;:136;:35;:136::i;:::-;21476:8;:216::i;:::-;-1:-1:-1;21710:4:0;21280:442;;;;;:::o;23506:97::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;23578:8:::1;:17:::0;23506:97::o;22831:322::-;22925:7;22983;;22972;:18;;22950:110;;;;-1:-1:-1;;;22950:110:0;;5506:2:1;22950:110:0;;;5488:21:1;5545:2;5525:18;;;5518:30;5584:34;5564:18;;;5557:62;-1:-1:-1;;;5635:18:1;;;5628:40;5685:19;;22950:110:0;5478:232:1;22950:110:0;23071:19;23093:10;:8;:10::i;:::-;23071:32;-1:-1:-1;23121:24:0;:7;23071:32;23121:11;:24::i;:::-;23114:31;22831:322;-1:-1:-1;;;22831:322:0:o;25036:173::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;25146:7:::1;:16:::0;;;;25173:13:::1;:28:::0;25036:173::o;22028:296::-;22188:10;22143:4;22235:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;22235:32:0;;;;;;;;;;22143:4;;22165:129;;22213:7;;22235:48;;22272:10;22235:36;:48::i;23161:111::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23230:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;23230:34:0::1;23260:4;23230:34;::::0;;23161:111::o;20538:138::-;-1:-1:-1;;;;;20651:16:0;;20604:7;20651:16;;;:7;:16;;;;;;20631:37;;:19;:37::i;3425:148::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;3532:1:::1;3516:6:::0;;3495:40:::1;::::0;-1:-1:-1;;;;;3516:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3495:40:0;3532:1;;3495:40:::1;3563:1;3546:19:::0;;-1:-1:-1;;;;;;3546:19:0::1;::::0;;3425:148::o;23867:109::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;23942:12:::1;:26:::0;;-1:-1:-1;;;;;;23942:26:0::1;-1:-1:-1::0;;;;;23942:26:0;;;::::1;::::0;;;::::1;::::0;;23867:109::o;23611:120::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;23695:13:::1;:28:::0;23611:120::o;20247:87::-;20286:13;20319:7;20312:14;;;;;:::i;22332:396::-;22452:4;22474:224;22497:10;22522:7;22544:143;22599:15;22544:143;;;;;;;;;;;;;;;;;22556:10;22544:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;22544:32:0;;;;;;;;;;;:143;:36;:143::i;4173:305::-;4225:14;;-1:-1:-1;;;;;4225:14:0;4243:10;4225:28;4217:76;;;;-1:-1:-1;;;4217:76:0;;9427:2:1;4217:76:0;;;9409:21:1;9466:2;9446:18;;;9439:30;9505:34;9485:18;;;9478:62;-1:-1:-1;;;9556:18:1;;;9549:33;9599:19;;4217:76:0;9399:225:1;4217:76:0;4330:9;;4312:15;:27;4304:72;;;;-1:-1:-1;;;4304:72:0;;9067:2:1;4304:72:0;;;9049:21:1;9106:2;9086:18;;;9079:30;9145:33;9125:18;;;9118:61;9196:18;;4304:72:0;9039:181:1;4304:72:0;4421:14;;;4413:6;;4392:44;;-1:-1:-1;;;;;4421:14:0;;;;4413:6;;;;-1:-1:-1;;;;;;;;;;;4392:44:0;;4456:14;;;4447:23;;-1:-1:-1;;;;;;4447:23:0;-1:-1:-1;;;;;4456:14:0;;;4447:23;;;;;;4173:305::o;20684:197::-;20789:4;20811:40;20821:10;20833:9;20844:6;20811:9;:40::i;23739:116::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;23821:11:::1;:26:::0;23739:116::o;24325:171::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;24402:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;24402:32:0;;::::1;;::::0;;24450:38:::1;::::0;::::1;::::0;::::1;::::0;24426:8;4036:14:1;4029:22;4011:41;;3999:2;3984:18;;3966:92;24450:38:0::1;;;;;;;;24325:171:::0;:::o;3935:226::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;4016:6:::1;::::0;;;3999:23;;-1:-1:-1;;;;;;3999:23:0;;::::1;-1:-1:-1::0;;;;;4016:6:0;::::1;3999:23;::::0;;;4033:19:::1;::::0;;4075:22:::1;4093:4:::0;4075:15:::1;:22;:::i;:::-;4063:9;:34:::0;4150:1:::1;4134:6:::0;;4113:40:::1;::::0;-1:-1:-1;;;;;4134:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;4113:40:0;4150:1;;4113:40:::1;3935:226:::0;:::o;23280:110::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23347:27:0::1;23377:5;23347:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;23347:35:0::1;::::0;;23280:110::o;24175:142::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;24300:9:::1;::::0;24296:13:::1;::::0;:2:::1;:13;:::i;:::-;24284:25;::::0;:9;:25:::1;:::i;:::-;24269:12;:40:::0;-1:-1:-1;24175:142:0:o;23984:179::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;24146:9:::1;::::0;24142:13:::1;::::0;:2:::1;:13;:::i;:::-;24129:26;::::0;:10;:26:::1;:::i;:::-;24097:29;:58:::0;-1:-1:-1;23984:179:0:o;3581:244::-;3336:6;;-1:-1:-1;;;;;3336:6:0;3346:10;3336:20;3328:65;;;;-1:-1:-1;;;3328:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3670:22:0;::::1;3662:73;;;::::0;-1:-1:-1;;;3662:73:0;;5917:2:1;3662:73:0::1;::::0;::::1;5899:21:1::0;5956:2;5936:18;;;5929:30;5995:34;5975:18;;;5968:62;-1:-1:-1;;;6046:18:1;;;6039:36;6092:19;;3662:73:0::1;5889:228:1::0;3662:73:0::1;3772:6;::::0;;3751:38:::1;::::0;-1:-1:-1;;;;;3751:38:0;;::::1;::::0;3772:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;3751:38:0;::::1;3800:6;:17:::0;;-1:-1:-1;;;;;;3800:17:0::1;-1:-1:-1::0;;;;;3800:17:0;;;::::1;::::0;;;::::1;::::0;;3581:244::o;25894:371::-;-1:-1:-1;;;;;26021:19:0;;26013:68;;;;-1:-1:-1;;;26013:68:0;;8662:2:1;26013:68:0;;;8644:21:1;8701:2;8681:18;;;8674:30;8740:34;8720:18;;;8713:62;-1:-1:-1;;;8791:18:1;;;8784:34;8835:19;;26013:68:0;8634:226:1;26013:68:0;-1:-1:-1;;;;;26100:21:0;;26092:68;;;;-1:-1:-1;;;26092:68:0;;6324:2:1;26092:68:0;;;6306:21:1;6363:2;6343:18;;;6336:30;6402:34;6382:18;;;6375:62;-1:-1:-1;;;6453:18:1;;;6446:32;6495:19;;26092:68:0;6296:224:1;26092:68:0;-1:-1:-1;;;;;26173:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26225:32;;9775:25:1;;;26225:32:0;;9748:18:1;26225:32:0;;;;;;;25894:371;;;:::o;26273:1792::-;-1:-1:-1;;;;;26395:18:0;;26387:68;;;;-1:-1:-1;;;26387:68:0;;8256:2:1;26387:68:0;;;8238:21:1;8295:2;8275:18;;;8268:30;8334:34;8314:18;;;8307:62;-1:-1:-1;;;8385:18:1;;;8378:35;8430:19;;26387:68:0;8228:227:1;26387:68:0;-1:-1:-1;;;;;26474:16:0;;26466:64;;;;-1:-1:-1;;;26466:64:0;;5102:2:1;26466:64:0;;;5084:21:1;5141:2;5121:18;;;5114:30;5180:34;5160:18;;;5153:62;-1:-1:-1;;;5231:18:1;;;5224:33;5274:19;;26466:64:0;5074:225:1;26466:64:0;26558:1;26549:6;:10;26541:64;;;;-1:-1:-1;;;26541:64:0;;7846:2:1;26541:64:0;;;7828:21:1;7885:2;7865:18;;;7858:30;7924:34;7904:18;;;7897:62;-1:-1:-1;;;7975:18:1;;;7968:39;8024:19;;26541:64:0;7818:231:1;26541:64:0;3240:7;3267:6;-1:-1:-1;;;;;26620:15:0;;;3267:6;;26620:15;;;;:32;;-1:-1:-1;3240:7:0;3267:6;-1:-1:-1;;;;;26639:13:0;;;3267:6;;26639:13;;26620:32;:61;;;;-1:-1:-1;;;;;;26657:24:0;;;;;;:18;:24;;;;;;;;26656:25;26620:61;:88;;;;-1:-1:-1;;;;;;26686:22:0;;;;;;:18;:22;;;;;;;;26685:23;26620:88;26617:245;;;26736:13;-1:-1:-1;;;;;26728:21:0;:4;-1:-1:-1;;;;;26728:21:0;;26725:126;;;26802:32;26825:8;;26802:18;26814:5;26802:7;;:11;;:18;;;;:::i;:::-;:22;;:32::i;:::-;26792:6;26776:13;26786:2;26776:9;:13::i;:::-;:22;;;;:::i;:::-;:58;;26768:67;;;;;;26874:28;26905:24;26923:4;26905:9;:24::i;:::-;27006:29;;26874:55;;-1:-1:-1;26969:66:0;;;;;;;27064:53;;-1:-1:-1;27101:16:0;;;;27100:17;27064:53;:89;;;;;27140:13;-1:-1:-1;;;;;27134:19:0;:2;-1:-1:-1;;;;;27134:19:0;;27064:89;:127;;;;-1:-1:-1;27170:21:0;;;;;;;27064:127;:177;;;;;27240:1;27208:29;;:33;27064:177;27046:366;;;27291:29;;27268:52;;27364:36;27379:20;27364:14;:36::i;:::-;-1:-1:-1;;;;;27605:24:0;;27485:12;27605:24;;;:18;:24;;;;;;27500:4;;27605:24;;;:50;;-1:-1:-1;;;;;;27633:22:0;;;;;;:18;:22;;;;;;;;27605:50;27601:98;;;-1:-1:-1;27682:5:0;27601:98;27736:21;27760:13;27770:2;27760:9;:13::i;:::-;:18;:60;;;;-1:-1:-1;;;;;;27795:11:0;;;27818:1;27795:11;;;:7;:11;;;;;;;:25;27760:60;:98;;;;;27845:13;-1:-1:-1;;;;;27837:21:0;:4;-1:-1:-1;;;;;27837:21:0;;;27760:98;27736:122;;27937:41;27952:4;27958:2;27962:6;27970:7;27937:14;:41::i;:::-;27995:16;27991:67;;;-1:-1:-1;;;;;28028:11:0;;;;;;;:7;:11;;;;;:18;;-1:-1:-1;;;;;;28028:18:0;;;;;;;;;;27991:67;26376:1689;;;;26273:1792;;;:::o;5651:226::-;5771:7;5807:12;5799:6;;;;5791:29;;;;-1:-1:-1;;;5791:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5831:9:0;5843:5;5847:1;5843;:5;:::i;:::-;5831:17;5651:226;-1:-1:-1;;;;;5651:226:0:o;24597:164::-;24639:7;24660:15;24677;24696:19;:17;:19::i;:::-;24659:56;;-1:-1:-1;24659:56:0;-1:-1:-1;24733:20:0;24659:56;;24733:11;:20::i;:::-;24726:27;;;;24597:164;:::o;7083:132::-;7141:7;7168:39;7172:1;7175;7168:39;;;;;;;;;;;;;;;;;:3;:39::i;4748:181::-;4806:7;;4838:5;4842:1;4838;:5;:::i;:::-;4826:17;;4867:1;4862;:6;;4854:46;;;;-1:-1:-1;;;4854:46:0;;6727:2:1;4854:46:0;;;6709:21:1;6766:2;6746:18;;;6739:30;6805:29;6785:18;;;6778:57;6852:18;;4854:46:0;6699:177:1;6136:471:0;6194:7;6439:6;6435:47;;-1:-1:-1;6469:1:0;6462:8;;6435:47;6494:9;6506:5;6510:1;6506;:5;:::i;:::-;6494:17;-1:-1:-1;6539:1:0;6530:5;6534:1;6494:17;6530:5;:::i;:::-;:10;6522:56;;;;-1:-1:-1;;;6522:56:0;;7083:2:1;6522:56:0;;;7065:21:1;7122:2;7102:18;;;7095:30;7161:34;7141:18;;;7134:62;-1:-1:-1;;;7212:18:1;;;7205:31;7253:19;;6522:56:0;7055:223:1;28073:979:0;19053:16;:23;;-1:-1:-1;;19053:23:0;19072:4;19053:23;;;:16;28225:27:::1;:20:::0;28250:1:::1;28225:24;:27::i;:::-;28210:42:::0;-1:-1:-1;28263:17:0::1;28283:30;:20:::0;28210:42;28283:24:::1;:30::i;:::-;28263:50:::0;-1:-1:-1;28616:21:0::1;28682:22;28699:4:::0;28682:16:::1;:22::i;:::-;28835:18;28856:41;:21;28882:14:::0;28856:25:::1;:41::i;:::-;28835:62;;28947:35;28960:9;28971:10;28947:12;:35::i;:::-;29000:43;::::0;;10998:25:1;;;11054:2;11039:18;;11032:34;;;11082:18;;;11075:34;;;29000:43:0::1;::::0;10986:2:1;10971:18;29000:43:0::1;;;;;;;-1:-1:-1::0;;19099:16:0;:24;;-1:-1:-1;;19099:24:0;;;-1:-1:-1;;;28073:979:0:o;30255:286::-;30411:7;30406:28;;30420:14;25278:7;;;25260:15;:25;25320:13;;;25296:21;:37;25366:11;;;25344:19;:33;25410:11;;;25388:19;:33;-1:-1:-1;25434:11:0;;;;25456:17;;;;25484:15;;;;25510;25217:316;30420:14;30447:44;30465:6;30473:9;30484:6;30447:17;:44::i;:::-;30509:7;30504:29;;30518:15;25595;;25585:7;:25;25637:21;;25621:13;:37;25683:19;;25669:11;:33;25727:19;;25713:11;:33;25541:213;24769:257;24867:7;;24903;;24820;;;;24935:20;24867:7;24903;24935:11;:20::i;:::-;24925:7;:30;24921:61;;;24965:7;;24974;;24957:25;;;;;;24769:257;;:::o;24921:61::-;25001:7;;25010;;-1:-1:-1;24769:257:0;-1:-1:-1;24769:257:0:o;7711:312::-;7831:7;7866:12;7859:5;7851:28;;;;-1:-1:-1;;;7851:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7890:9:0;7902:5;7906:1;7902;:5;:::i;5212:136::-;5270:7;5297:43;5301:1;5304;5297:43;;;;;;;;;;;;;;;;;:3;:43::i;29060:588::-;29210:16;;;29224:1;29210:16;;;;;;;;29186:21;;29210:16;;;;;;;;;;-1:-1:-1;29210:16:0;29186:40;;29255:4;29237;29242:1;29237:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;29237:23:0;;;-1:-1:-1;;;;;29237:23:0;;;;;29281:15;-1:-1:-1;;;;;29281:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29271:4;29276:1;29271:7;;;;;;;;:::i;:::-;;;;;;:31;-1:-1:-1;;;;;29271:31:0;;;-1:-1:-1;;;;;29271:31:0;;;;;29315:62;29332:4;29347:15;29365:11;29315:8;:62::i;:::-;29416:224;;-1:-1:-1;;;29416:224:0;;-1:-1:-1;;;;;29416:15:0;:66;;;;:224;;29497:11;;29523:1;;29567:4;;29594;;29614:15;;29416:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29115:533;29060:588;:::o;29656:518::-;29804:62;29821:4;29836:15;29854:11;29804:8;:62::i;:::-;30113:12;;29909:257;;-1:-1:-1;;;29909:257:0;;29981:4;29909:257;;;3600:34:1;3650:18;;;3643:34;;;30027:1:0;3693:18:1;;;3686:34;;;3736:18;;;3729:34;-1:-1:-1;;;;;30113:12:0;;;3779:19:1;;;3772:44;30140:15:0;3832:19:1;;;3825:35;29909:15:0;:31;;;;;;29948:9;;3534:19:1;;29909:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;29656:518;;:::o;32322:1111::-;32454:19;32476:10;:8;:10::i;:::-;32454:32;-1:-1:-1;32530:15:0;32548:24;:7;32454:32;32548:11;:24::i;:::-;-1:-1:-1;;;;;32601:15:0;;;;;;:7;:15;;;;;;32530:42;;-1:-1:-1;32601:28:0;;32530:42;32601:19;:28::i;:::-;-1:-1:-1;;;;;32583:15:0;;;;;;:7;:15;;;;;:46;32706:11;;32661:71;;32591:6;;32685:33;;:16;:7;32697:3;32685:11;:16::i;:33::-;32720:11;32661:15;:71::i;:::-;32809:13;;32773:51;;32788:35;;:16;:7;32800:3;32788:11;:16::i;:35::-;32773:14;:51::i;:::-;32867:56;32883:6;32891:9;32902:7;32911:11;32867:15;:56::i;:::-;33002:7;;32955:110;;32981:29;;:16;:7;32993:3;32981:11;:16::i;:29::-;33046:7;;33025:29;;:16;:7;33037:3;33025:11;:16::i;:29::-;32955:11;:110::i;:::-;33097:21;33219:11;;33192;;33169:7;;33140:13;;33121:3;:32;;;;:::i;:::-;:55;;;;:::i;:::-;:82;;;;:::i;:::-;:109;;;;:::i;:::-;33097:133;-1:-1:-1;33262:83:0;33299:35;33097:133;33299:16;:7;33311:3;33299:11;:16::i;:35::-;-1:-1:-1;;;;;33262:18:0;;;;;;:7;:18;;;;;;;:22;:83::i;:::-;-1:-1:-1;;;;;33241:18:0;;;;;;;:7;:18;;;;;:104;;;;33361:64;;;33389:35;33410:13;33389:16;:7;33401:3;33389:11;:16::i;:35::-;33361:64;;9775:25:1;;;9763:2;9748:18;33361:64:0;;;;;;;32443:990;;;32322:1111;;;:::o;30549:356::-;30685:11;;30681:29;;30549:356;;;:::o;30681:29::-;30720:15;30738:24;:7;30750:11;30738;:24::i;:::-;30810:15;;-1:-1:-1;;;;;30810:15:0;30802:24;;;;:7;:24;;;;;;30720:42;;-1:-1:-1;30802:37:0;;30720:42;30802:28;:37::i;:::-;30783:15;;;-1:-1:-1;;;;;30783:15:0;;;30775:24;;;;:7;:24;;;;;;;;;:64;;;;30872:15;;30855:42;;9775:25:1;;;30872:15:0;;;;30855:42;;;;;;9748:18:1;30855:42:0;;;;;;;30670:235;30549:356;;;:::o;30913:172::-;30980:15;30976:28;;30913:172;:::o;30976:28::-;31055:4;31039:22;;;;:7;:22;;;;;;:38;;31066:10;31039:26;:38::i;:::-;31030:4;31014:22;;;;:7;:22;;;;;:63;-1:-1:-1;30913:172:0:o;31248:1066::-;31412:11;;31408:29;;31430:7;;31408:29;31449:11;31485:13;-1:-1:-1;;;;;31475:23:0;:6;-1:-1:-1;;;;;31475:23:0;;31471:148;;;-1:-1:-1;31521:9:0;31471:148;;;31565:13;-1:-1:-1;;;;;31552:26:0;:9;-1:-1:-1;;;;;31552:26:0;;31548:71;;;-1:-1:-1;31601:6:0;31548:71;-1:-1:-1;;;;;31633:17:0;;31629:56;;31667:7;;;31629:56;31697:17;;31725:582;31748:1;31744;:5;31725:582;;;31771:12;31802:6;31798:104;;-1:-1:-1;31836:1:0;31798:104;;;-1:-1:-1;31885:1:0;31798:104;-1:-1:-1;;;;;31922:12:0;;;;;;;:7;:12;;;;;;;;;;31953:17;31949:63;;31991:5;;;31949:63;32038:19;:9;32052:4;32038:13;:19::i;:::-;32026:31;-1:-1:-1;32074:18:0;32095:26;32116:4;32095:16;:7;32107:3;32095:11;:16::i;:26::-;32074:47;-1:-1:-1;32136:18:0;32157:27;32074:47;32172:11;32157:14;:27::i;:::-;-1:-1:-1;;;;;32214:12:0;;;;;;:7;:12;;;;;;32136:48;;-1:-1:-1;32214:28:0;;32136:48;32214:16;:28::i;:::-;-1:-1:-1;;;;;32199:12:0;;;;;;;:7;:12;;;;;;;:43;;;;32262:33;;;;;;;;;;32284:10;9775:25:1;;9763:2;9748:18;;9730:76;32262:33:0;;;;;;;;31756:551;;;31751:3;;;;;:::i;:::-;;;;31725:582;;31093:147;31171:7;;:17;;31183:4;31171:11;:17::i;:::-;31161:7;:27;31212:10;;:20;;31227:4;31212:14;:20::i;:::-;31199:10;:33;-1:-1:-1;;31093:147:0:o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:323::-;598:6;606;659:2;647:9;638:7;634:23;630:32;627:2;;;675:1;672;665:12;627:2;714:9;701:23;733:31;758:5;733:31;:::i;:::-;783:5;835:2;820:18;;;;807:32;;-1:-1:-1;;;617:228:1:o;850:388::-;918:6;926;979:2;967:9;958:7;954:23;950:32;947:2;;;995:1;992;985:12;947:2;1034:9;1021:23;1053:31;1078:5;1053:31;:::i;:::-;1103:5;-1:-1:-1;1160:2:1;1145:18;;1132:32;1173:33;1132:32;1173:33;:::i;:::-;1225:7;1215:17;;;937:301;;;;;:::o;1243:456::-;1320:6;1328;1336;1389:2;1377:9;1368:7;1364:23;1360:32;1357:2;;;1405:1;1402;1395:12;1357:2;1444:9;1431:23;1463:31;1488:5;1463:31;:::i;:::-;1513:5;-1:-1:-1;1570:2:1;1555:18;;1542:32;1583:33;1542:32;1583:33;:::i;:::-;1347:352;;1635:7;;-1:-1:-1;;;1689:2:1;1674:18;;;;1661:32;;1347:352::o;2024:273::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:2;;;2149:1;2146;2139:12;2101:2;2188:9;2175:23;2241:5;2234:13;2227:21;2220:5;2217:32;2207:2;;2263:1;2260;2253:12;2302:180;2361:6;2414:2;2402:9;2393:7;2389:23;2385:32;2382:2;;;2430:1;2427;2420:12;2382:2;-1:-1:-1;2453:23:1;;2372:110;-1:-1:-1;2372:110:1:o;2487:248::-;2555:6;2563;2616:2;2604:9;2595:7;2591:23;2587:32;2584:2;;;2632:1;2629;2622:12;2584:2;-1:-1:-1;;2655:23:1;;;2725:2;2710:18;;;2697:32;;-1:-1:-1;2574:161:1:o;2740:306::-;2828:6;2836;2844;2897:2;2885:9;2876:7;2872:23;2868:32;2865:2;;;2913:1;2910;2903:12;2865:2;2942:9;2936:16;2926:26;;2992:2;2981:9;2977:18;2971:25;2961:35;;3036:2;3025:9;3021:18;3015:25;3005:35;;2855:191;;;;;:::o;4298:597::-;4410:4;4439:2;4468;4457:9;4450:21;4500:6;4494:13;4543:6;4538:2;4527:9;4523:18;4516:34;4568:1;4578:140;4592:6;4589:1;4586:13;4578:140;;;4687:14;;;4683:23;;4677:30;4653:17;;;4672:2;4649:26;4642:66;4607:10;;4578:140;;;4736:6;4733:1;4730:13;4727:2;;;4806:1;4801:2;4792:6;4781:9;4777:22;4773:31;4766:42;4727:2;-1:-1:-1;4879:2:1;4858:15;-1:-1:-1;;4854:29:1;4839:45;;;;4886:2;4835:54;;4419:476;-1:-1:-1;;;4419:476:1:o;7283:356::-;7485:2;7467:21;;;7504:18;;;7497:30;7563:34;7558:2;7543:18;;7536:62;7630:2;7615:18;;7457:182::o;9811:980::-;10073:4;10121:3;10110:9;10106:19;10152:6;10141:9;10134:25;10178:2;10216:6;10211:2;10200:9;10196:18;10189:34;10259:3;10254:2;10243:9;10239:18;10232:31;10283:6;10318;10312:13;10349:6;10341;10334:22;10387:3;10376:9;10372:19;10365:26;;10426:2;10418:6;10414:15;10400:29;;10447:1;10457:195;10471:6;10468:1;10465:13;10457:195;;;10536:13;;-1:-1:-1;;;;;10532:39:1;10520:52;;10627:15;;;;10592:12;;;;10568:1;10486:9;10457:195;;;-1:-1:-1;;;;;;;10708:32:1;;;;10703:2;10688:18;;10681:60;-1:-1:-1;;;10772:3:1;10757:19;10750:35;10669:3;10082:709;-1:-1:-1;;;10082:709:1:o;11120:128::-;11160:3;11191:1;11187:6;11184:1;11181:13;11178:2;;;11197:18;;:::i;:::-;-1:-1:-1;11233:9:1;;11168:80::o;11253:217::-;11293:1;11319;11309:2;;11363:10;11358:3;11354:20;11351:1;11344:31;11398:4;11395:1;11388:15;11426:4;11423:1;11416:15;11309:2;-1:-1:-1;11455:9:1;;11299:171::o;11475:422::-;11564:1;11607:5;11564:1;11621:270;11642:7;11632:8;11629:21;11621:270;;;11701:4;11697:1;11693:6;11689:17;11683:4;11680:27;11677:2;;;11710:18;;:::i;:::-;11760:7;11750:8;11746:22;11743:2;;;11780:16;;;;11743:2;11859:22;;;;11819:15;;;;11621:270;;;11625:3;11539:358;;;;;:::o;11902:131::-;11962:5;11991:36;12018:8;12012:4;12087:5;12117:8;12107:2;;-1:-1:-1;12158:1:1;12172:5;;12107:2;12206:4;12196:2;;-1:-1:-1;12243:1:1;12257:5;;12196:2;12288:4;12306:1;12301:59;;;;12374:1;12369:130;;;;12281:218;;12301:59;12331:1;12322:10;;12345:5;;;12369:130;12406:3;12396:8;12393:17;12390:2;;;12413:18;;:::i;:::-;-1:-1:-1;;12469:1:1;12455:16;;12484:5;;12281:218;;12583:2;12573:8;12570:16;12564:3;12558:4;12555:13;12551:36;12545:2;12535:8;12532:16;12527:2;12521:4;12518:12;12514:35;12511:77;12508:2;;;-1:-1:-1;12620:19:1;;;12652:5;;12508:2;12699:34;12724:8;12718:4;12699:34;:::i;:::-;12769:6;12765:1;12761:6;12757:19;12748:7;12745:32;12742:2;;;12780:18;;:::i;:::-;12818:20;;12097:747;-1:-1:-1;;;12097:747:1:o;12849:168::-;12889:7;12955:1;12951;12947:6;12943:14;12940:1;12937:21;12932:1;12925:9;12918:17;12914:45;12911:2;;;12962:18;;:::i;:::-;-1:-1:-1;13002:9:1;;12901:116::o;13022:125::-;13062:4;13090:1;13087;13084:8;13081:2;;;13095:18;;:::i;:::-;-1:-1:-1;13132:9:1;;13071:76::o;13152:380::-;13231:1;13227:12;;;;13274;;;13295:2;;13349:4;13341:6;13337:17;13327:27;;13295:2;13402;13394:6;13391:14;13371:18;13368:38;13365:2;;;13448:10;13443:3;13439:20;13436:1;13429:31;13483:4;13480:1;13473:15;13511:4;13508:1;13501:15;13365:2;;13207:325;;;:::o;13537:147::-;13575:3;-1:-1:-1;;;;;13596:30:1;;13593:2;;;13629:18;;:::i;:::-;-1:-1:-1;13676:1:1;13665:13;;13583:101::o;13689:127::-;13750:10;13745:3;13741:20;13738:1;13731:31;13781:4;13778:1;13771:15;13805:4;13802:1;13795:15;13821:127;13882:10;13877:3;13873:20;13870:1;13863:31;13913:4;13910:1;13903:15;13937:4;13934:1;13927:15;14085:131;-1:-1:-1;;;;;14160:31:1;;14150:42;;14140:2;;14206:1;14203;14196:12;14140:2;14130:86;:::o

Swarm Source

ipfs://50f21698a5db15851d8f1882aea72ec6487915c03449777cbd28c72a293a18bd
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading