ETH Price: $2,475.72 (-1.87%)

Token

Overgrowth (GMO)
 

Overview

Max Total Supply

1,000,000,000 GMO

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,443,131.667252480788744812 GMO

Value
$0.00
0xedbef36978f82e0e2d040c6fb3237cadb98ba01d
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:
Overgrowth

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-06
*/

/**
 *Telegram: t.me/overgrowthportal
 *Twitter: twitter.com/GMOtoken
 *Website: www.overgrowthgame.com
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        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);
}

// File: @openzeppelin/contracts/utils/math/SafeMath.sol

// OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // 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 (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @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) {
        return a + b;
    }

    /**
     * @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 a - b;
    }

    /**
     * @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) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting 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) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

// File: @openzeppelin/contracts/utils/Context.sol

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol

pragma solidity >=0.6.2;

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

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol

pragma solidity >=0.6.2;

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

// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol

pragma solidity >=0.5.0;

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

contract Overgrowth is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10**9 * 10**_decimals;
    uint256 private constant maxSwap = 20000000 * 10**_decimals;
    uint256 public maxTxAmount = maxSwap;

    uint256 private _tax;
    uint256 public buyTax = 5;
    uint256 public sellTax = 5;

    uint256 private launchBlock;
    uint256 private blockDelay = 2;

    string private constant _name = "Overgrowth";
    string private constant _symbol = "GMO";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address payable public marketingWallet;

    bool private launch = false;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(0x7B93E6EDa099146b0656B18CAB3Ab9f1cBc8DcEE);
        _balance[msg.sender] = _totalSupply;

        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[0x7B93E6EDa099146b0656B18CAB3Ab9f1cBc8DcEE] = true;
        _isExcludedFromFeeWallet[address(this)] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 pure override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount);
        return true;
    }

    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 enableTrading() external onlyOwner {
        launch = true;
        launchBlock = block.number;
    }
	
	function addPair() external onlyOwner {
		IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
		_approve(address(this), address(uniswapV2Router), _totalSupply);
		uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
		uniswapV2Router.addLiquidityETH{value: address(this).balance}
			(address(this),
			balanceOf(address(this)),
			0,
			0,
			owner(),
			block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
	}

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFeeWallet[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
    }

    function newBlockDelay(uint256 number) external onlyOwner {
        blockDelay = number;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

      function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function _tokenTransfer(address from, address to, uint256 amount) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");

        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(launch, "Wait till launch");
            require(amount <= maxTxAmount, "Max TxAmount 2% at launch");
            if (block.number < launchBlock + blockDelay) {_tax=99;} else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                        if (tokensToSwap > maxSwap) {
                            tokensToSwap = maxSwap;
                        }
                        swapTokensForEth(tokensToSwap);
                    _tax = sellTax;
                } else {
                    _tax = 0;
                }
            }
        }
        _tokenTransfer(from, to, amount);
    }

    function swapTokensForEth(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,
            marketingWallet,
            block.timestamp
        );
    }
    receive() external payable {}
}

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":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":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addPair","outputs":[],"stateMutability":"nonpayable","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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"number","type":"uint256"}],"name":"newBlockDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","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":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620005ad565b6301312d00620000259190620005fe565b6004556005600655600560075560026009556000600c60146101000a81548160ff0219169083151502179055503480156200005f57600080fd5b5062000080620000746200034760201b60201c565b6200034f60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737b93e6eda099146b0656b18cab3ab9f1cbc8dcee600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200013a9190620005ad565b633b9aca006200014b9190620005fe565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000737b93e6eda099146b0656b18cab3ab9f1cbc8dcee73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002ba6200034760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003199190620005ad565b633b9aca006200032a9190620005fe565b6040516200033991906200065a565b60405180910390a362000677565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004a15780860481111562000479576200047862000413565b5b6001851615620004895780820291505b8081029050620004998562000442565b945062000459565b94509492505050565b600082620004bc57600190506200058f565b81620004cc57600090506200058f565b8160018114620004e55760028114620004f05762000526565b60019150506200058f565b60ff84111562000505576200050462000413565b5b8360020a9150848211156200051f576200051e62000413565b5b506200058f565b5060208310610133831016604e8410600b8410161715620005605782820a9050838111156200055a576200055962000413565b5b6200058f565b6200056f84848460016200044f565b9250905081840481111562000589576200058862000413565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005ba8262000596565b9150620005c783620005a0565b9250620005f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004aa565b905092915050565b60006200060b8262000596565b9150620006188362000596565b9250828202620006288162000596565b9150828204841483151762000642576200064162000413565b5b5092915050565b620006548162000596565b82525050565b600060208201905062000671600083018462000649565b92915050565b612a6480620006876000396000f3fe60806040526004361061014f5760003560e01c806375f0a874116100b657806395d89b411161006f57806395d89b4114610441578063a9059cbb1461046c578063cc1776d3146104a9578063dba9d420146104d4578063dd62ed3e146104fd578063f2fde38b1461053a57610156565b806375f0a874146103695780638a8c523c146103945780638c0b5e22146103ab5780638da5cb5b146103d65780638f08638a146104015780639036ed4d1461041857610156565b80634f7041a5116101085780634f7041a5146102815780635d098b38146102ac57806370a08231146102d557806370d8c9ec14610312578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063313ce5671461022b57806349bd5a5e1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d9190611d00565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611dbb565b6105a0565b6040516101ba9190611e16565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190611e40565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611e5b565b6105e2565b6040516102229190611e16565b60405180910390f35b34801561023757600080fd5b5061024061069a565b60405161024d9190611eca565b60405180910390f35b34801561026257600080fd5b5061026b6106a3565b6040516102789190611ef4565b60405180910390f35b34801561028d57600080fd5b506102966106c9565b6040516102a39190611e40565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611f0f565b6106cf565b005b3480156102e157600080fd5b506102fc60048036038101906102f79190611f0f565b61078f565b6040516103099190611e40565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190611f3c565b6107d8565b005b34801561034757600080fd5b5061035061085e565b005b34801561035e57600080fd5b506103676108e6565b005b34801561037557600080fd5b5061037e610987565b60405161038b9190611f8a565b60405180910390f35b3480156103a057600080fd5b506103a96109ad565b005b3480156103b757600080fd5b506103c0610a4d565b6040516103cd9190611e40565b60405180910390f35b3480156103e257600080fd5b506103eb610a53565b6040516103f89190611ef4565b60405180910390f35b34801561040d57600080fd5b50610416610a7c565b005b34801561042457600080fd5b5061043f600480360381019061043a9190611fa5565b610ed7565b005b34801561044d57600080fd5b50610456610f65565b6040516104639190611d00565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190611dbb565b610fa2565b6040516104a09190611e16565b60405180910390f35b3480156104b557600080fd5b506104be610fc0565b6040516104cb9190611e40565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190611f0f565b610fc6565b005b34801561050957600080fd5b50610524600480360381019061051f9190611fe5565b61109d565b6040516105319190611e40565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190611f0f565b611124565b005b60606040518060400160405280600a81526020017f4f76657267726f77746800000000000000000000000000000000000000000000815250905090565b60006105b46105ad61121b565b8484611223565b6001905092915050565b60006012600a6105ce9190612187565b633b9aca006105dd91906121d2565b905090565b60006105ef8484846113ec565b61068f846105fb61121b565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064561121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461068a9190612214565b611223565b600190509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6106d761121b565b73ffffffffffffffffffffffffffffffffffffffff166106f5610a53565b73ffffffffffffffffffffffffffffffffffffffff161461074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612294565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107e061121b565b73ffffffffffffffffffffffffffffffffffffffff166107fe610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90612294565b60405180910390fd5b8060098190555050565b61086661121b565b73ffffffffffffffffffffffffffffffffffffffff16610884610a53565b73ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190612294565b60405180910390fd5b6108e46000611703565b565b6108ee61121b565b73ffffffffffffffffffffffffffffffffffffffff1661090c610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990612294565b60405180910390fd5b6012600a6109709190612187565b633b9aca0061097f91906121d2565b600481905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b561121b565b73ffffffffffffffffffffffffffffffffffffffff166109d3610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090612294565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600881905550565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a8461121b565b73ffffffffffffffffffffffffffffffffffffffff16610aa2610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612294565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9b30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b879190612187565b633b9aca00610b9691906121d2565b611223565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a91906122c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9591906122c9565b6040518363ffffffff1660e01b8152600401610cb29291906122f6565b6020604051808303816000875af1158015610cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf591906122c9565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d7e3061078f565b600080610d89610a53565b426040518863ffffffff1660e01b8152600401610dab96959493929190612364565b60606040518083038185885af1158015610dc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dee91906123da565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e9092919061242d565b6020604051808303816000875af1158015610eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed39190612482565b5050565b610edf61121b565b73ffffffffffffffffffffffffffffffffffffffff16610efd610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90612294565b60405180910390fd5b81600681905550806007819055505050565b60606040518060400160405280600381526020017f474d4f0000000000000000000000000000000000000000000000000000000000815250905090565b6000610fb6610faf61121b565b84846113ec565b6001905092915050565b60075481565b610fce61121b565b73ffffffffffffffffffffffffffffffffffffffff16610fec610a53565b73ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990612294565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112c61121b565b73ffffffffffffffffffffffffffffffffffffffff1661114a610a53565b73ffffffffffffffffffffffffffffffffffffffff16146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790612294565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612521565b60405180910390fd5b61121881611703565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906125b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f890612645565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113df9190611e40565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611452906126d7565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114fc5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561150e5760006005819055506116f3565b600c60149054906101000a900460ff1661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490612743565b60405180910390fd5b6004548111156115a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611599906127af565b60405180910390fd5b6009546008546115b291906127cf565b4310156115c65760636005819055506116f2565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611629576006546005819055506116f1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e75760006116893061078f565b90506012600a6116999190612187565b6301312d006116a891906121d2565b8111156116cf576012600a6116bd9190612187565b6301312d006116cc91906121d2565b90505b6116d8816117c7565b600754600581905550506116f0565b60006005819055505b5b5b5b6116fe838383611a2c565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff8111156117e4576117e3612803565b5b6040519080825280602002602001820160405280156118125781602001602082028036833780820191505090505b509050308160008151811061182a57611829612832565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f591906122c9565b8160018151811061190957611908612832565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061197030600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611223565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016119f6959493929190612974565b600060405180830381600087803b158015611a1057600080fd5b505af1158015611a24573d6000803e3d6000fd5b505050505050565b6000606460055483611a3e91906121d2565b611a4891906129fd565b905060008183611a589190612214565b905082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa59190612214565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3391906127cf565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc191906127cf565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c619190611e40565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611caa578082015181840152602081019050611c8f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cd282611c70565b611cdc8185611c7b565b9350611cec818560208601611c8c565b611cf581611cb6565b840191505092915050565b60006020820190508181036000830152611d1a8184611cc7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d5282611d27565b9050919050565b611d6281611d47565b8114611d6d57600080fd5b50565b600081359050611d7f81611d59565b92915050565b6000819050919050565b611d9881611d85565b8114611da357600080fd5b50565b600081359050611db581611d8f565b92915050565b60008060408385031215611dd257611dd1611d22565b5b6000611de085828601611d70565b9250506020611df185828601611da6565b9150509250929050565b60008115159050919050565b611e1081611dfb565b82525050565b6000602082019050611e2b6000830184611e07565b92915050565b611e3a81611d85565b82525050565b6000602082019050611e556000830184611e31565b92915050565b600080600060608486031215611e7457611e73611d22565b5b6000611e8286828701611d70565b9350506020611e9386828701611d70565b9250506040611ea486828701611da6565b9150509250925092565b600060ff82169050919050565b611ec481611eae565b82525050565b6000602082019050611edf6000830184611ebb565b92915050565b611eee81611d47565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b600060208284031215611f2557611f24611d22565b5b6000611f3384828501611d70565b91505092915050565b600060208284031215611f5257611f51611d22565b5b6000611f6084828501611da6565b91505092915050565b6000611f7482611d27565b9050919050565b611f8481611f69565b82525050565b6000602082019050611f9f6000830184611f7b565b92915050565b60008060408385031215611fbc57611fbb611d22565b5b6000611fca85828601611da6565b9250506020611fdb85828601611da6565b9150509250929050565b60008060408385031215611ffc57611ffb611d22565b5b600061200a85828601611d70565b925050602061201b85828601611d70565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120ab5780860481111561208757612086612025565b5b60018516156120965780820291505b80810290506120a485612054565b945061206b565b94509492505050565b6000826120c45760019050612180565b816120d25760009050612180565b81600181146120e857600281146120f257612121565b6001915050612180565b60ff84111561210457612103612025565b5b8360020a91508482111561211b5761211a612025565b5b50612180565b5060208310610133831016604e8410600b84101617156121565782820a90508381111561215157612150612025565b5b612180565b6121638484846001612061565b9250905081840481111561217a57612179612025565b5b81810290505b9392505050565b600061219282611d85565b915061219d83611eae565b92506121ca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120b4565b905092915050565b60006121dd82611d85565b91506121e883611d85565b92508282026121f681611d85565b9150828204841483151761220d5761220c612025565b5b5092915050565b600061221f82611d85565b915061222a83611d85565b925082820390508181111561224257612241612025565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061227e602083611c7b565b915061228982612248565b602082019050919050565b600060208201905081810360008301526122ad81612271565b9050919050565b6000815190506122c381611d59565b92915050565b6000602082840312156122df576122de611d22565b5b60006122ed848285016122b4565b91505092915050565b600060408201905061230b6000830185611ee5565b6123186020830184611ee5565b9392505050565b6000819050919050565b6000819050919050565b600061234e6123496123448461231f565b612329565b611d85565b9050919050565b61235e81612333565b82525050565b600060c0820190506123796000830189611ee5565b6123866020830188611e31565b6123936040830187612355565b6123a06060830186612355565b6123ad6080830185611ee5565b6123ba60a0830184611e31565b979650505050505050565b6000815190506123d481611d8f565b92915050565b6000806000606084860312156123f3576123f2611d22565b5b6000612401868287016123c5565b9350506020612412868287016123c5565b9250506040612423868287016123c5565b9150509250925092565b60006040820190506124426000830185611ee5565b61244f6020830184611e31565b9392505050565b61245f81611dfb565b811461246a57600080fd5b50565b60008151905061247c81612456565b92915050565b60006020828403121561249857612497611d22565b5b60006124a68482850161246d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061250b602683611c7b565b9150612516826124af565b604082019050919050565b6000602082019050818103600083015261253a816124fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061259d602483611c7b565b91506125a882612541565b604082019050919050565b600060208201905081810360008301526125cc81612590565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061262f602283611c7b565b915061263a826125d3565b604082019050919050565b6000602082019050818103600083015261265e81612622565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126c1602583611c7b565b91506126cc82612665565b604082019050919050565b600060208201905081810360008301526126f0816126b4565b9050919050565b7f576169742074696c6c206c61756e636800000000000000000000000000000000600082015250565b600061272d601083611c7b565b9150612738826126f7565b602082019050919050565b6000602082019050818103600083015261275c81612720565b9050919050565b7f4d6178205478416d6f756e74203225206174206c61756e636800000000000000600082015250565b6000612799601983611c7b565b91506127a482612763565b602082019050919050565b600060208201905081810360008301526127c88161278c565b9050919050565b60006127da82611d85565b91506127e583611d85565b92508282019050808211156127fd576127fc612025565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61289681611d47565b82525050565b60006128a8838361288d565b60208301905092915050565b6000602082019050919050565b60006128cc82612861565b6128d6818561286c565b93506128e18361287d565b8060005b838110156129125781516128f9888261289c565b9750612904836128b4565b9250506001810190506128e5565b5085935050505092915050565b600061293a61293561293084611d27565b612329565b611d27565b9050919050565b600061294c8261291f565b9050919050565b600061295e82612941565b9050919050565b61296e81612953565b82525050565b600060a0820190506129896000830188611e31565b6129966020830187612355565b81810360408301526129a881866128c1565b90506129b76060830185612965565b6129c46080830184611e31565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a0882611d85565b9150612a1383611d85565b925082612a2357612a226129ce565b5b82820490509291505056fea264697066735822122004c67175a50dec54c00d370cfcc801ee97e83d0d816e21ae87a50ca6474baf7664736f6c63430008120033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806375f0a874116100b657806395d89b411161006f57806395d89b4114610441578063a9059cbb1461046c578063cc1776d3146104a9578063dba9d420146104d4578063dd62ed3e146104fd578063f2fde38b1461053a57610156565b806375f0a874146103695780638a8c523c146103945780638c0b5e22146103ab5780638da5cb5b146103d65780638f08638a146104015780639036ed4d1461041857610156565b80634f7041a5116101085780634f7041a5146102815780635d098b38146102ac57806370a08231146102d557806370d8c9ec14610312578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063313ce5671461022b57806349bd5a5e1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d9190611d00565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611dbb565b6105a0565b6040516101ba9190611e16565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190611e40565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611e5b565b6105e2565b6040516102229190611e16565b60405180910390f35b34801561023757600080fd5b5061024061069a565b60405161024d9190611eca565b60405180910390f35b34801561026257600080fd5b5061026b6106a3565b6040516102789190611ef4565b60405180910390f35b34801561028d57600080fd5b506102966106c9565b6040516102a39190611e40565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611f0f565b6106cf565b005b3480156102e157600080fd5b506102fc60048036038101906102f79190611f0f565b61078f565b6040516103099190611e40565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190611f3c565b6107d8565b005b34801561034757600080fd5b5061035061085e565b005b34801561035e57600080fd5b506103676108e6565b005b34801561037557600080fd5b5061037e610987565b60405161038b9190611f8a565b60405180910390f35b3480156103a057600080fd5b506103a96109ad565b005b3480156103b757600080fd5b506103c0610a4d565b6040516103cd9190611e40565b60405180910390f35b3480156103e257600080fd5b506103eb610a53565b6040516103f89190611ef4565b60405180910390f35b34801561040d57600080fd5b50610416610a7c565b005b34801561042457600080fd5b5061043f600480360381019061043a9190611fa5565b610ed7565b005b34801561044d57600080fd5b50610456610f65565b6040516104639190611d00565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190611dbb565b610fa2565b6040516104a09190611e16565b60405180910390f35b3480156104b557600080fd5b506104be610fc0565b6040516104cb9190611e40565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190611f0f565b610fc6565b005b34801561050957600080fd5b50610524600480360381019061051f9190611fe5565b61109d565b6040516105319190611e40565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190611f0f565b611124565b005b60606040518060400160405280600a81526020017f4f76657267726f77746800000000000000000000000000000000000000000000815250905090565b60006105b46105ad61121b565b8484611223565b6001905092915050565b60006012600a6105ce9190612187565b633b9aca006105dd91906121d2565b905090565b60006105ef8484846113ec565b61068f846105fb61121b565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064561121b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461068a9190612214565b611223565b600190509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6106d761121b565b73ffffffffffffffffffffffffffffffffffffffff166106f5610a53565b73ffffffffffffffffffffffffffffffffffffffff161461074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612294565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107e061121b565b73ffffffffffffffffffffffffffffffffffffffff166107fe610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90612294565b60405180910390fd5b8060098190555050565b61086661121b565b73ffffffffffffffffffffffffffffffffffffffff16610884610a53565b73ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190612294565b60405180910390fd5b6108e46000611703565b565b6108ee61121b565b73ffffffffffffffffffffffffffffffffffffffff1661090c610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990612294565b60405180910390fd5b6012600a6109709190612187565b633b9aca0061097f91906121d2565b600481905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b561121b565b73ffffffffffffffffffffffffffffffffffffffff166109d3610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090612294565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600881905550565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a8461121b565b73ffffffffffffffffffffffffffffffffffffffff16610aa2610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612294565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9b30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b879190612187565b633b9aca00610b9691906121d2565b611223565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a91906122c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9591906122c9565b6040518363ffffffff1660e01b8152600401610cb29291906122f6565b6020604051808303816000875af1158015610cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf591906122c9565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d7e3061078f565b600080610d89610a53565b426040518863ffffffff1660e01b8152600401610dab96959493929190612364565b60606040518083038185885af1158015610dc9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dee91906123da565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e9092919061242d565b6020604051808303816000875af1158015610eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed39190612482565b5050565b610edf61121b565b73ffffffffffffffffffffffffffffffffffffffff16610efd610a53565b73ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90612294565b60405180910390fd5b81600681905550806007819055505050565b60606040518060400160405280600381526020017f474d4f0000000000000000000000000000000000000000000000000000000000815250905090565b6000610fb6610faf61121b565b84846113ec565b6001905092915050565b60075481565b610fce61121b565b73ffffffffffffffffffffffffffffffffffffffff16610fec610a53565b73ffffffffffffffffffffffffffffffffffffffff1614611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990612294565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112c61121b565b73ffffffffffffffffffffffffffffffffffffffff1661114a610a53565b73ffffffffffffffffffffffffffffffffffffffff16146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790612294565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612521565b60405180910390fd5b61121881611703565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611292576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611289906125b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f890612645565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113df9190611e40565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611452906126d7565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114fc5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561150e5760006005819055506116f3565b600c60149054906101000a900460ff1661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155490612743565b60405180910390fd5b6004548111156115a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611599906127af565b60405180910390fd5b6009546008546115b291906127cf565b4310156115c65760636005819055506116f2565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611629576006546005819055506116f1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e75760006116893061078f565b90506012600a6116999190612187565b6301312d006116a891906121d2565b8111156116cf576012600a6116bd9190612187565b6301312d006116cc91906121d2565b90505b6116d8816117c7565b600754600581905550506116f0565b60006005819055505b5b5b5b6116fe838383611a2c565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff8111156117e4576117e3612803565b5b6040519080825280602002602001820160405280156118125781602001602082028036833780820191505090505b509050308160008151811061182a57611829612832565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f591906122c9565b8160018151811061190957611908612832565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061197030600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611223565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016119f6959493929190612974565b600060405180830381600087803b158015611a1057600080fd5b505af1158015611a24573d6000803e3d6000fd5b505050505050565b6000606460055483611a3e91906121d2565b611a4891906129fd565b905060008183611a589190612214565b905082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa59190612214565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3391906127cf565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc191906127cf565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c619190611e40565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611caa578082015181840152602081019050611c8f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cd282611c70565b611cdc8185611c7b565b9350611cec818560208601611c8c565b611cf581611cb6565b840191505092915050565b60006020820190508181036000830152611d1a8184611cc7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d5282611d27565b9050919050565b611d6281611d47565b8114611d6d57600080fd5b50565b600081359050611d7f81611d59565b92915050565b6000819050919050565b611d9881611d85565b8114611da357600080fd5b50565b600081359050611db581611d8f565b92915050565b60008060408385031215611dd257611dd1611d22565b5b6000611de085828601611d70565b9250506020611df185828601611da6565b9150509250929050565b60008115159050919050565b611e1081611dfb565b82525050565b6000602082019050611e2b6000830184611e07565b92915050565b611e3a81611d85565b82525050565b6000602082019050611e556000830184611e31565b92915050565b600080600060608486031215611e7457611e73611d22565b5b6000611e8286828701611d70565b9350506020611e9386828701611d70565b9250506040611ea486828701611da6565b9150509250925092565b600060ff82169050919050565b611ec481611eae565b82525050565b6000602082019050611edf6000830184611ebb565b92915050565b611eee81611d47565b82525050565b6000602082019050611f096000830184611ee5565b92915050565b600060208284031215611f2557611f24611d22565b5b6000611f3384828501611d70565b91505092915050565b600060208284031215611f5257611f51611d22565b5b6000611f6084828501611da6565b91505092915050565b6000611f7482611d27565b9050919050565b611f8481611f69565b82525050565b6000602082019050611f9f6000830184611f7b565b92915050565b60008060408385031215611fbc57611fbb611d22565b5b6000611fca85828601611da6565b9250506020611fdb85828601611da6565b9150509250929050565b60008060408385031215611ffc57611ffb611d22565b5b600061200a85828601611d70565b925050602061201b85828601611d70565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120ab5780860481111561208757612086612025565b5b60018516156120965780820291505b80810290506120a485612054565b945061206b565b94509492505050565b6000826120c45760019050612180565b816120d25760009050612180565b81600181146120e857600281146120f257612121565b6001915050612180565b60ff84111561210457612103612025565b5b8360020a91508482111561211b5761211a612025565b5b50612180565b5060208310610133831016604e8410600b84101617156121565782820a90508381111561215157612150612025565b5b612180565b6121638484846001612061565b9250905081840481111561217a57612179612025565b5b81810290505b9392505050565b600061219282611d85565b915061219d83611eae565b92506121ca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120b4565b905092915050565b60006121dd82611d85565b91506121e883611d85565b92508282026121f681611d85565b9150828204841483151761220d5761220c612025565b5b5092915050565b600061221f82611d85565b915061222a83611d85565b925082820390508181111561224257612241612025565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061227e602083611c7b565b915061228982612248565b602082019050919050565b600060208201905081810360008301526122ad81612271565b9050919050565b6000815190506122c381611d59565b92915050565b6000602082840312156122df576122de611d22565b5b60006122ed848285016122b4565b91505092915050565b600060408201905061230b6000830185611ee5565b6123186020830184611ee5565b9392505050565b6000819050919050565b6000819050919050565b600061234e6123496123448461231f565b612329565b611d85565b9050919050565b61235e81612333565b82525050565b600060c0820190506123796000830189611ee5565b6123866020830188611e31565b6123936040830187612355565b6123a06060830186612355565b6123ad6080830185611ee5565b6123ba60a0830184611e31565b979650505050505050565b6000815190506123d481611d8f565b92915050565b6000806000606084860312156123f3576123f2611d22565b5b6000612401868287016123c5565b9350506020612412868287016123c5565b9250506040612423868287016123c5565b9150509250925092565b60006040820190506124426000830185611ee5565b61244f6020830184611e31565b9392505050565b61245f81611dfb565b811461246a57600080fd5b50565b60008151905061247c81612456565b92915050565b60006020828403121561249857612497611d22565b5b60006124a68482850161246d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061250b602683611c7b565b9150612516826124af565b604082019050919050565b6000602082019050818103600083015261253a816124fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061259d602483611c7b565b91506125a882612541565b604082019050919050565b600060208201905081810360008301526125cc81612590565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061262f602283611c7b565b915061263a826125d3565b604082019050919050565b6000602082019050818103600083015261265e81612622565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126c1602583611c7b565b91506126cc82612665565b604082019050919050565b600060208201905081810360008301526126f0816126b4565b9050919050565b7f576169742074696c6c206c61756e636800000000000000000000000000000000600082015250565b600061272d601083611c7b565b9150612738826126f7565b602082019050919050565b6000602082019050818103600083015261275c81612720565b9050919050565b7f4d6178205478416d6f756e74203225206174206c61756e636800000000000000600082015250565b6000612799601983611c7b565b91506127a482612763565b602082019050919050565b600060208201905081810360008301526127c88161278c565b9050919050565b60006127da82611d85565b91506127e583611d85565b92508282019050808211156127fd576127fc612025565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61289681611d47565b82525050565b60006128a8838361288d565b60208301905092915050565b6000602082019050919050565b60006128cc82612861565b6128d6818561286c565b93506128e18361287d565b8060005b838110156129125781516128f9888261289c565b9750612904836128b4565b9250506001810190506128e5565b5085935050505092915050565b600061293a61293561293084611d27565b612329565b611d27565b9050919050565b600061294c8261291f565b9050919050565b600061295e82612941565b9050919050565b61296e81612953565b82525050565b600060a0820190506129896000830188611e31565b6129966020830187612355565b81810360408301526129a881866128c1565b90506129b76060830185612965565b6129c46080830184611e31565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a0882611d85565b9150612a1383611d85565b925082612a2357612a226129ce565b5b82820490509291505056fea264697066735822122004c67175a50dec54c00d370cfcc801ee97e83d0d816e21ae87a50ca6474baf7664736f6c63430008120033

Deployed Bytecode Sourcemap

19163:6457:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20624:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21458:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20901:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21626:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20810:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19994:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19706:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23475:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21009:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23216:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12521:103;;;;;;;;;;;;;:::i;:::-;;23120:88;;;;;;;;;;;;;:::i;:::-;;20029:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22241:113;;;;;;;;;;;;;:::i;:::-;;19634:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11870:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22360:624;;;;;;;;;;;;;:::i;:::-;;23320:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20715:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21135:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19738:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22992:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21308:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12779:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20624:83;20661:13;20694:5;;;;;;;;;;;;;;;;;20687:12;;20624:83;:::o;21458:160::-;21533:4;21549:39;21558:12;:10;:12::i;:::-;21572:7;21581:6;21549:8;:39::i;:::-;21606:4;21599:11;;21458:160;;;;:::o;20901:100::-;20954:7;19491:2;19548;:13;;;;:::i;:::-;19540:5;:21;;;;:::i;:::-;20974:19;;20901:100;:::o;21626:264::-;21724:4;21741:36;21751:6;21759:9;21770:6;21741:9;:36::i;:::-;21788:72;21797:6;21804:12;:10;:12::i;:::-;21853:6;21817:11;:19;21829:6;21817:19;;;;;;;;;;;;;;;:33;21837:12;:10;:12::i;:::-;21817:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;21788:8;:72::i;:::-;21878:4;21871:11;;21626:264;;;;;:::o;20810:83::-;20851:5;19491:2;20869:16;;20810:83;:::o;19994:28::-;;;;;;;;;;;;;:::o;19706:25::-;;;;:::o;23475:135::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23585:16:::1;23559:15;;:43;;;;;;;;;;;;;;;;;;23475:135:::0;:::o;21009:118::-;21075:7;21102:8;:17;21111:7;21102:17;;;;;;;;;;;;;;;;21095:24;;21009:118;;;:::o;23216:96::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23298:6:::1;23285:10;:19;;;;23216:96:::0;:::o;12521:103::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12586:30:::1;12613:1;12586:18;:30::i;:::-;12521:103::o:0;23120:88::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19491:2:::1;19548;:13;;;;:::i;:::-;19540:5;:21;;;;:::i;:::-;23174:11;:26;;;;23120:88::o:0;20029:38::-;;;;;;;;;;;;;:::o;22241:113::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22305:4:::1;22296:6;;:13;;;;;;;;;;;;;;;;;;22334:12;22320:11;:26;;;;22241:113::o:0;19634:36::-;;;;:::o;11870:87::-;11916:7;11943:6;;;;;;;;;;;11936:13;;11870:87;:::o;22360:624::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22403:35:::1;22460:42;22403:100;;22532:16;22514:15;;:34;;;;;;;;;;;;;;;;;;22553:63;22570:4;22585:15;;;;;;;;;;;19491:2;19548;:13;;;;:::i;:::-;19540:5;:21;;;;:::i;:::-;22553:8;:63::i;:::-;22655:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22637:56;;;22702:4;22709:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22637:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22621:13;;:112;;;;;;;;;;;;;;;;;;22738:15;;;;;;;;;;;:31;;;22777:21;22813:4;22824:24;22842:4;22824:9;:24::i;:::-;22854:1;22861::::0;22868:7:::1;:5;:7::i;:::-;22881:15;22738:159;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22915:13;;;;;;;;;;;22908:29;;;22946:15;;;;;;;;;;;22964:14;22908:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22398:586;22360:624::o:0;23320:145::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23417:9:::1;23408:6;:18;;;;23447:10;23437:7;:20;;;;23320:145:::0;;:::o;20715:87::-;20754:13;20787:7;;;;;;;;;;;;;;;;;20780:14;;20715:87;:::o;21135:165::-;21212:4;21228:42;21238:12;:10;:12::i;:::-;21252:9;21263:6;21228:9;:42::i;:::-;21288:4;21281:11;;21135:165;;;;:::o;19738:26::-;;;;:::o;22992:120::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23100:4:::1;23065:24;:32;23090:6;23065:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22992:120:::0;:::o;21308:142::-;21389:7;21415:11;:18;21427:5;21415:18;;;;;;;;;;;;;;;:27;21434:7;21415:27;;;;;;;;;;;;;;;;21408:34;;21308:142;;;;:::o;12779:201::-;12101:12;:10;:12::i;:::-;12090:23;;:7;:5;:7::i;:::-;:23;;;12082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12888:1:::1;12868:22;;:8;:22;;::::0;12860:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12944:28;12963:8;12944:18;:28::i;:::-;12779:201:::0;:::o;10598:98::-;10651:7;10678:10;10671:17;;10598:98;:::o;21898:335::-;22008:1;21991:19;;:5;:19;;;21983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22089:1;22070:21;;:7;:21;;;22062:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22171:6;22141:11;:18;22153:5;22141:18;;;;;;;;;;;;;;;:27;22160:7;22141:27;;;;;;;;;;;;;;;:36;;;;22209:7;22193:32;;22202:5;22193:32;;;22218:6;22193:32;;;;;;:::i;:::-;;;;;;;;21898:335;;;:::o;24046:1055::-;24150:1;24134:18;;:4;:18;;;24126:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24211:24;:30;24236:4;24211:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;24245:24;:28;24270:2;24245:28;;;;;;;;;;;;;;;;;;;;;;;;;24211:62;24207:844;;;24297:1;24290:4;:8;;;;24207:844;;;24339:6;;;;;;;;;;;24331:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;24399:11;;24389:6;:21;;24381:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;24488:10;;24474:11;;:24;;;;:::i;:::-;24459:12;:39;24455:585;;;24506:2;24501:4;:7;;;;24455:585;;;24547:13;;;;;;;;;;;24539:21;;:4;:21;;;24535:490;;24592:6;;24585:4;:13;;;;24535:490;;;24634:13;;;;;;;;;;;24628:19;;:2;:19;;;24624:401;;24672:20;24695:24;24713:4;24695:9;:24::i;:::-;24672:47;;19491:2;19614;:13;;;;:::i;:::-;19603:8;:24;;;;:::i;:::-;24750:12;:22;24746:109;;;19491:2;19614;:13;;;;:::i;:::-;19603:8;:24;;;;:::i;:::-;24805:22;;24746:109;24881:30;24898:12;24881:16;:30::i;:::-;24941:7;;24934:4;:14;;;;24649:319;24624:401;;;25004:1;24997:4;:8;;;;24624:401;24535:490;24455:585;24207:844;25061:32;25076:4;25082:2;25086:6;25061:14;:32::i;:::-;24046:1055;;;:::o;13140:191::-;13214:16;13233:6;;;;;;;;;;;13214:25;;13259:8;13250:6;;:17;;;;;;;;;;;;;;;;;;13314:8;13283:40;;13304:8;13283:40;;;;;;;;;;;;13203:128;13140:191;:::o;25109:473::-;25175:21;25213:1;25199:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25175:40;;25244:4;25226;25231:1;25226:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25270:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25260:4;25265:1;25260:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25303:62;25320:4;25335:15;;;;;;;;;;;25353:11;25303:8;:62::i;:::-;25376:15;;;;;;;;;;;:66;;;25457:11;25483:1;25499:4;25518:15;;;;;;;;;;;25548;25376:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25164:418;25109:473;:::o;23618:420::-;23703:17;23741:3;23733:4;;23724:6;:13;;;;:::i;:::-;23723:21;;;;:::i;:::-;23703:41;;23755:22;23789:9;23780:6;:18;;;;:::i;:::-;23755:43;;23845:6;23828:8;:14;23837:4;23828:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;23811:8;:14;23820:4;23811:14;;;;;;;;;;;;;;;:40;;;;23892:14;23877:8;:12;23886:2;23877:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;23862:8;:12;23871:2;23862:12;;;;;;;;;;;;;;;:44;;;;23969:9;23943:8;:23;23960:4;23943:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;23917:8;:23;23934:4;23917:23;;;;;;;;;;;;;;;:61;;;;24011:2;23996:34;;24005:4;23996:34;;;24015:14;23996:34;;;;;;:::i;:::-;;;;;;;;23692:346;;23618:420;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:104::-;5920:7;5949:24;5967:5;5949:24;:::i;:::-;5938:35;;5875:104;;;:::o;5985:142::-;6088:32;6114:5;6088:32;:::i;:::-;6083:3;6076:45;5985:142;;:::o;6133:254::-;6242:4;6280:2;6269:9;6265:18;6257:26;;6293:87;6377:1;6366:9;6362:17;6353:6;6293:87;:::i;:::-;6133:254;;;;:::o;6393:474::-;6461:6;6469;6518:2;6506:9;6497:7;6493:23;6489:32;6486:119;;;6524:79;;:::i;:::-;6486:119;6644:1;6669:53;6714:7;6705:6;6694:9;6690:22;6669:53;:::i;:::-;6659:63;;6615:117;6771:2;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6742:118;6393:474;;;;;:::o;6873:::-;6941:6;6949;6998:2;6986:9;6977:7;6973:23;6969:32;6966:119;;;7004:79;;:::i;:::-;6966:119;7124:1;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7095:117;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;6873:474;;;;;:::o;7353:180::-;7401:77;7398:1;7391:88;7498:4;7495:1;7488:15;7522:4;7519:1;7512:15;7539:102;7581:8;7628:5;7625:1;7621:13;7600:34;;7539:102;;;:::o;7647:848::-;7708:5;7715:4;7739:6;7730:15;;7763:5;7754:14;;7777:712;7798:1;7788:8;7785:15;7777:712;;;7893:4;7888:3;7884:14;7878:4;7875:24;7872:50;;;7902:18;;:::i;:::-;7872:50;7952:1;7942:8;7938:16;7935:451;;;8367:4;8360:5;8356:16;8347:25;;7935:451;8417:4;8411;8407:15;8399:23;;8447:32;8470:8;8447:32;:::i;:::-;8435:44;;7777:712;;;7647:848;;;;;;;:::o;8501:1073::-;8555:5;8746:8;8736:40;;8767:1;8758:10;;8769:5;;8736:40;8795:4;8785:36;;8812:1;8803:10;;8814:5;;8785:36;8881:4;8929:1;8924:27;;;;8965:1;8960:191;;;;8874:277;;8924:27;8942:1;8933:10;;8944:5;;;8960:191;9005:3;8995:8;8992:17;8989:43;;;9012:18;;:::i;:::-;8989:43;9061:8;9058:1;9054:16;9045:25;;9096:3;9089:5;9086:14;9083:40;;;9103:18;;:::i;:::-;9083:40;9136:5;;;8874:277;;9260:2;9250:8;9247:16;9241:3;9235:4;9232:13;9228:36;9210:2;9200:8;9197:16;9192:2;9186:4;9183:12;9179:35;9163:111;9160:246;;;9316:8;9310:4;9306:19;9297:28;;9351:3;9344:5;9341:14;9338:40;;;9358:18;;:::i;:::-;9338:40;9391:5;;9160:246;9431:42;9469:3;9459:8;9453:4;9450:1;9431:42;:::i;:::-;9416:57;;;;9505:4;9500:3;9496:14;9489:5;9486:25;9483:51;;;9514:18;;:::i;:::-;9483:51;9563:4;9556:5;9552:16;9543:25;;8501:1073;;;;;;:::o;9580:281::-;9638:5;9662:23;9680:4;9662:23;:::i;:::-;9654:31;;9706:25;9722:8;9706:25;:::i;:::-;9694:37;;9750:104;9787:66;9777:8;9771:4;9750:104;:::i;:::-;9741:113;;9580:281;;;;:::o;9867:410::-;9907:7;9930:20;9948:1;9930:20;:::i;:::-;9925:25;;9964:20;9982:1;9964:20;:::i;:::-;9959:25;;10019:1;10016;10012:9;10041:30;10059:11;10041:30;:::i;:::-;10030:41;;10220:1;10211:7;10207:15;10204:1;10201:22;10181:1;10174:9;10154:83;10131:139;;10250:18;;:::i;:::-;10131:139;9915:362;9867:410;;;;:::o;10283:194::-;10323:4;10343:20;10361:1;10343:20;:::i;:::-;10338:25;;10377:20;10395:1;10377:20;:::i;:::-;10372:25;;10421:1;10418;10414:9;10406:17;;10445:1;10439:4;10436:11;10433:37;;;10450:18;;:::i;:::-;10433:37;10283:194;;;;:::o;10483:182::-;10623:34;10619:1;10611:6;10607:14;10600:58;10483:182;:::o;10671:366::-;10813:3;10834:67;10898:2;10893:3;10834:67;:::i;:::-;10827:74;;10910:93;10999:3;10910:93;:::i;:::-;11028:2;11023:3;11019:12;11012:19;;10671:366;;;:::o;11043:419::-;11209:4;11247:2;11236:9;11232:18;11224:26;;11296:9;11290:4;11286:20;11282:1;11271:9;11267:17;11260:47;11324:131;11450:4;11324:131;:::i;:::-;11316:139;;11043:419;;;:::o;11468:143::-;11525:5;11556:6;11550:13;11541:22;;11572:33;11599:5;11572:33;:::i;:::-;11468:143;;;;:::o;11617:351::-;11687:6;11736:2;11724:9;11715:7;11711:23;11707:32;11704:119;;;11742:79;;:::i;:::-;11704:119;11862:1;11887:64;11943:7;11934:6;11923:9;11919:22;11887:64;:::i;:::-;11877:74;;11833:128;11617:351;;;;:::o;11974:332::-;12095:4;12133:2;12122:9;12118:18;12110:26;;12146:71;12214:1;12203:9;12199:17;12190:6;12146:71;:::i;:::-;12227:72;12295:2;12284:9;12280:18;12271:6;12227:72;:::i;:::-;11974:332;;;;;:::o;12312:85::-;12357:7;12386:5;12375:16;;12312:85;;;:::o;12403:60::-;12431:3;12452:5;12445:12;;12403:60;;;:::o;12469:158::-;12527:9;12560:61;12578:42;12587:32;12613:5;12587:32;:::i;:::-;12578:42;:::i;:::-;12560:61;:::i;:::-;12547:74;;12469:158;;;:::o;12633:147::-;12728:45;12767:5;12728:45;:::i;:::-;12723:3;12716:58;12633:147;;:::o;12786:807::-;13035:4;13073:3;13062:9;13058:19;13050:27;;13087:71;13155:1;13144:9;13140:17;13131:6;13087:71;:::i;:::-;13168:72;13236:2;13225:9;13221:18;13212:6;13168:72;:::i;:::-;13250:80;13326:2;13315:9;13311:18;13302:6;13250:80;:::i;:::-;13340;13416:2;13405:9;13401:18;13392:6;13340:80;:::i;:::-;13430:73;13498:3;13487:9;13483:19;13474:6;13430:73;:::i;:::-;13513;13581:3;13570:9;13566:19;13557:6;13513:73;:::i;:::-;12786:807;;;;;;;;;:::o;13599:143::-;13656:5;13687:6;13681:13;13672:22;;13703:33;13730:5;13703:33;:::i;:::-;13599:143;;;;:::o;13748:663::-;13836:6;13844;13852;13901:2;13889:9;13880:7;13876:23;13872:32;13869:119;;;13907:79;;:::i;:::-;13869:119;14027:1;14052:64;14108:7;14099:6;14088:9;14084:22;14052:64;:::i;:::-;14042:74;;13998:128;14165:2;14191:64;14247:7;14238:6;14227:9;14223:22;14191:64;:::i;:::-;14181:74;;14136:129;14304:2;14330:64;14386:7;14377:6;14366:9;14362:22;14330:64;:::i;:::-;14320:74;;14275:129;13748:663;;;;;:::o;14417:332::-;14538:4;14576:2;14565:9;14561:18;14553:26;;14589:71;14657:1;14646:9;14642:17;14633:6;14589:71;:::i;:::-;14670:72;14738:2;14727:9;14723:18;14714:6;14670:72;:::i;:::-;14417:332;;;;;:::o;14755:116::-;14825:21;14840:5;14825:21;:::i;:::-;14818:5;14815:32;14805:60;;14861:1;14858;14851:12;14805:60;14755:116;:::o;14877:137::-;14931:5;14962:6;14956:13;14947:22;;14978:30;15002:5;14978:30;:::i;:::-;14877:137;;;;:::o;15020:345::-;15087:6;15136:2;15124:9;15115:7;15111:23;15107:32;15104:119;;;15142:79;;:::i;:::-;15104:119;15262:1;15287:61;15340:7;15331:6;15320:9;15316:22;15287:61;:::i;:::-;15277:71;;15233:125;15020:345;;;;:::o;15371:225::-;15511:34;15507:1;15499:6;15495:14;15488:58;15580:8;15575:2;15567:6;15563:15;15556:33;15371:225;:::o;15602:366::-;15744:3;15765:67;15829:2;15824:3;15765:67;:::i;:::-;15758:74;;15841:93;15930:3;15841:93;:::i;:::-;15959:2;15954:3;15950:12;15943:19;;15602:366;;;:::o;15974:419::-;16140:4;16178:2;16167:9;16163:18;16155:26;;16227:9;16221:4;16217:20;16213:1;16202:9;16198:17;16191:47;16255:131;16381:4;16255:131;:::i;:::-;16247:139;;15974:419;;;:::o;16399:223::-;16539:34;16535:1;16527:6;16523:14;16516:58;16608:6;16603:2;16595:6;16591:15;16584:31;16399:223;:::o;16628:366::-;16770:3;16791:67;16855:2;16850:3;16791:67;:::i;:::-;16784:74;;16867:93;16956:3;16867:93;:::i;:::-;16985:2;16980:3;16976:12;16969:19;;16628:366;;;:::o;17000:419::-;17166:4;17204:2;17193:9;17189:18;17181:26;;17253:9;17247:4;17243:20;17239:1;17228:9;17224:17;17217:47;17281:131;17407:4;17281:131;:::i;:::-;17273:139;;17000:419;;;:::o;17425:221::-;17565:34;17561:1;17553:6;17549:14;17542:58;17634:4;17629:2;17621:6;17617:15;17610:29;17425:221;:::o;17652:366::-;17794:3;17815:67;17879:2;17874:3;17815:67;:::i;:::-;17808:74;;17891:93;17980:3;17891:93;:::i;:::-;18009:2;18004:3;18000:12;17993:19;;17652:366;;;:::o;18024:419::-;18190:4;18228:2;18217:9;18213:18;18205:26;;18277:9;18271:4;18267:20;18263:1;18252:9;18248:17;18241:47;18305:131;18431:4;18305:131;:::i;:::-;18297:139;;18024:419;;;:::o;18449:224::-;18589:34;18585:1;18577:6;18573:14;18566:58;18658:7;18653:2;18645:6;18641:15;18634:32;18449:224;:::o;18679:366::-;18821:3;18842:67;18906:2;18901:3;18842:67;:::i;:::-;18835:74;;18918:93;19007:3;18918:93;:::i;:::-;19036:2;19031:3;19027:12;19020:19;;18679:366;;;:::o;19051:419::-;19217:4;19255:2;19244:9;19240:18;19232:26;;19304:9;19298:4;19294:20;19290:1;19279:9;19275:17;19268:47;19332:131;19458:4;19332:131;:::i;:::-;19324:139;;19051:419;;;:::o;19476:166::-;19616:18;19612:1;19604:6;19600:14;19593:42;19476:166;:::o;19648:366::-;19790:3;19811:67;19875:2;19870:3;19811:67;:::i;:::-;19804:74;;19887:93;19976:3;19887:93;:::i;:::-;20005:2;20000:3;19996:12;19989:19;;19648:366;;;:::o;20020:419::-;20186:4;20224:2;20213:9;20209:18;20201:26;;20273:9;20267:4;20263:20;20259:1;20248:9;20244:17;20237:47;20301:131;20427:4;20301:131;:::i;:::-;20293:139;;20020:419;;;:::o;20445:175::-;20585:27;20581:1;20573:6;20569:14;20562:51;20445:175;:::o;20626:366::-;20768:3;20789:67;20853:2;20848:3;20789:67;:::i;:::-;20782:74;;20865:93;20954:3;20865:93;:::i;:::-;20983:2;20978:3;20974:12;20967:19;;20626:366;;;:::o;20998:419::-;21164:4;21202:2;21191:9;21187:18;21179:26;;21251:9;21245:4;21241:20;21237:1;21226:9;21222:17;21215:47;21279:131;21405:4;21279:131;:::i;:::-;21271:139;;20998:419;;;:::o;21423:191::-;21463:3;21482:20;21500:1;21482:20;:::i;:::-;21477:25;;21516:20;21534:1;21516:20;:::i;:::-;21511:25;;21559:1;21556;21552:9;21545:16;;21580:3;21577:1;21574:10;21571:36;;;21587:18;;:::i;:::-;21571:36;21423:191;;;;:::o;21620:180::-;21668:77;21665:1;21658:88;21765:4;21762:1;21755:15;21789:4;21786:1;21779:15;21806:180;21854:77;21851:1;21844:88;21951:4;21948:1;21941:15;21975:4;21972:1;21965:15;21992:114;22059:6;22093:5;22087:12;22077:22;;21992:114;;;:::o;22112:184::-;22211:11;22245:6;22240:3;22233:19;22285:4;22280:3;22276:14;22261:29;;22112:184;;;;:::o;22302:132::-;22369:4;22392:3;22384:11;;22422:4;22417:3;22413:14;22405:22;;22302:132;;;:::o;22440:108::-;22517:24;22535:5;22517:24;:::i;:::-;22512:3;22505:37;22440:108;;:::o;22554:179::-;22623:10;22644:46;22686:3;22678:6;22644:46;:::i;:::-;22722:4;22717:3;22713:14;22699:28;;22554:179;;;;:::o;22739:113::-;22809:4;22841;22836:3;22832:14;22824:22;;22739:113;;;:::o;22888:732::-;23007:3;23036:54;23084:5;23036:54;:::i;:::-;23106:86;23185:6;23180:3;23106:86;:::i;:::-;23099:93;;23216:56;23266:5;23216:56;:::i;:::-;23295:7;23326:1;23311:284;23336:6;23333:1;23330:13;23311:284;;;23412:6;23406:13;23439:63;23498:3;23483:13;23439:63;:::i;:::-;23432:70;;23525:60;23578:6;23525:60;:::i;:::-;23515:70;;23371:224;23358:1;23355;23351:9;23346:14;;23311:284;;;23315:14;23611:3;23604:10;;23012:608;;;22888:732;;;;:::o;23626:142::-;23676:9;23709:53;23727:34;23736:24;23754:5;23736:24;:::i;:::-;23727:34;:::i;:::-;23709:53;:::i;:::-;23696:66;;23626:142;;;:::o;23774:126::-;23824:9;23857:37;23888:5;23857:37;:::i;:::-;23844:50;;23774:126;;;:::o;23906:134::-;23964:9;23997:37;24028:5;23997:37;:::i;:::-;23984:50;;23906:134;;;:::o;24046:147::-;24141:45;24180:5;24141:45;:::i;:::-;24136:3;24129:58;24046:147;;:::o;24199:847::-;24470:4;24508:3;24497:9;24493:19;24485:27;;24522:71;24590:1;24579:9;24575:17;24566:6;24522:71;:::i;:::-;24603:80;24679:2;24668:9;24664:18;24655:6;24603:80;:::i;:::-;24730:9;24724:4;24720:20;24715:2;24704:9;24700:18;24693:48;24758:108;24861:4;24852:6;24758:108;:::i;:::-;24750:116;;24876:80;24952:2;24941:9;24937:18;24928:6;24876:80;:::i;:::-;24966:73;25034:3;25023:9;25019:19;25010:6;24966:73;:::i;:::-;24199:847;;;;;;;;:::o;25052:180::-;25100:77;25097:1;25090:88;25197:4;25194:1;25187:15;25221:4;25218:1;25211:15;25238:185;25278:1;25295:20;25313:1;25295:20;:::i;:::-;25290:25;;25329:20;25347:1;25329:20;:::i;:::-;25324:25;;25368:1;25358:35;;25373:18;;:::i;:::-;25358:35;25415:1;25412;25408:9;25403:14;;25238:185;;;;:::o

Swarm Source

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