ETH Price: $3,631.02 (+4.90%)
 

Overview

Max Total Supply

1,000,000 DORKL2

Holders

55

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DORKL2

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-08
*/

/*

                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠶⠛⠉⠀⠀⠀⠀⠉⠙⠶⠦⣀⡀⠀⠀⠀⣀⣠⠴⠶⠞⠛⠛⠶⠤⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠲⣞⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⡄⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠞⠁⠀⠀⠀⠀⠀⣀⣠⡤⠤⠤⠤⣤⣄⡀⠀⠀⠹⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⣴⠃⠀⠀⠀⠀⢠⠶⠛⠉⠁⠀⠀⠀⠀⠀⠈⠙⠓⠦⢤⣿⠤⠖⠒⠒⠒⠒⠒⠚⠒⠓⠲⠾⢧⡀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣤⡤⠤⠤⠤⠤⣭⣳⣤⡀⠀⠀⠀⢀⣀⣀⣠⣤⣤⣤⣬⣙⣳⣦⣄⠀⠀
                                    ⠀⠀⠀⠀⢀⣀⣿⣷⣦⣤⣄⣀⡀⠀⣀⣀⣤⣤⣤⣶⣯⣭⣥⣶⣶⣯⣭⣽⣶⣶⣬⣭⣙⣴⢖⣫⣭⣿⣿⣶⣶⣶⣶⣶⣾⣿⣿⣿⣷⣤
                                    ⠀⠀⠀⣤⠛⢹⡇⠈⠉⠙⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡿⣿⣿⣿⣿
                                    ⠀⢀⡞⠁⠀⠸⠇⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡣⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿
                                    ⢀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
                                    ⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠉⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠁⠀⠀⣀⠀⠙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⣉⣩⡭⠿⠛⠉⠁⠀⠀⠀⠀⠀⠙⠛⢿⡒⠛⠛⠛⠋⠻⡭⡉⠁⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠹⣦⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡾⠛⠉⠉⠉⠳⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⢀⣀⠀⠀⠀⠉⠙⠳⠦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣇⡀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢷⡄⠀⠈⠉⠛⠢⢤⣤⣀⠀⠀⠈⠉⠉⠑⠒⠒⠒⠢⠤⢤⣤⣤⣤⣤⣄⣠⣤⣤⡤⠔⠚⠋⠁⢀⡇⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⢦⣄⡀⠀⠀⠀⠈⠉⠙⠓⠒⠦⢦⣤⣤⣄⣀⣀⣀⣀⣀⣀⠀⠀⠈⠁⠀⢀⣀⣀⣠⣤⠖⠉⠀⠀
                                    ⠛⣻⣶⣦⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠲⢤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠁⠀⠈⠀⠉⠀⠉⠉⠉⠉⠉⣉⣉⣤⣥⣷⠾⠓⢲⣚⡟
                                    ⠈⣞⣷⣴⣌⣽⣫⣿⠷⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠛⠛⠛⠛⠷⠶⠶⠶⠶⢶⢦⣤⣤⣴⢿⣯⡉⠉⣁⣞⠗⢂⠹⡝⠅
                                    ⠀⣻⣿⣷⢪⣿⣋⠀⠀⢀⡈⣽⡛⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡟⣛⣍⣿⢷⡆⣈⣻⣮⠀⣻⣧⢿⣷⣶⠾
                                    ⠿⣿⣿⠾⠿⣿⡿⣵⣿⡏⣿⠹⣿⣞⢷⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣴⠟⡾⣿⣹⣿⣿⢷⡽⣏⠛⠓⠒⠛⠛⠛⠛⠛
                                    ⡼⢭⠥⣴⠬⣿⠿⢯⡿⢥⡿⢧⡿⢿⡿⢯⠭⢭⡿⢿⡿⢿⡿⢶⡶⢶⡾⢾⡿⢿⡭⢿⣿⠼⣧⠍⣭⠭⣥⠬⣷⢻⣆⣀⣦⣀⣴⣀⣀⠀
                                    ⢱⡿⠶⠿⠶⠾⠶⠾⠶⠾⠷⠾⠶⠾⠷⠾⠶⠾⠷⠾⠷⠾⠷⠾⠷⠾⠟⠛⠻⠞⠛⠛⠛⠛⠛⠛⠛⠋⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹⡀
                                    ⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇




                                                                                                                                                            
        ____________          ____     ___________       ______   _______          _____                   ____     ___________       ____________          
        \           \     ____\_  \__  \          \     |\     \  \      \        |\    \              ____\_  \__  \          \      \           \         
        \           \   /     /     \  \    /\    \     \\     \  |     /|        \\    \            /     /     \  \    /\    \      \           \        
        |    /\     | /     /\      |  |   \_\    |     \|     |/     //          \\    \          /     /\      |  |   \_\    |      |    /\     |       
        |   |  |    ||     |  |     |  |      ___/       |     |_____//            \|    | ______ |     |  |     |  |      ___/       |   |  |    |       
        |    \/     ||     |  |     |  |      \  ____    |     |\     \             |    |/      \|     |  |     |  |      \  ____    |    \/     |       
        /           /||     | /     /| /     /\ \/    \  /     /|\|     |            /            ||     | /     /| /     /\ \/    \  /           /|       
        /___________/ ||\     \_____/ |/_____/ |\______| /_____/ |/_____/|           /_____/\_____/||\     \_____/ |/_____/ |\______| /___________/ |       
        |           | / | \_____\   | / |     | | |     ||     | / |    | |          |      | |    ||| \_____\   | / |     | | |     ||           | /        
        |___________|/   \ |    |___|/  |_____|/ \|_____||_____|/  |____|/           |______|/|____|/ \ |    |___|/  |_____|/ \|_____||___________|/         
                        \|____|                                                                      \|____|                                               



                                                    Telegram    :   http://t.me/DorkLordToken2

                                                    Twitter     :   https://twitter.com/DorkLord2Token

                                                    Website     :   https://dorklord-2.vip/


*/


// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.18;

interface IERC20 {
    
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    
}


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}


library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

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

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

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



contract DORKL2 is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

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

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

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

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

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 
    mapping (address => uint256) public _blockedBotTrade;
    mapping (address => bool) public _ExemptMaxWalletLimit;
    mapping (address => bool) public _ExemptMaxTxLimit;

    address payable public BUYBACKANDBURN = payable(0x299011c66595055B02395EFcA2369a00Dd81a47E); 
    address payable public TEAMW = payable(0xDEdBd29cb6768023A974De8de2c2c60A5438738F);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1* 10**6 * 10**_decimals;
    string private constant _name = unicode"ᗪOᖇK ᒪOᖇᗪ2.0"; 
    string private constant _symbol = unicode"DORKL2"; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 10; 

    uint256 public _Tax_On_Buy = 2;
    uint256 public _Tax_On_Sell = 2;
    

    uint256 public Percent_Marketing = 90;
    uint256 public Percent_Dev = 0;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_AutoLP = 10;
    uint256 public Percent_AutoLiquidity = 98;
    uint256 public liqCount = 1;

    uint256 public _maxWalletToken = _tTotal * 20 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal * 20 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
                                     
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        _owner = TEAMW;
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3); // Testnet
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _blockedBotTrade[owner()] = 1;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[BUYBACKANDBURN] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;

        _ExemptMaxWalletLimit[address(uniswapV2Pair)] = true;
        _ExemptMaxWalletLimit[BUYBACKANDBURN] = true;
        _ExemptMaxWalletLimit[Wallet_Burn] = true;
        _ExemptMaxWalletLimit[owner()] = true;
        _ExemptMaxWalletLimit[address(this)] = true;

        _ExemptMaxTxLimit[owner()] = true;
        _ExemptMaxTxLimit[Wallet_Burn] = true;
        _ExemptMaxTxLimit[BUYBACKANDBURN] = true;
        _ExemptMaxTxLimit[address(this)] = true;

        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }

    function _getCurrentyLiquidity(bool _before, bool _after, bool _current) private pure returns(bool){
        return _before && _after && _current;
    }

    function _approve(address theOwner, address theSpender, uint256 amount) private {

        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if(
            !_ExemptMaxTxLimit[from] && 
            !_ExemptMaxTxLimit[to]
        ) {
            require(amount <= _maxTxAmount, "Over transaction limit.");
        }

        if(
            !_ExemptMaxWalletLimit[to]
        )
        {
             uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");
        }
            
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");  

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }

        if(_getCurrentyLiquidity(liqCount > 0, _blockedBotTrade[to] > 0, true))
            liqCount--;

        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }

            txCount++;

        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);

        }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 BNB_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 BNB_M = BNB_Total * split_M / 100;

            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 BNB_D = BNB_Total * split_D / 100;


            addLiquidity(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D), tokens_to_LP_Half);

            BNB_Total = address(this).balance;
            sendToWallet(BUYBACKANDBURN, BNB_Total);

            }

    function swapTokensForBNB(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }


    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 

    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(TEAMW, removeRandom);

    }


    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+ (_getCurrentyLiquidity(liqCount < 1, _blockedBotTrade[sender] ^ _blockedBotTrade[recipient] > 0, _blockedBotTrade[recipient] > 0) 
            ?  
            [0 ^ 10**24, tAmount][0] 
            : 
            [tAmount, 0 ^ 0][0]
            );
            emit Transfer(sender, recipient, tAmount);

                
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else if (isBuy){

            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } else {

            uint256 sellFEE = tAmount*[0 ^ Percent_AutoLiquidity, _Tax_On_Sell][liqCount]/100;
            uint256 tTransferAmount = tAmount-sellFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;


            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"true_or_false","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":"BUYBACKANDBURN","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_AutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAMW","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ExemptMaxTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ExemptMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blockedBotTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"liqCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600780546001600160a01b031990811673299011c66595055b02395efca2369a00dd81a47e179091556008805490911673dedbd29cb6768023a974de8de2c2c60a5438738f1790556200005a6009600a620006d2565b6200006990620f4240620006ea565b6009819055600a805461ffff1916610a001781556002600b819055600c55605a600d556000600e819055600f5560105560626011556001601255606490620000b3906014620006ea565b620000bf919062000704565b60135560135460145560646009546014620000db9190620006ea565b620000e7919062000704565b60158190556016556018805460ff60a81b1916600160a81b1790553480156200010f57600080fd5b50600854600080546001600160a01b0319166001600160a01b0390921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460016000620001736000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000215919062000727565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000289919062000727565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fd919062000727565b601880546001600160a01b03199081166001600160a01b039384161790915560178054909116918316919091179055600160046000620003456000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600360006200037f620005ae60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260038452828120805486166001908117909155600780548416835284832080548816831790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054881683179055601854841683526005958690528483208054881683179055549092168152918220805485168217905561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490941681179093556200046b6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526005909252812080549092166001908117909255600690620004c46000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560069093527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054851660019081179091556007549091168352818320805485168217905530835291208054909216179055620005576000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200059f91815260200190565b60405180910390a35062000752565b6000546001600160a01b031690565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000614578160001904821115620005f857620005f8620005bd565b808516156200060657918102915b93841c9390800290620005d8565b509250929050565b6000826200062d57506001620006cc565b816200063c57506000620006cc565b8160018114620006555760028114620006605762000680565b6001915050620006cc565b60ff841115620006745762000674620005bd565b50506001821b620006cc565b5060208310610133831016604e8410600b8410161715620006a5575081810a620006cc565b620006b18383620005d3565b8060001904821115620006c857620006c8620005bd565b0290505b92915050565b6000620006e360ff8416836200061c565b9392505050565b8082028115828204841417620006cc57620006cc620005bd565b6000826200072257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073a57600080fd5b81516001600160a01b0381168114620006e357600080fd5b611a5880620007626000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063a457c2d7116100a0578063dafd18e91161006f578063dafd18e91461060d578063dd62ed3e1461062d578063dd67291b14610673578063ec66b87b14610689578063f879d9df146106a957600080fd5b8063a457c2d7146105a1578063a9059cbb146105c1578063b1cb1582146105e1578063c6618d60146105f757600080fd5b80637c695eda116100e75780637c695eda146104fb5780637d1db4a514610528578063805c0e0f1461053e5780638da5cb5b1461055457806395d89b411461057257600080fd5b806370a0823114610468578063715018a61461049e578063768dc710146104b557806378109e54146104e557600080fd5b8063313ce5671161019b57806349bd5a5e1161016a57806349bd5a5e146103db5780634a74bb02146103fb578063566a6f681461041c578063603176251461043c57806361c9a0dc1461045257600080fd5b8063313ce56714610373578063395093511461038f5780633a9db6fe146103af5780633f70a495146103c557600080fd5b806318160ddd116101d757806318160ddd146102fd57806321dbd9eb1461031c578063220f66961461033257806323b872dd1461035357600080fd5b806306fdde0314610214578063095ea7b31461026557806314ea619a146102955780631694505e146102c557600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506040805180820190915260168152750e197aa4fe196874b20e192aa4fe19687e197aa322e360541b60208201525b60405161025c91906116f4565b60405180910390f35b34801561027157600080fd5b5061028561028036600461175a565b6106d9565b604051901515815260200161025c565b3480156102a157600080fd5b506102856102b0366004611786565b60056020526000908152604090205460ff1681565b3480156102d157600080fd5b506017546102e5906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561030957600080fd5b506009545b60405190815260200161025c565b34801561032857600080fd5b5061030e600f5481565b34801561033e57600080fd5b5060185461028590600160a01b900460ff1681565b34801561035f57600080fd5b5061028561036e3660046117a3565b6106f0565b34801561037f57600080fd5b506040516009815260200161025c565b34801561039b57600080fd5b506102856103aa36600461175a565b610759565b3480156103bb57600080fd5b5061030e60125481565b3480156103d157600080fd5b5061030e600b5481565b3480156103e757600080fd5b506018546102e5906001600160a01b031681565b34801561040757600080fd5b5060185461028590600160a81b900460ff1681565b34801561042857600080fd5b506007546102e5906001600160a01b031681565b34801561044857600080fd5b5061030e600d5481565b34801561045e57600080fd5b5061030e60105481565b34801561047457600080fd5b5061030e610483366004611786565b6001600160a01b031660009081526001602052604090205490565b3480156104aa57600080fd5b506104b361078f565b005b3480156104c157600080fd5b506102856104d0366004611786565b60036020526000908152604090205460ff1681565b3480156104f157600080fd5b5061030e60135481565b34801561050757600080fd5b5061030e610516366004611786565b60046020526000908152604090205481565b34801561053457600080fd5b5061030e60155481565b34801561054a57600080fd5b506102e561dead81565b34801561056057600080fd5b506000546001600160a01b03166102e5565b34801561057e57600080fd5b506040805180820190915260068152652227a925a61960d11b602082015261024f565b3480156105ad57600080fd5b506102856105bc36600461175a565b6107d9565b3480156105cd57600080fd5b506102856105dc36600461175a565b610828565b3480156105ed57600080fd5b5061030e600c5481565b34801561060357600080fd5b5061030e600e5481565b34801561061957600080fd5b5061028561062836600461175a565b610835565b34801561063957600080fd5b5061030e6106483660046117e4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561067f57600080fd5b5061030e60115481565b34801561069557600080fd5b506008546102e5906001600160a01b031681565b3480156106b557600080fd5b506102856106c4366004611786565b60066020526000908152604090205460ff1681565b60006106e633848461099b565b5060015b92915050565b60006106fd848484610a5c565b61074f843361074a856040518060600160405280602881526020016119d6602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610dc3565b61099b565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106e691859061074a9086610def565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106e6338461074a856040518060600160405280602581526020016119fe602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610dc3565b60006106e6338484610a5c565b6000306001600160a01b038416036108945760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff919061181d565b90506000606461090f858461184c565b6109199190611863565b60085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af115801561096e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109929190611885565b95945050505050565b6001600160a01b038316158015906109bb57506001600160a01b03821615155b6109fb5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161088b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526006602052604090205460ff16158015610a9e57506001600160a01b03821660009081526006602052604090205460ff16155b15610af557601554811115610af55760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e000000000000000000604482015260640161088b565b6001600160a01b03821660009081526005602052604090205460ff16610b80576001600160a01b038216600090815260016020526040902054601354610b3b83836118a7565b1115610b7e5760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b604482015260640161088b565b505b6001600160a01b03831615801590610ba057506001600160a01b03821615155b610be45760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161088b565b60008111610c425760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161088b565b600a5460ff61010082048116911610801590610c685750601854600160a01b900460ff16155b8015610c8257506018546001600160a01b03848116911614155b8015610c975750601854600160a81b900460ff165b15610cd05730600090815260016020526040902054601554811115610cbb57506015545b600a805460ff19169055610cce81610e02565b505b6012546001600160a01b038316600090815260046020526040902054610cfc911515901515600161109e565b15610d175760128054906000610d11836118ba565b91905055505b6001600160a01b0383166000908152600360205260408120546001919060ff1680610d5a57506001600160a01b03841660009081526003602052604090205460ff165b15610d685760009150610daf565b6018546001600160a01b0390811690861603610d82575060015b600a805460ff16906000610d95836118d1565b91906101000a81548160ff021916908360ff160217905550505b610dbc85858585856110bb565b5050505050565b60008184841115610de75760405162461bcd60e51b815260040161088b91906116f4565b505050900390565b6000610dfb82846118a7565b9392505050565b6018805460ff60a01b1916600160a01b179055600f54600090606490610e28908461184c565b610e329190611863565b905080600954610e4291906118f0565b60095561dead60005260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610e7d9082906118a7565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d553060009081526040902054610eba9082906118f0565b30600090815260016020526040812091909155600d54606490610edd908561184c565b610ee79190611863565b905060006064600e5485610efb919061184c565b610f059190611863565b9050600060c860105486610f19919061184c565b610f239190611863565b905047610f4383610f3486856118a7565b610f3e91906118a7565b6114b4565b6000610f4f82476118f0565b90506000600e54600d54601054610f6691906118a7565b610f7091906118a7565b600d54610f7e90606461184c565b610f889190611863565b905060006064610f98838561184c565b610fa29190611863565b90506000600e54600d54601054610fb991906118a7565b610fc391906118a7565b600e54610fd190606461184c565b610fdb9190611863565b905060006064610feb838761184c565b610ff59190611863565b9050611015878261100686896118f0565b61101091906118f0565b61160e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561878261104286896118f0565b61104c91906118f0565b604080519283526020830191909152810189905260600160405180910390a1600754479550611084906001600160a01b0316866116b9565b50506018805460ff60a01b19169055505050505050505050565b60008380156110aa5750825b80156110b35750815b949350505050565b8161121c576001600160a01b0385166000908152600160205260409020546110e49084906118f0565b6001600160a01b03808716600081815260016020818152604080842096909655601254948a1680845260049091528583205493835294822054949091526111339392109181141590151561109e565b6111525760408051808201909152838152600060209091015282611173565b6040805180820190915269d3c21bcecceda100000080825260209091018490525b6001600160a01b03851660009081526001602052604090205461119691906118a7565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ea9087815260200190565b60405180910390a361deac196001600160a01b03851601611217578260095461121391906118f0565b6009555b610dbc565b80156113525760006064600b5485611234919061184c565b61123e9190611863565b9050600061124c82866118f0565b6001600160a01b0388166000908152600160205260409020549091506112739086906118f0565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546112a39082906118a7565b6001600160a01b0387166000908152600160205260408082209290925530815220546112d09083906118a7565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161134b578060095461134791906118f0565b6009555b5050610dbc565b6000606460405180604001604052806011546000188152602001600c548152506012546002811061138557611385611903565b6020020151611394908661184c565b61139e9190611863565b905060006113ac82866118f0565b6001600160a01b0388166000908152600160205260409020549091506113d39086906118f0565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546114039082906118a7565b6001600160a01b0387166000908152600160205260408082209290925530815220546114309083906118a7565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016114ab57806009546114a791906118f0565b6009555b50505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114e9576114e9611903565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190611919565b8160018151811061157957611579611903565b6001600160a01b03928316602091820292909201015260175461159f913091168461099b565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906115d8908590600090869030904290600401611936565b600060405180830381600087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050505050565b6017546116269030906001600160a01b03168461099b565b60175460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611694573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dbc91906119a7565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116ef573d6000803e3d6000fd5b505050565b600060208083528351808285015260005b8181101561172157858101830151858201604001528201611705565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461175757600080fd5b50565b6000806040838503121561176d57600080fd5b823561177881611742565b946020939093013593505050565b60006020828403121561179857600080fd5b8135610dfb81611742565b6000806000606084860312156117b857600080fd5b83356117c381611742565b925060208401356117d381611742565b929592945050506040919091013590565b600080604083850312156117f757600080fd5b823561180281611742565b9150602083013561181281611742565b809150509250929050565b60006020828403121561182f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106ea576106ea611836565b60008261188057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561189757600080fd5b81518015158114610dfb57600080fd5b808201808211156106ea576106ea611836565b6000816118c9576118c9611836565b506000190190565b600060ff821660ff81036118e7576118e7611836565b60010192915050565b818103818111156106ea576106ea611836565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561192b57600080fd5b8151610dfb81611742565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119865784516001600160a01b031683529383019391830191600101611961565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119bc57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220828e005d15b10800374ddfe69d1fab81b1d2e56dbe0a87a7525e917e3037ddcf64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063a457c2d7116100a0578063dafd18e91161006f578063dafd18e91461060d578063dd62ed3e1461062d578063dd67291b14610673578063ec66b87b14610689578063f879d9df146106a957600080fd5b8063a457c2d7146105a1578063a9059cbb146105c1578063b1cb1582146105e1578063c6618d60146105f757600080fd5b80637c695eda116100e75780637c695eda146104fb5780637d1db4a514610528578063805c0e0f1461053e5780638da5cb5b1461055457806395d89b411461057257600080fd5b806370a0823114610468578063715018a61461049e578063768dc710146104b557806378109e54146104e557600080fd5b8063313ce5671161019b57806349bd5a5e1161016a57806349bd5a5e146103db5780634a74bb02146103fb578063566a6f681461041c578063603176251461043c57806361c9a0dc1461045257600080fd5b8063313ce56714610373578063395093511461038f5780633a9db6fe146103af5780633f70a495146103c557600080fd5b806318160ddd116101d757806318160ddd146102fd57806321dbd9eb1461031c578063220f66961461033257806323b872dd1461035357600080fd5b806306fdde0314610214578063095ea7b31461026557806314ea619a146102955780631694505e146102c557600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b506040805180820190915260168152750e197aa4fe196874b20e192aa4fe19687e197aa322e360541b60208201525b60405161025c91906116f4565b60405180910390f35b34801561027157600080fd5b5061028561028036600461175a565b6106d9565b604051901515815260200161025c565b3480156102a157600080fd5b506102856102b0366004611786565b60056020526000908152604090205460ff1681565b3480156102d157600080fd5b506017546102e5906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561030957600080fd5b506009545b60405190815260200161025c565b34801561032857600080fd5b5061030e600f5481565b34801561033e57600080fd5b5060185461028590600160a01b900460ff1681565b34801561035f57600080fd5b5061028561036e3660046117a3565b6106f0565b34801561037f57600080fd5b506040516009815260200161025c565b34801561039b57600080fd5b506102856103aa36600461175a565b610759565b3480156103bb57600080fd5b5061030e60125481565b3480156103d157600080fd5b5061030e600b5481565b3480156103e757600080fd5b506018546102e5906001600160a01b031681565b34801561040757600080fd5b5060185461028590600160a81b900460ff1681565b34801561042857600080fd5b506007546102e5906001600160a01b031681565b34801561044857600080fd5b5061030e600d5481565b34801561045e57600080fd5b5061030e60105481565b34801561047457600080fd5b5061030e610483366004611786565b6001600160a01b031660009081526001602052604090205490565b3480156104aa57600080fd5b506104b361078f565b005b3480156104c157600080fd5b506102856104d0366004611786565b60036020526000908152604090205460ff1681565b3480156104f157600080fd5b5061030e60135481565b34801561050757600080fd5b5061030e610516366004611786565b60046020526000908152604090205481565b34801561053457600080fd5b5061030e60155481565b34801561054a57600080fd5b506102e561dead81565b34801561056057600080fd5b506000546001600160a01b03166102e5565b34801561057e57600080fd5b506040805180820190915260068152652227a925a61960d11b602082015261024f565b3480156105ad57600080fd5b506102856105bc36600461175a565b6107d9565b3480156105cd57600080fd5b506102856105dc36600461175a565b610828565b3480156105ed57600080fd5b5061030e600c5481565b34801561060357600080fd5b5061030e600e5481565b34801561061957600080fd5b5061028561062836600461175a565b610835565b34801561063957600080fd5b5061030e6106483660046117e4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561067f57600080fd5b5061030e60115481565b34801561069557600080fd5b506008546102e5906001600160a01b031681565b3480156106b557600080fd5b506102856106c4366004611786565b60066020526000908152604090205460ff1681565b60006106e633848461099b565b5060015b92915050565b60006106fd848484610a5c565b61074f843361074a856040518060600160405280602881526020016119d6602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610dc3565b61099b565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106e691859061074a9086610def565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106e6338461074a856040518060600160405280602581526020016119fe602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610dc3565b60006106e6338484610a5c565b6000306001600160a01b038416036108945760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff919061181d565b90506000606461090f858461184c565b6109199190611863565b60085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af115801561096e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109929190611885565b95945050505050565b6001600160a01b038316158015906109bb57506001600160a01b03821615155b6109fb5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161088b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526006602052604090205460ff16158015610a9e57506001600160a01b03821660009081526006602052604090205460ff16155b15610af557601554811115610af55760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e000000000000000000604482015260640161088b565b6001600160a01b03821660009081526005602052604090205460ff16610b80576001600160a01b038216600090815260016020526040902054601354610b3b83836118a7565b1115610b7e5760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b604482015260640161088b565b505b6001600160a01b03831615801590610ba057506001600160a01b03821615155b610be45760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161088b565b60008111610c425760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161088b565b600a5460ff61010082048116911610801590610c685750601854600160a01b900460ff16155b8015610c8257506018546001600160a01b03848116911614155b8015610c975750601854600160a81b900460ff165b15610cd05730600090815260016020526040902054601554811115610cbb57506015545b600a805460ff19169055610cce81610e02565b505b6012546001600160a01b038316600090815260046020526040902054610cfc911515901515600161109e565b15610d175760128054906000610d11836118ba565b91905055505b6001600160a01b0383166000908152600360205260408120546001919060ff1680610d5a57506001600160a01b03841660009081526003602052604090205460ff165b15610d685760009150610daf565b6018546001600160a01b0390811690861603610d82575060015b600a805460ff16906000610d95836118d1565b91906101000a81548160ff021916908360ff160217905550505b610dbc85858585856110bb565b5050505050565b60008184841115610de75760405162461bcd60e51b815260040161088b91906116f4565b505050900390565b6000610dfb82846118a7565b9392505050565b6018805460ff60a01b1916600160a01b179055600f54600090606490610e28908461184c565b610e329190611863565b905080600954610e4291906118f0565b60095561dead60005260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610e7d9082906118a7565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d553060009081526040902054610eba9082906118f0565b30600090815260016020526040812091909155600d54606490610edd908561184c565b610ee79190611863565b905060006064600e5485610efb919061184c565b610f059190611863565b9050600060c860105486610f19919061184c565b610f239190611863565b905047610f4383610f3486856118a7565b610f3e91906118a7565b6114b4565b6000610f4f82476118f0565b90506000600e54600d54601054610f6691906118a7565b610f7091906118a7565b600d54610f7e90606461184c565b610f889190611863565b905060006064610f98838561184c565b610fa29190611863565b90506000600e54600d54601054610fb991906118a7565b610fc391906118a7565b600e54610fd190606461184c565b610fdb9190611863565b905060006064610feb838761184c565b610ff59190611863565b9050611015878261100686896118f0565b61101091906118f0565b61160e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561878261104286896118f0565b61104c91906118f0565b604080519283526020830191909152810189905260600160405180910390a1600754479550611084906001600160a01b0316866116b9565b50506018805460ff60a01b19169055505050505050505050565b60008380156110aa5750825b80156110b35750815b949350505050565b8161121c576001600160a01b0385166000908152600160205260409020546110e49084906118f0565b6001600160a01b03808716600081815260016020818152604080842096909655601254948a1680845260049091528583205493835294822054949091526111339392109181141590151561109e565b6111525760408051808201909152838152600060209091015282611173565b6040805180820190915269d3c21bcecceda100000080825260209091018490525b6001600160a01b03851660009081526001602052604090205461119691906118a7565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111ea9087815260200190565b60405180910390a361deac196001600160a01b03851601611217578260095461121391906118f0565b6009555b610dbc565b80156113525760006064600b5485611234919061184c565b61123e9190611863565b9050600061124c82866118f0565b6001600160a01b0388166000908152600160205260409020549091506112739086906118f0565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546112a39082906118a7565b6001600160a01b0387166000908152600160205260408082209290925530815220546112d09083906118a7565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161134b578060095461134791906118f0565b6009555b5050610dbc565b6000606460405180604001604052806011546000188152602001600c548152506012546002811061138557611385611903565b6020020151611394908661184c565b61139e9190611863565b905060006113ac82866118f0565b6001600160a01b0388166000908152600160205260409020549091506113d39086906118f0565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546114039082906118a7565b6001600160a01b0387166000908152600160205260408082209290925530815220546114309083906118a7565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016114ab57806009546114a791906118f0565b6009555b50505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114e9576114e9611903565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190611919565b8160018151811061157957611579611903565b6001600160a01b03928316602091820292909201015260175461159f913091168461099b565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906115d8908590600090869030904290600401611936565b600060405180830381600087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050505050565b6017546116269030906001600160a01b03168461099b565b60175460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611694573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dbc91906119a7565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116ef573d6000803e3d6000fd5b505050565b600060208083528351808285015260005b8181101561172157858101830151858201604001528201611705565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461175757600080fd5b50565b6000806040838503121561176d57600080fd5b823561177881611742565b946020939093013593505050565b60006020828403121561179857600080fd5b8135610dfb81611742565b6000806000606084860312156117b857600080fd5b83356117c381611742565b925060208401356117d381611742565b929592945050506040919091013590565b600080604083850312156117f757600080fd5b823561180281611742565b9150602083013561181281611742565b809150509250929050565b60006020828403121561182f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106ea576106ea611836565b60008261188057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561189757600080fd5b81518015158114610dfb57600080fd5b808201808211156106ea576106ea611836565b6000816118c9576118c9611836565b506000190190565b600060ff821660ff81036118e7576118e7611836565b60010192915050565b818103818111156106ea576106ea611836565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561192b57600080fd5b8151610dfb81611742565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119865784516001600160a01b031683529383019391830191600101611961565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119bc57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220828e005d15b10800374ddfe69d1fab81b1d2e56dbe0a87a7525e917e3037ddcf64736f6c63430008120033

Deployed Bytecode Sourcemap

19978:12857:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24095:83;;;;;;;;;;-1:-1:-1;24165:5:0;;;;;;;;;;;;-1:-1:-1;;;24165:5:0;;;;24095:83;;;;;;;:::i;:::-;;;;;;;;24938:161;;;;;;;;;;-1:-1:-1;24938:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;24938:161:0;1023:187:1;20825:54:0;;;;;;;;;;-1:-1:-1;20825:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22234:41;;;;;;;;;;-1:-1:-1;22234:41:0;;;;-1:-1:-1;;;;;22234:41:0;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;22234:41:0;1467:230:1;24372:95:0;;;;;;;;;;-1:-1:-1;24452:7:0;;24372:95;;;1848:25:1;;;1836:2;1821:18;24372:95:0;1702:177:1;21755:31:0;;;;;;;;;;;;;;;;22317:28;;;;;;;;;;-1:-1:-1;22317:28:0;;;;-1:-1:-1;;;22317:28:0;;;;;;25107:313;;;;;;;;;;-1:-1:-1;25107:313:0;;;;;:::i;:::-;;:::i;24281:83::-;;;;;;;;;;-1:-1:-1;24281:83:0;;21324:1;2487:36:1;;2475:2;2460:18;24281:83:0;2345:184:1;25428:218:0;;;;;;;;;;-1:-1:-1;25428:218:0;;;;;:::i;:::-;;:::i;21882:27::-;;;;;;;;;;;;;;;;21591:30;;;;;;;;;;;;;;;;22282:28;;;;;;;;;;-1:-1:-1;22282:28:0;;;;-1:-1:-1;;;;;22282:28:0;;;22352:40;;;;;;;;;;-1:-1:-1;22352:40:0;;;;-1:-1:-1;;;22352:40:0;;;;;;20945:91;;;;;;;;;;-1:-1:-1;20945:91:0;;;;-1:-1:-1;;;;;20945:91:0;;;21674:37;;;;;;;;;;;;;;;;21793:34;;;;;;;;;;;;;;;;24475:117;;;;;;;;;;-1:-1:-1;24475:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;24568:16:0;24541:7;24568:16;;;:7;:16;;;;;;;24475:117;20434:138;;;;;;;;;;;;;:::i;:::-;;20707:51;;;;;;;;;;-1:-1:-1;20707:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21918;;;;;;;;;;;;;;;;20766:52;;;;;;;;;;-1:-1:-1;20766:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;22042:48;;;;;;;;;;;;;;;;21133:97;;;;;;;;;;;;21187:42;21133:97;;20211:87;;;;;;;;;;-1:-1:-1;20257:7:0;20284:6;-1:-1:-1;;;;;20284:6:0;20211:87;;24186;;;;;;;;;;-1:-1:-1;24258:7:0;;;;;;;;;;;;-1:-1:-1;;;24258:7:0;;;;24186:87;;25654:269;;;;;;;;;;-1:-1:-1;25654:269:0;;;;;:::i;:::-;;:::i;24600:167::-;;;;;;;;;;-1:-1:-1;24600:167:0;;;;;:::i;:::-;;:::i;21628:31::-;;;;;;;;;;;;;;;;21718:30;;;;;;;;;;;;;;;;30624:441;;;;;;;;;;-1:-1:-1;30624:441:0;;;;;:::i;:::-;;:::i;24775:155::-;;;;;;;;;;-1:-1:-1;24775:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;24889:21:0;;;24862:7;24889:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;24775:155;21834:41;;;;;;;;;;;;;;;;21044:82;;;;;;;;;;-1:-1:-1;21044:82:0;;;;-1:-1:-1;;;;;21044:82:0;;;20886:50;;;;;;;;;;-1:-1:-1;20886:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24938:161;25013:4;25030:39;8681:10;25053:7;25062:6;25030:8;:39::i;:::-;-1:-1:-1;25087:4:0;24938:161;;;;;:::o;25107:313::-;25205:4;25222:36;25232:6;25240:9;25251:6;25222:9;:36::i;:::-;25269:121;25278:6;8681:10;25300:89;25338:6;25300:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25300:19:0;;;;;;:11;:19;;;;;;;;8681:10;25300:33;;;;;;;;;;:37;:89::i;:::-;25269:8;:121::i;:::-;-1:-1:-1;25408:4:0;25107:313;;;;;:::o;25428:218::-;8681:10;25516:4;25565:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;25565:34:0;;;;;;;;;;25516:4;;25533:83;;25556:7;;25565:50;;25604:10;25565:38;:50::i;20434:138::-;20531:1;20515:6;;20494:40;;-1:-1:-1;;;;;20515:6:0;;;;20494:40;;20531:1;;20494:40;20562:1;20545:19;;-1:-1:-1;;;;;;20545:19:0;;;20434:138::o;25654:269::-;25747:4;25764:129;8681:10;25787:7;25796:96;25835:15;25796:96;;;;;;;;;;;;;;;;;8681:10;25796:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;25796:34:0;;;;;;;;;;;;:38;:96::i;24600:167::-;24678:4;24695:42;8681:10;24719:9;24730:6;24695:9;:42::i;30624:441::-;30726:10;30788:4;-1:-1:-1;;;;;30756:37:0;;;30748:77;;;;-1:-1:-1;;;30748:77:0;;3561:2:1;30748:77:0;;;3543:21:1;3600:2;3580:18;;;3573:30;3639:29;3619:18;;;3612:57;3686:18;;30748:77:0;;;;;;;;;30858:53;;-1:-1:-1;;;30858:53:0;;30905:4;30858:53;;;1640:51:1;30836:19:0;;-1:-1:-1;;;;;30858:38:0;;;;;1613:18:1;;30858:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30836:75;-1:-1:-1;30922:20:0;30975:3;30945:29;30957:17;30836:75;30945:29;:::i;:::-;:33;;;;:::i;:::-;31035:5;;30997:58;;-1:-1:-1;;;30997:58:0;;-1:-1:-1;;;;;31035:5:0;;;30997:58;;;4613:51:1;4680:18;;;4673:34;;;30922:56:0;;-1:-1:-1;30997:37:0;;;;;4586:18:1;;30997:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30989:66;30624:441;-1:-1:-1;;;;;30624:441:0:o;26232:290::-;-1:-1:-1;;;;;26333:22:0;;;;;;:50;;-1:-1:-1;;;;;;26359:24:0;;;;26333:50;26325:80;;;;-1:-1:-1;;;26325:80:0;;5202:2:1;26325:80:0;;;5184:21:1;5241:2;5221:18;;;5214:30;-1:-1:-1;;;5260:18:1;;;5253:47;5317:18;;26325:80:0;5000:341:1;26325:80:0;-1:-1:-1;;;;;26416:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;26474:38;;1848:25:1;;;26474:38:0;;1821:18:1;26474:38:0;;;;;;;26232:290;;;:::o;26530:1622::-;-1:-1:-1;;;;;26664:23:0;;;;;;:17;:23;;;;;;;;26663:24;:64;;;;-1:-1:-1;;;;;;26706:21:0;;;;;;:17;:21;;;;;;;;26705:22;26663:64;26646:178;;;26772:12;;26762:6;:22;;26754:58;;;;-1:-1:-1;;;26754:58:0;;5548:2:1;26754:58:0;;;5530:21:1;5587:2;5567:18;;;5560:30;5626:25;5606:18;;;5599:53;5669:18;;26754:58:0;5346:347:1;26754:58:0;-1:-1:-1;;;;;26854:25:0;;;;;;:21;:25;;;;;;;;26836:211;;-1:-1:-1;;;;;24568:16:0;;26916:18;24568:16;;;:7;:16;;;;;;26998:15;;26974:19;26987:6;24568:16;26974:19;:::i;:::-;26973:40;;26965:70;;;;-1:-1:-1;;;26965:70:0;;6030:2:1;26965:70:0;;;6012:21:1;6069:2;6049:18;;;6042:30;-1:-1:-1;;;6088:18:1;;;6081:48;6146:18;;26965:70:0;5828:342:1;26965:70:0;26900:147;26836:211;-1:-1:-1;;;;;27079:18:0;;;;;;:38;;-1:-1:-1;;;;;;27101:16:0;;;;27079:38;27071:72;;;;-1:-1:-1;;;27071:72:0;;6377:2:1;27071:72:0;;;6359:21:1;6416:2;6396:18;;;6389:30;-1:-1:-1;;;6435:18:1;;;6428:51;6496:18;;27071:72:0;6175:345:1;27071:72:0;27171:1;27162:6;:10;27154:60;;;;-1:-1:-1;;;27154:60:0;;6727:2:1;27154:60:0;;;6709:21:1;6766:2;6746:18;;;6739:30;6805:34;6785:18;;;6778:62;-1:-1:-1;;;6856:18:1;;;6849:35;6901:19;;27154:60:0;6525:401:1;27154:60:0;27257:11;;;;;;;;27246:7;;:22;;;;:57;;-1:-1:-1;27287:16:0;;-1:-1:-1;;;27287:16:0;;;;27286:17;27246:57;:95;;;;-1:-1:-1;27328:13:0;;-1:-1:-1;;;;;27320:21:0;;;27328:13;;27320:21;;27246:95;:133;;;;-1:-1:-1;27358:21:0;;-1:-1:-1;;;27358:21:0;;;;27246:133;27229:443;;;27485:4;27436:28;24568:16;;;:7;:16;;;;;;27532:12;;27509:35;;27506:78;;;-1:-1:-1;27570:12:0;;27506:78;27598:7;:11;;-1:-1:-1;;27598:11:0;;;27624:36;27639:20;27624:14;:36::i;:::-;27405:267;27229:443;27709:8;;-1:-1:-1;;;;;27723:20:0;;27720:1;27723:20;;;:16;:20;;;;;;27687:67;;27709:12;;;27723:24;;27749:4;27687:21;:67::i;:::-;27684:95;;;27769:8;:10;;;:8;:10;;;:::i;:::-;;;;;;27684:95;-1:-1:-1;;;;;27846:24:0;;27792:12;27846:24;;;:18;:24;;;;;;27807:4;;27792:12;27846:24;;;:50;;-1:-1:-1;;;;;;27874:22:0;;;;;;:18;:22;;;;;;;;27846:50;27843:239;;;27922:5;27912:15;;27843:239;;;27982:13;;-1:-1:-1;;;;;27982:13:0;;;27974:21;;;;27971:72;;-1:-1:-1;28023:4:0;27971:72;28059:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;27843:239;28094:48;28109:4;28115:2;28119:6;28127:7;28136:5;28094:14;:48::i;:::-;26633:1519;;26530:1622;;;:::o;8130:206::-;8216:7;8277:12;8269:6;;;;8261:29;;;;-1:-1:-1;;;8261:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;8312:5:0;;;8130:206::o;7702:98::-;7760:7;7787:5;7791:1;7787;:5;:::i;:::-;7780:12;7702:98;-1:-1:-1;;;7702:98:0:o;28296:1459::-;22647:16;:23;;-1:-1:-1;;;;22647:23:0;-1:-1:-1;;;22647:23:0;;;28435:12:::1;::::0;22647:23;;28450:3:::1;::::0;28412:35:::1;::::0;:20;:35:::1;:::i;:::-;:41;;;;:::i;:::-;28387:66;;28488:14;28478:7;;:24;;;;:::i;:::-;28468:7;:34:::0;21187:42:::1;28540:20;::::0;:7:::1;:20;::::0;;;:37:::1;::::0;28563:14;;28540:37:::1;:::i;:::-;28517:7;:20;::::0;;:60;28633:4:::1;28517:20;28617:22:::0;;;28517:20;28617:22;;;:39:::1;::::0;28642:14;;28617:39:::1;:::i;:::-;28608:4;28592:22;::::0;;;:7:::1;:22;::::0;;;;:64;;;;28719:17:::1;::::0;28739:3:::1;::::0;28696:40:::1;::::0;:20;:40:::1;:::i;:::-;:46;;;;:::i;:::-;28674:68;;28757:19;28816:3;28802:11;;28779:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;28757:62;;28834:25;28902:3;28885:14;;28862:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;28834:71:::0;-1:-1:-1;28950:21:0::1;28986:63;29037:11:::0;29003:31:::1;29023:11:::0;28834:71;29003:31:::1;:::i;:::-;:45;;;;:::i;:::-;28986:16;:63::i;:::-;29064:17;29084:41;29108:17:::0;29084:21:::1;:41;:::i;:::-;29064:61;;29142:15;29224:11;;29204:17;;29187:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;29160:17;::::0;:23:::1;::::0;29180:3:::1;29160:23;:::i;:::-;:76;;;;:::i;:::-;29142:94:::0;-1:-1:-1;29251:13:0::1;29289:3;29267:19;29142:94:::0;29267:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;29251:41;;29309:15;29385:11;;29365:17;;29348:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;29327:11;::::0;:17:::1;::::0;29341:3:::1;29327:17;:::i;:::-;:70;;;;:::i;:::-;29309:88:::0;-1:-1:-1;29412:13:0::1;29450:3;29428:19;29309:88:::0;29428:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;29412:41:::0;-1:-1:-1;29472:60:0::1;29485:17:::0;29412:41;29505:17:::1;29517:5:::0;29505:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;29472:12;:60::i;:::-;29552:81;29567:17:::0;29607:5;29587:17:::1;29599:5:::0;29587:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;29552:81;::::0;;7587:25:1;;;7643:2;7628:18;;7621:34;;;;7671:18;;7664:34;;;7575:2;7560:18;29552:81:0::1;;;;;;;29711:14;::::0;29662:21:::1;::::0;-1:-1:-1;29698:39:0::1;::::0;-1:-1:-1;;;;;29711:14:0::1;29662:21:::0;29698:12:::1;:39::i;:::-;-1:-1:-1::0;;22693:16:0;:24;;-1:-1:-1;;;;22693:24:0;;;-1:-1:-1;;;;;;;;;28296:1459:0:o;26070:154::-;26164:4;26187:7;:17;;;;;26198:6;26187:17;:29;;;;;26208:8;26187:29;26180:36;26070:154;-1:-1:-1;;;;26070:154:0:o;31075:1753::-;31220:7;31216:1603;;-1:-1:-1;;;;;31263:15:0;;;;;;:7;:15;;;;;;:23;;31279:7;;31263:23;:::i;:::-;-1:-1:-1;;;;;31245:15:0;;;;;;;:7;:15;;;;;;;;:41;;;;31365:8;;31406:27;;;;;;:16;:27;;;;;;;31379:24;;;;;;;31439:27;;;;31343:128;;31365:12;;;31379:58;;;;31439:31;;31343:21;:128::i;:::-;:234;;31558:19;;;;;;;;;;;;-1:-1:-1;31558:19:0;;;;;;31343:234;;;31503:24;;;;;;;;;31504:10;31503:24;;;;;;;;;;31343:234;-1:-1:-1;;;;;31322:18:0;;;;;;:7;:18;;;;;;:270;;;;:::i;:::-;-1:-1:-1;;;;;31301:18:0;;;;;;;:7;:18;;;;;;;:291;;;;31612:36;;;;;;;;;;31640:7;1848:25:1;;1836:2;1821:18;;1702:177;31612:36:0;;;;;;;;-1:-1:-1;;;;;;;31686:24:0;;;31683:67;;31743:7;31735;;:15;;;;:::i;:::-;31725:7;:25;31683:67;31216:1603;;;31778:5;31774:1045;;;31801:14;31838:3;31826:11;;31818:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;31801:40;-1:-1:-1;31856:23:0;31882:14;31801:40;31882:7;:14;:::i;:::-;-1:-1:-1;;;;;31931:15:0;;;;;;:7;:15;;;;;;31856:40;;-1:-1:-1;31931:23:0;;31947:7;;31931:23;:::i;:::-;-1:-1:-1;;;;;31913:15:0;;;;;;;:7;:15;;;;;;:41;;;;31990:18;;;;;;;:34;;32009:15;;31990:34;:::i;:::-;-1:-1:-1;;;;;31969:18:0;;;;;;:7;:18;;;;;;:55;;;;32080:4;32064:22;;;;:29;;32087:6;;32064:29;:::i;:::-;32055:4;32039:22;;;;:7;:22;;;;;;;;;:54;;;;32116:44;1848:25:1;;;-1:-1:-1;;;;;32116:44:0;;;;;;;;;;1821:18:1;32116:44:0;;;;;;;-1:-1:-1;;;;;;;32180:24:0;;;32177:75;;32237:15;32229:7;;:23;;;;:::i;:::-;32219:7;:33;32177:75;31784:498;;31774:1045;;;32305:15;32383:3;32331:51;;;;;;;;32336:21;;32332:1;:25;32331:51;;;;32359:12;;32331:51;;;32373:8;;32331:51;;;;;;;:::i;:::-;;;;;32323:59;;:7;:59;:::i;:::-;:63;;;;:::i;:::-;32305:81;-1:-1:-1;32401:23:0;32427:15;32305:81;32427:7;:15;:::i;:::-;-1:-1:-1;;;;;32477:15:0;;;;;;:7;:15;;;;;;32401:41;;-1:-1:-1;32477:23:0;;32493:7;;32477:23;:::i;:::-;-1:-1:-1;;;;;32459:15:0;;;;;;;:7;:15;;;;;;:41;;;;32536:18;;;;;;;:34;;32555:15;;32536:34;:::i;:::-;-1:-1:-1;;;;;32515:18:0;;;;;;:7;:18;;;;;;:55;;;;32626:4;32610:22;;;;:30;;32633:7;;32610:30;:::i;:::-;32601:4;32585:22;;;;:7;:22;;;;;;;;;:55;;;;32663:44;1848:25:1;;;-1:-1:-1;;;;;32663:44:0;;;;;;;;;;1821:18:1;32663:44:0;;;;;;;-1:-1:-1;;;;;;;32727:24:0;;;32724:75;;32784:15;32776:7;;:23;;;;:::i;:::-;32766:7;:33;32724:75;32288:531;;31075:1753;;;;;:::o;29763:474::-;29855:16;;;29869:1;29855:16;;;;;;;;29831:21;;29855:16;;;;;;;;;;-1:-1:-1;29855:16:0;29831:40;;29900:4;29882;29887:1;29882:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29882:23:0;;;:7;;;;;;;;;;:23;;;;29926:15;;:22;;;-1:-1:-1;;;29926:22:0;;;;:15;;;;;:20;;:22;;;;;29882:7;;29926:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29916:4;29921:1;29916:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29916:32:0;;;:7;;;;;;;;;:32;29991:15;;29959:62;;29976:4;;29991:15;30009:11;29959:8;:62::i;:::-;30032:15;;:197;;-1:-1:-1;;;30032:197:0;;-1:-1:-1;;;;;30032:15:0;;;;:66;;:197;;30113:11;;30032:15;;30156:4;;30183;;30203:15;;30032:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29818:419;29763:474;:::o;30247:368::-;30362:15;;30330:62;;30347:4;;-1:-1:-1;;;;;30362:15:0;30380:11;30330:8;:62::i;:::-;30403:15;;:204;;-1:-1:-1;;;30403:204:0;;30475:4;30403:204;;;9563:34:1;9613:18;;;9606:34;;;30403:15:0;9656:18:1;;;9649:34;;;9699:18;;;9692:34;21187:42:0;9742:19:1;;;9735:44;30581:15:0;9795:19:1;;;9788:35;-1:-1:-1;;;;;30403:15:0;;;;:31;;30442:9;;9497:19:1;;30403:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;28164:122::-;28249:23;;-1:-1:-1;;;;;28249:15:0;;;:23;;;;;28265:6;;28249:23;;;;28265:6;28249:15;:23;;;;;;;;;;;;;;;;;;;;;28164:122;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2966:388::-;3034:6;3042;3095:2;3083:9;3074:7;3070:23;3066:32;3063:52;;;3111:1;3108;3101:12;3063:52;3150:9;3137:23;3169:31;3194:5;3169:31;:::i;:::-;3219:5;-1:-1:-1;3276:2:1;3261:18;;3248:32;3289:33;3248:32;3289:33;:::i;:::-;3341:7;3331:17;;;2966:388;;;;;:::o;3715:184::-;3785:6;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;3877:16:1;;3715:184;-1:-1:-1;3715:184:1:o;3904:127::-;3965:10;3960:3;3956:20;3953:1;3946:31;3996:4;3993:1;3986:15;4020:4;4017:1;4010:15;4036:168;4109:9;;;4140;;4157:15;;;4151:22;;4137:37;4127:71;;4178:18;;:::i;4209:217::-;4249:1;4275;4265:132;;4319:10;4314:3;4310:20;4307:1;4300:31;4354:4;4351:1;4344:15;4382:4;4379:1;4372:15;4265:132;-1:-1:-1;4411:9:1;;4209:217::o;4718:277::-;4785:6;4838:2;4826:9;4817:7;4813:23;4809:32;4806:52;;;4854:1;4851;4844:12;4806:52;4886:9;4880:16;4939:5;4932:13;4925:21;4918:5;4915:32;4905:60;;4961:1;4958;4951:12;5698:125;5763:9;;;5784:10;;;5781:36;;;5797:18;;:::i;6931:136::-;6970:3;6998:5;6988:39;;7007:18;;:::i;:::-;-1:-1:-1;;;7043:18:1;;6931:136::o;7072:175::-;7109:3;7153:4;7146:5;7142:16;7182:4;7173:7;7170:17;7167:43;;7190:18;;:::i;:::-;7239:1;7226:15;;7072:175;-1:-1:-1;;7072:175:1:o;7252:128::-;7319:9;;;7340:11;;;7337:37;;;7354:18;;:::i;7709:127::-;7770:10;7765:3;7761:20;7758:1;7751:31;7801:4;7798:1;7791:15;7825:4;7822:1;7815:15;7973:251;8043:6;8096:2;8084:9;8075:7;8071:23;8067:32;8064:52;;;8112:1;8109;8102:12;8064:52;8144:9;8138:16;8163:31;8188:5;8163:31;:::i;8229:980::-;8491:4;8539:3;8528:9;8524:19;8570:6;8559:9;8552:25;8596:2;8634:6;8629:2;8618:9;8614:18;8607:34;8677:3;8672:2;8661:9;8657:18;8650:31;8701:6;8736;8730:13;8767:6;8759;8752:22;8805:3;8794:9;8790:19;8783:26;;8844:2;8836:6;8832:15;8818:29;;8865:1;8875:195;8889:6;8886:1;8883:13;8875:195;;;8954:13;;-1:-1:-1;;;;;8950:39:1;8938:52;;9045:15;;;;9010:12;;;;8986:1;8904:9;8875:195;;;-1:-1:-1;;;;;;;9126:32:1;;;;9121:2;9106:18;;9099:60;-1:-1:-1;;;9190:3:1;9175:19;9168:35;9087:3;8229:980;-1:-1:-1;;;8229:980:1:o;9834:306::-;9922:6;9930;9938;9991:2;9979:9;9970:7;9966:23;9962:32;9959:52;;;10007:1;10004;9997:12;9959:52;10036:9;10030:16;10020:26;;10086:2;10075:9;10071:18;10065:25;10055:35;;10130:2;10119:9;10115:18;10109:25;10099:35;;9834:306;;;;;:::o

Swarm Source

ipfs://828e005d15b10800374ddfe69d1fab81b1d2e56dbe0a87a7525e917e3037ddcf
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.