ETH Price: $3,125.79 (+1.81%)
Gas: 5 Gwei

Token

Dogechain Token (DC)
 

Overview

Max Total Supply

6,550,132,171.736827304329912901 DC

Holders

9,651

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
AnyswapV6ERC20

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-21
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity ^0.8.2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract AnyswapV6ERC20 is IERC20 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable override decimals;

    address public immutable underlying;
    bool public constant underlyingIsMinted = false;

    /// @dev Records amount of AnyswapV6ERC20 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;

    // init flag for setting immediate vault, needed for CREATE2 support
    bool private _init;

    // flag to enable/disable swapout vs vault.burn so multiple events are triggered
    bool private _vaultOnly;

    // delay for timelock functions
    uint public constant DELAY = 2 days;

    // set of minters, can be this bridge or other bridges
    mapping(address => bool) public isMinter;
    address[] public minters;

    // primary controller of the token contract
    address public vault;

    address public pendingMinter;
    uint public delayMinter;

    address public pendingVault;
    uint public delayVault;

    modifier onlyAuth() {
        require(isMinter[msg.sender], "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    modifier onlyVault() {
        require(msg.sender == vault, "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    function owner() external view returns (address) {
        return vault;
    }

    function mpc() external view returns (address) {
        return vault;
    }

    function setVaultOnly(bool enabled) external onlyVault {
        _vaultOnly = enabled;
    }

    function initVault(address _vault) external onlyVault {
        require(_init);
        _init = false;
        vault = _vault;
        isMinter[_vault] = true;
        minters.push(_vault);
    }

    function setVault(address _vault) external onlyVault {
        require(_vault != address(0), "AnyswapV6ERC20: address(0)");
        pendingVault = _vault;
        delayVault = block.timestamp + DELAY;
    }

    function applyVault() external onlyVault {
        require(pendingVault != address(0) && block.timestamp >= delayVault);
        vault = pendingVault;

        pendingVault = address(0);
        delayVault = 0;
    }

    function setMinter(address _auth) external onlyVault {
        require(_auth != address(0), "AnyswapV6ERC20: address(0)");
        pendingMinter = _auth;
        delayMinter = block.timestamp + DELAY;
    }

    function applyMinter() external onlyVault {
        require(pendingMinter != address(0) && block.timestamp >= delayMinter);
        isMinter[pendingMinter] = true;
        minters.push(pendingMinter);

        pendingMinter = address(0);
        delayMinter = 0;
    }

    // No time delay revoke minter emergency function
    function revokeMinter(address _auth) external onlyVault {
        isMinter[_auth] = false;
    }

    function getAllMinters() external view returns (address[] memory) {
        return minters;
    }

    function changeVault(address newVault) external onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV6ERC20: address(0)");
        emit LogChangeVault(vault, newVault, block.timestamp);
        vault = newVault;
        pendingVault = address(0);
        delayVault = 0;
        return true;
    }

    function mint(address to, uint256 amount) external onlyAuth returns (bool) {
        _mint(to, amount);
        return true;
    }

    function burn(address from, uint256 amount) external onlyAuth returns (bool) {
        _burn(from, amount);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) external onlyAuth returns (bool) {
        if (underlying != address(0) && IERC20(underlying).balanceOf(address(this)) >= amount) {
            IERC20(underlying).safeTransfer(account, amount);
        } else {
            _mint(account, amount);
        }
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, address bindaddr) external returns (bool) {
        require(!_vaultOnly, "AnyswapV6ERC20: vaultOnly");
        require(bindaddr != address(0), "AnyswapV6ERC20: address(0)");
        if (underlying != address(0) && balanceOf[msg.sender] < amount) {
            IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        } else {
            _burn(msg.sender, amount);
        }
        emit LogSwapout(msg.sender, bindaddr, amount);
        return true;
    }

    /// @dev Records number of AnyswapV6ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;

    event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, address indexed bindaddr, uint amount);

    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        underlying = _underlying;
        if (_underlying != address(0)) {
            require(_decimals == IERC20(_underlying).decimals());
        }

        // Use init to allow for CREATE2 accross all chains
        _init = true;

        // Disable/Enable swapout for v1 tokens vs mint/burn for v3 tokens
        _vaultOnly = false;

        vault = _vault;
    }

    /// @dev Returns the total supply of AnyswapV6ERC20 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function deposit() external returns (uint) {
        uint _amount = IERC20(underlying).balanceOf(msg.sender);
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        return _deposit(_amount, msg.sender);
    }

    function deposit(uint amount) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, msg.sender);
    }

    function deposit(uint amount, address to) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, to);
    }

    function depositVault(uint amount, address to) external onlyVault returns (uint) {
        return _deposit(amount, to);
    }

    function _deposit(uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _mint(to, amount);
        return amount;
    }

    function withdraw() external returns (uint) {
        return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender);
    }

    function withdraw(uint amount) external returns (uint) {
        return _withdraw(msg.sender, amount, msg.sender);
    }

    function withdraw(uint amount, address to) external returns (uint) {
        return _withdraw(msg.sender, amount, to);
    }

    function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) {
        return _withdraw(from, amount, to);
    }

    function _withdraw(address from, uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _burn(from, amount);
        IERC20(underlying).safeTransfer(to, amount);
        return amount;
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 balance = balanceOf[account];
        require(balance >= amount, "ERC20: burn amount exceeds balance");

        balanceOf[account] = balance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV6ERC20 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from caller's account to account (`to`).
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV6ERC20 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of AnyswapV6ERC20 token.
    ///   - `from` account must have approved caller to spend at least `value` of AnyswapV6ERC20 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "AnyswapV6ERC20: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }

        uint256 balance = balanceOf[from];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","type":"address"}],"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":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","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":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","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":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"underlyingIsMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b506040516200448c3803806200448c833981810160405281019062000037919062000359565b84600090805190602001906200004f929190620001fd565b50836001908051906020019062000068929190620001fd565b508260ff1660808160ff1660f81b815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200017b578173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012d57600080fd5b505afa15801562000142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016891906200041f565b60ff168360ff16146200017a57600080fd5b5b6001600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050506200064a565b8280546200020b9062000527565b90600052602060002090601f0160209004810192826200022f57600085556200027b565b82601f106200024a57805160ff19168380011785556200027b565b828001600101855582156200027b579182015b828111156200027a5782518255916020019190600101906200025d565b5b5090506200028a91906200028e565b5090565b5b80821115620002a95760008160009055506001016200028f565b5090565b6000620002c4620002be846200047a565b62000451565b905082815260208101848484011115620002e357620002e2620005f6565b5b620002f0848285620004f1565b509392505050565b600081519050620003098162000616565b92915050565b600082601f830112620003275762000326620005f1565b5b815162000339848260208601620002ad565b91505092915050565b600081519050620003538162000630565b92915050565b600080600080600060a0868803121562000378576200037762000600565b5b600086015167ffffffffffffffff811115620003995762000398620005fb565b5b620003a7888289016200030f565b955050602086015167ffffffffffffffff811115620003cb57620003ca620005fb565b5b620003d9888289016200030f565b9450506040620003ec8882890162000342565b9350506060620003ff88828901620002f8565b92505060806200041288828901620002f8565b9150509295509295909350565b60006020828403121562000438576200043762000600565b5b6000620004488482850162000342565b91505092915050565b60006200045d62000470565b90506200046b82826200055d565b919050565b6000604051905090565b600067ffffffffffffffff821115620004985762000497620005c2565b5b620004a38262000605565b9050602081019050919050565b6000620004bd82620004c4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060ff82169050919050565b60005b8381101562000511578082015181840152602081019050620004f4565b8381111562000521576000848401525b50505050565b600060028204905060018216806200054057607f821691505b6020821081141562000557576200055662000593565b5b50919050565b620005688262000605565b810181811067ffffffffffffffff821117156200058a5762000589620005c2565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200062181620004b0565b81146200062d57600080fd5b50565b6200063b81620004e4565b81146200064757600080fd5b50565b60805160f81c60a05160601c613db4620006d860003960008181611714015281816117a2015281816119d001528181611a2901528181611eef0152818161218c0152818161223d0152818161250d0152818161254e0152818161260401528181612882015281816128d90152818161292b01528181612d3c0152612d93015260006112ea0152613db46000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f24451461079d578063dd62ed3e146107a7578063ec126c77146107d7578063f75c266414610807578063fbfa77cf14610825578063fca3b5aa146108435761025c565b8063c30812401461070b578063c4b740f514610729578063cfbd488514610745578063d0e30db014610761578063d6c797511461077f5761025c565b8063a045442c1161010a578063a045442c1461062d578063a9059cbb1461064b578063aa271e1a1461067b578063b6b55f25146106ab578063bebbf4d0146106db5761025c565b806387689e28146105855780638da5cb5b146105a357806391c5df49146105c157806395d89b41146105df5780639dc29fac146105fd5761025c565b80633ccfd60b116101df5780636817031b116101a35780636817031b1461049d57806369b41170146104b95780636e553f65146104d75780636f307dc31461050757806370a08231146105255780638623ec7b146105555761025c565b80633ccfd60b146103d157806340c10f19146103ef57806352113ba71461041f57806360e232a91461043d578063628d6cba1461046d5761025c565b806318160ddd1161022657806318160ddd1461031957806323b872dd146103375780632e1a7d4d146103675780632ebe3fbb14610397578063313ce567146103b35761025c565b806239d6ec14610261578062f714ce1461029157806306fdde03146102c1578063095ea7b3146102df5780630d707df81461030f575b600080fd5b61027b600480360381019061027691906131a7565b61085f565b604051610288919061383e565b60405180910390f35b6102ab60048036038101906102a69190613301565b610905565b6040516102b8919061383e565b60405180910390f35b6102c961091a565b6040516102d691906136bc565b60405180910390f35b6102f960048036038101906102f49190613167565b6109a8565b60405161030691906136a1565b60405180910390f35b610317610a9a565b005b610321610cdf565b60405161032e919061383e565b60405180910390f35b610351600480360381019061034c9190613114565b610ce9565b60405161035e91906136a1565b60405180910390f35b610381600480360381019061037c91906132a7565b611111565b60405161038e919061383e565b60405180910390f35b6103b160048036038101906103ac91906130a7565b611125565b005b6103bb6112e8565b6040516103c89190613859565b60405180910390f35b6103d961130c565b6040516103e6919061383e565b60405180910390f35b61040960048036038101906104049190613167565b61135d565b60405161041691906136a1565b60405180910390f35b6104276113ff565b6040516104349190613604565b60405180910390f35b610457600480360381019061045291906130a7565b611425565b60405161046491906136a1565b60405180910390f35b61048760048036038101906104829190613301565b611638565b60405161049491906136a1565b60405180910390f35b6104b760048036038101906104b291906130a7565b611866565b005b6104c16119bf565b6040516104ce919061383e565b60405180910390f35b6104f160048036038101906104ec9190613301565b6119c6565b6040516104fe919061383e565b60405180910390f35b61050f611a27565b60405161051c9190613604565b60405180910390f35b61053f600480360381019061053a91906130a7565b611a4b565b60405161054c919061383e565b60405180910390f35b61056f600480360381019061056a91906132a7565b611a63565b60405161057c9190613604565b60405180910390f35b61058d611aa2565b60405161059a919061383e565b60405180910390f35b6105ab611aa8565b6040516105b89190613604565b60405180910390f35b6105c9611ad2565b6040516105d69190613604565b60405180910390f35b6105e7611af8565b6040516105f491906136bc565b60405180910390f35b61061760048036038101906106129190613167565b611b86565b60405161062491906136a1565b60405180910390f35b610635611c28565b604051610642919061367f565b60405180910390f35b61066560048036038101906106609190613167565b611cb6565b60405161067291906136a1565b60405180910390f35b610695600480360381019061069091906130a7565b611ec5565b6040516106a291906136a1565b60405180910390f35b6106c560048036038101906106c091906132a7565b611ee5565b6040516106d2919061383e565b60405180910390f35b6106f560048036038101906106f09190613301565b611f45565b604051610702919061383e565b60405180910390f35b610713611fe9565b604051610720919061383e565b60405180910390f35b610743600480360381019061073e91906131fa565b611fef565b005b61075f600480360381019061075a91906130a7565b61209c565b005b610769612187565b604051610776919061383e565b60405180910390f35b610787612292565b60405161079491906136a1565b60405180910390f35b6107a5612297565b005b6107c160048036038101906107bc91906130d4565b612440565b6040516107ce919061383e565b60405180910390f35b6107f160048036038101906107ec9190613254565b612465565b6040516107fe91906136a1565b60405180910390f35b61080f6126b2565b60405161081c9190613604565b60405180910390f35b61082d6126dc565b60405161083a9190613604565b60405180910390f35b61085d600480360381019061085891906130a7565b612702565b005b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e8906136fe565b60405180910390fd5b6108fc84848461285b565b90509392505050565b600061091233848461285b565b905092915050565b60008054610927906139fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610953906139fb565b80156109a05780601f10610975576101008083540402835291602001916109a0565b820191906000526020600020905b81548152906001019060200180831161098357829003601f168201915b505050505081565b600081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a88919061383e565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610b8b57506009544210155b610b9457600080fd5b600160056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600981905550565b6000600354905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d5357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b610d5c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610f74576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f725782811015610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e719061381e565b60405180910390fd5b60008382610e889190613935565b905080600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f68919061383e565b60405180910390a3505b505b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061377e565b60405180910390fd5b82816110079190613935565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109991906138df565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110fd919061383e565b60405180910390a360019150509392505050565b600061111e33833361285b565b9050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac906136fe565b60405180910390fd5b600460009054906101000a900460ff166111ce57600080fd5b6000600460006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061135833600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543361285b565b905090565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e2906136fe565b60405180910390fd5b6113f58383612979565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e9061375e565b60405180910390fd5b428273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac60405160405180910390a481600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b8190555060019050919050565b6000600460019054906101000a900460ff161561168a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116819061373e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f19061375e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015611795575082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156117ec576117e73330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b6117f7565b6117f63384612b4b565b5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c88885604051611854919061383e565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195d9061375e565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a300426119b691906138df565b600b8190555050565b6202a30081565b6000611a153330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b611a1f8383612d15565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026020528060005260406000206000915090505481565b60068181548110611a7357600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054611b05906139fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611b31906139fb565b8015611b7e5780601f10611b5357610100808354040283529160200191611b7e565b820191906000526020600020905b815481529060010190602001808311611b6157829003601f168201915b505050505081565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b906136fe565b60405180910390fd5b611c1e8383612b4b565b6001905092915050565b60606006805480602002602001604051908101604052809291908181526020018280548015611cac57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611c62575b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d2057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611d2957600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da79061377e565b60405180910390fd5b8281611dbc9190613935565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e4e91906138df565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eb2919061383e565b60405180910390a3600191505092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000611f343330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b611f3e8233612d15565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fce906136fe565b60405180910390fd5b611fe18383612d15565b905092915050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612076906136fe565b60405180910390fd5b80600460016101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461212c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612123906136fe565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016121e39190613604565b60206040518083038186803b1580156121fb57600080fd5b505afa15801561220f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223391906132d4565b90506122823330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b61228c8133612d15565b91505090565b600081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156123885750600b544210155b61239157600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b81905550565b600c602052816000526040600020602052806000526040600020600091509150505481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ea906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16141580156125f85750817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125a59190613604565b60206040518083038186803b1580156125bd57600080fd5b505afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f591906132d4565b10155b1561264d5761264883837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612de79092919063ffffffff16565b612658565b6126578383612979565b5b8273ffffffffffffffffffffffffffffffffffffffff16847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161269f919061383e565b60405180910390a3600190509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612792576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612789906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f99061375e565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a3004261285291906138df565b60098190555050565b6000801561286857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415801561291157503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b61291a57600080fd5b6129248484612b4b565b61296f82847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612de79092919063ffffffff16565b8290509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e0906137fe565b60405180910390fd5b80600360008282546129fb91906138df565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a5191906138df565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ab6919061383e565b60405180910390a35050565b612b45846323b872dd60e01b858585604051602401612ae39392919061361f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e6d565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb29061379e565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c39906136de565b60405180910390fd5b8181612c4e9190613935565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254612ca39190613935565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d08919061383e565b60405180910390a3505050565b60008015612d2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015612dcb57503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b612dd457600080fd5b612dde8284612979565b82905092915050565b612e688363a9059cbb60e01b8484604051602401612e06929190613656565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e6d565b505050565b612e8c8273ffffffffffffffffffffffffffffffffffffffff16612fde565b612ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec2906137de565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051612ef391906135ed565b6000604051808303816000865af19150503d8060008114612f30576040519150601f19603f3d011682016040523d82523d6000602084013e612f35565b606091505b509150915081612f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f719061371e565b60405180910390fd5b600081511115612fd85780806020019051810190612f989190613227565b612fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fce906137be565b60405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156130205750808214155b92505050919050565b60008135905061303881613d22565b92915050565b60008135905061304d81613d39565b92915050565b60008151905061306281613d39565b92915050565b60008135905061307781613d50565b92915050565b60008135905061308c81613d67565b92915050565b6000815190506130a181613d67565b92915050565b6000602082840312156130bd576130bc613a8b565b5b60006130cb84828501613029565b91505092915050565b600080604083850312156130eb576130ea613a8b565b5b60006130f985828601613029565b925050602061310a85828601613029565b9150509250929050565b60008060006060848603121561312d5761312c613a8b565b5b600061313b86828701613029565b935050602061314c86828701613029565b925050604061315d8682870161307d565b9150509250925092565b6000806040838503121561317e5761317d613a8b565b5b600061318c85828601613029565b925050602061319d8582860161307d565b9150509250929050565b6000806000606084860312156131c0576131bf613a8b565b5b60006131ce86828701613029565b93505060206131df8682870161307d565b92505060406131f086828701613029565b9150509250925092565b6000602082840312156132105761320f613a8b565b5b600061321e8482850161303e565b91505092915050565b60006020828403121561323d5761323c613a8b565b5b600061324b84828501613053565b91505092915050565b60008060006060848603121561326d5761326c613a8b565b5b600061327b86828701613068565b935050602061328c86828701613029565b925050604061329d8682870161307d565b9150509250925092565b6000602082840312156132bd576132bc613a8b565b5b60006132cb8482850161307d565b91505092915050565b6000602082840312156132ea576132e9613a8b565b5b60006132f884828501613092565b91505092915050565b6000806040838503121561331857613317613a8b565b5b60006133268582860161307d565b925050602061333785828601613029565b9150509250929050565b600061334d8383613359565b60208301905092915050565b61336281613969565b82525050565b61337181613969565b82525050565b600061338282613884565b61338c81856138b2565b935061339783613874565b8060005b838110156133c85781516133af8882613341565b97506133ba836138a5565b92505060018101905061339b565b5085935050505092915050565b6133de8161397b565b82525050565b60006133ef8261388f565b6133f981856138c3565b93506134098185602086016139c8565b80840191505092915050565b60006134208261389a565b61342a81856138ce565b935061343a8185602086016139c8565b61344381613a90565b840191505092915050565b600061345b6022836138ce565b915061346682613aa1565b604082019050919050565b600061347e6019836138ce565b915061348982613af0565b602082019050919050565b60006134a16020836138ce565b91506134ac82613b19565b602082019050919050565b60006134c46019836138ce565b91506134cf82613b42565b602082019050919050565b60006134e7601a836138ce565b91506134f282613b6b565b602082019050919050565b600061350a602f836138ce565b915061351582613b94565b604082019050919050565b600061352d6021836138ce565b915061353882613be3565b604082019050919050565b6000613550602a836138ce565b915061355b82613c32565b604082019050919050565b6000613573601f836138ce565b915061357e82613c81565b602082019050919050565b6000613596601f836138ce565b91506135a182613caa565b602082019050919050565b60006135b96029836138ce565b91506135c482613cd3565b604082019050919050565b6135d8816139b1565b82525050565b6135e7816139bb565b82525050565b60006135f982846133e4565b915081905092915050565b60006020820190506136196000830184613368565b92915050565b60006060820190506136346000830186613368565b6136416020830185613368565b61364e60408301846135cf565b949350505050565b600060408201905061366b6000830185613368565b61367860208301846135cf565b9392505050565b600060208201905081810360008301526136998184613377565b905092915050565b60006020820190506136b660008301846133d5565b92915050565b600060208201905081810360008301526136d68184613415565b905092915050565b600060208201905081810360008301526136f78161344e565b9050919050565b6000602082019050818103600083015261371781613471565b9050919050565b6000602082019050818103600083015261373781613494565b9050919050565b60006020820190508181036000830152613757816134b7565b9050919050565b60006020820190508181036000830152613777816134da565b9050919050565b60006020820190508181036000830152613797816134fd565b9050919050565b600060208201905081810360008301526137b781613520565b9050919050565b600060208201905081810360008301526137d781613543565b9050919050565b600060208201905081810360008301526137f781613566565b9050919050565b6000602082019050818103600083015261381781613589565b9050919050565b60006020820190508181036000830152613837816135ac565b9050919050565b600060208201905061385360008301846135cf565b92915050565b600060208201905061386e60008301846135de565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006138ea826139b1565b91506138f5836139b1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561392a57613929613a2d565b5b828201905092915050565b6000613940826139b1565b915061394b836139b1565b92508282101561395e5761395d613a2d565b5b828203905092915050565b600061397482613991565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156139e65780820151818401526020810190506139cb565b838111156139f5576000848401525b50505050565b60006002820490506001821680613a1357607f821691505b60208210811415613a2757613a26613a5c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f416e7973776170563645524332303a20464f5242494444454e00000000000000600082015250565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564600082015250565b7f416e7973776170563645524332303a207661756c744f6e6c7900000000000000600082015250565b7f416e7973776170563645524332303a2061646472657373283029000000000000600082015250565b7f416e7973776170563645524332303a207472616e7366657220616d6f756e742060008201527f657863656564732062616c616e63650000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f416e7973776170563645524332303a207265717565737420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b613d2b81613969565b8114613d3657600080fd5b50565b613d428161397b565b8114613d4d57600080fd5b50565b613d5981613987565b8114613d6457600080fd5b50565b613d70816139b1565b8114613d7b57600080fd5b5056fea264697066735822122022e3be33798e026815421e3b47bbe3b62360921ef4e372096b294f7d17c24ec064736f6c6343000806003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe3d319aad1be56e7b82e897cd129c4c2c8388dc000000000000000000000000000000000000000000000000000000000000000f446f6765636861696e20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024443000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025c5760003560e01c806387689e2811610146578063c3081240116100c3578063d93f244511610087578063d93f24451461079d578063dd62ed3e146107a7578063ec126c77146107d7578063f75c266414610807578063fbfa77cf14610825578063fca3b5aa146108435761025c565b8063c30812401461070b578063c4b740f514610729578063cfbd488514610745578063d0e30db014610761578063d6c797511461077f5761025c565b8063a045442c1161010a578063a045442c1461062d578063a9059cbb1461064b578063aa271e1a1461067b578063b6b55f25146106ab578063bebbf4d0146106db5761025c565b806387689e28146105855780638da5cb5b146105a357806391c5df49146105c157806395d89b41146105df5780639dc29fac146105fd5761025c565b80633ccfd60b116101df5780636817031b116101a35780636817031b1461049d57806369b41170146104b95780636e553f65146104d75780636f307dc31461050757806370a08231146105255780638623ec7b146105555761025c565b80633ccfd60b146103d157806340c10f19146103ef57806352113ba71461041f57806360e232a91461043d578063628d6cba1461046d5761025c565b806318160ddd1161022657806318160ddd1461031957806323b872dd146103375780632e1a7d4d146103675780632ebe3fbb14610397578063313ce567146103b35761025c565b806239d6ec14610261578062f714ce1461029157806306fdde03146102c1578063095ea7b3146102df5780630d707df81461030f575b600080fd5b61027b600480360381019061027691906131a7565b61085f565b604051610288919061383e565b60405180910390f35b6102ab60048036038101906102a69190613301565b610905565b6040516102b8919061383e565b60405180910390f35b6102c961091a565b6040516102d691906136bc565b60405180910390f35b6102f960048036038101906102f49190613167565b6109a8565b60405161030691906136a1565b60405180910390f35b610317610a9a565b005b610321610cdf565b60405161032e919061383e565b60405180910390f35b610351600480360381019061034c9190613114565b610ce9565b60405161035e91906136a1565b60405180910390f35b610381600480360381019061037c91906132a7565b611111565b60405161038e919061383e565b60405180910390f35b6103b160048036038101906103ac91906130a7565b611125565b005b6103bb6112e8565b6040516103c89190613859565b60405180910390f35b6103d961130c565b6040516103e6919061383e565b60405180910390f35b61040960048036038101906104049190613167565b61135d565b60405161041691906136a1565b60405180910390f35b6104276113ff565b6040516104349190613604565b60405180910390f35b610457600480360381019061045291906130a7565b611425565b60405161046491906136a1565b60405180910390f35b61048760048036038101906104829190613301565b611638565b60405161049491906136a1565b60405180910390f35b6104b760048036038101906104b291906130a7565b611866565b005b6104c16119bf565b6040516104ce919061383e565b60405180910390f35b6104f160048036038101906104ec9190613301565b6119c6565b6040516104fe919061383e565b60405180910390f35b61050f611a27565b60405161051c9190613604565b60405180910390f35b61053f600480360381019061053a91906130a7565b611a4b565b60405161054c919061383e565b60405180910390f35b61056f600480360381019061056a91906132a7565b611a63565b60405161057c9190613604565b60405180910390f35b61058d611aa2565b60405161059a919061383e565b60405180910390f35b6105ab611aa8565b6040516105b89190613604565b60405180910390f35b6105c9611ad2565b6040516105d69190613604565b60405180910390f35b6105e7611af8565b6040516105f491906136bc565b60405180910390f35b61061760048036038101906106129190613167565b611b86565b60405161062491906136a1565b60405180910390f35b610635611c28565b604051610642919061367f565b60405180910390f35b61066560048036038101906106609190613167565b611cb6565b60405161067291906136a1565b60405180910390f35b610695600480360381019061069091906130a7565b611ec5565b6040516106a291906136a1565b60405180910390f35b6106c560048036038101906106c091906132a7565b611ee5565b6040516106d2919061383e565b60405180910390f35b6106f560048036038101906106f09190613301565b611f45565b604051610702919061383e565b60405180910390f35b610713611fe9565b604051610720919061383e565b60405180910390f35b610743600480360381019061073e91906131fa565b611fef565b005b61075f600480360381019061075a91906130a7565b61209c565b005b610769612187565b604051610776919061383e565b60405180910390f35b610787612292565b60405161079491906136a1565b60405180910390f35b6107a5612297565b005b6107c160048036038101906107bc91906130d4565b612440565b6040516107ce919061383e565b60405180910390f35b6107f160048036038101906107ec9190613254565b612465565b6040516107fe91906136a1565b60405180910390f35b61080f6126b2565b60405161081c9190613604565b60405180910390f35b61082d6126dc565b60405161083a9190613604565b60405180910390f35b61085d600480360381019061085891906130a7565b612702565b005b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e8906136fe565b60405180910390fd5b6108fc84848461285b565b90509392505050565b600061091233848461285b565b905092915050565b60008054610927906139fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610953906139fb565b80156109a05780601f10610975576101008083540402835291602001916109a0565b820191906000526020600020905b81548152906001019060200180831161098357829003601f168201915b505050505081565b600081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a88919061383e565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610b8b57506009544210155b610b9457600080fd5b600160056000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600981905550565b6000600354905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d5357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b610d5c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610f74576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f725782811015610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e719061381e565b60405180910390fd5b60008382610e889190613935565b905080600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f68919061383e565b60405180910390a3505b505b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff29061377e565b60405180910390fd5b82816110079190613935565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461109991906138df565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110fd919061383e565b60405180910390a360019150509392505050565b600061111e33833361285b565b9050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac906136fe565b60405180910390fd5b600460009054906101000a900460ff166111ce57600080fd5b6000600460006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000001281565b600061135833600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543361285b565b905090565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e2906136fe565b60405180910390fd5b6113f58383612979565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e9061375e565b60405180910390fd5b428273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac60405160405180910390a481600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b8190555060019050919050565b6000600460019054906101000a900460ff161561168a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116819061373e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f19061375e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015611795575082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156117ec576117e73330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b6117f7565b6117f63384612b4b565b5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c88885604051611854919061383e565b60405180910390a36001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ed906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195d9061375e565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a300426119b691906138df565b600b8190555050565b6202a30081565b6000611a153330857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b611a1f8383612d15565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026020528060005260406000206000915090505481565b60068181548110611a7357600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054611b05906139fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611b31906139fb565b8015611b7e5780601f10611b5357610100808354040283529160200191611b7e565b820191906000526020600020905b815481529060010190602001808311611b6157829003601f168201915b505050505081565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b906136fe565b60405180910390fd5b611c1e8383612b4b565b6001905092915050565b60606006805480602002602001604051908101604052809291908181526020018280548015611cac57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611c62575b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d2057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611d2957600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da79061377e565b60405180910390fd5b8281611dbc9190613935565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e4e91906138df565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eb2919061383e565b60405180910390a3600191505092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000611f343330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b611f3e8233612d15565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fce906136fe565b60405180910390fd5b611fe18383612d15565b905092915050565b60095481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612076906136fe565b60405180910390fd5b80600460016101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461212c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612123906136fe565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016121e39190613604565b60206040518083038186803b1580156121fb57600080fd5b505afa15801561220f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223391906132d4565b90506122823330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612ac2909392919063ffffffff16565b61228c8133612d15565b91505090565b600081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156123885750600b544210155b61239157600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b81905550565b600c602052816000526040600020602052806000526040600020600091509150505481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ea906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16141580156125f85750817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125a59190613604565b60206040518083038186803b1580156125bd57600080fd5b505afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f591906132d4565b10155b1561264d5761264883837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612de79092919063ffffffff16565b612658565b6126578383612979565b5b8273ffffffffffffffffffffffffffffffffffffffff16847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161269f919061383e565b60405180910390a3600190509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612792576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612789906136fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f99061375e565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506202a3004261285291906138df565b60098190555050565b6000801561286857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415801561291157503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b61291a57600080fd5b6129248484612b4b565b61296f82847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612de79092919063ffffffff16565b8290509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e0906137fe565b60405180910390fd5b80600360008282546129fb91906138df565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a5191906138df565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ab6919061383e565b60405180910390a35050565b612b45846323b872dd60e01b858585604051602401612ae39392919061361f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e6d565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb29061379e565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c39906136de565b60405180910390fd5b8181612c4e9190613935565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254612ca39190613935565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d08919061383e565b60405180910390a3505050565b60008015612d2257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614158015612dcb57503073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614155b612dd457600080fd5b612dde8284612979565b82905092915050565b612e688363a9059cbb60e01b8484604051602401612e06929190613656565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e6d565b505050565b612e8c8273ffffffffffffffffffffffffffffffffffffffff16612fde565b612ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec2906137de565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051612ef391906135ed565b6000604051808303816000865af19150503d8060008114612f30576040519150601f19603f3d011682016040523d82523d6000602084013e612f35565b606091505b509150915081612f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f719061371e565b60405180910390fd5b600081511115612fd85780806020019051810190612f989190613227565b612fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fce906137be565b60405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156130205750808214155b92505050919050565b60008135905061303881613d22565b92915050565b60008135905061304d81613d39565b92915050565b60008151905061306281613d39565b92915050565b60008135905061307781613d50565b92915050565b60008135905061308c81613d67565b92915050565b6000815190506130a181613d67565b92915050565b6000602082840312156130bd576130bc613a8b565b5b60006130cb84828501613029565b91505092915050565b600080604083850312156130eb576130ea613a8b565b5b60006130f985828601613029565b925050602061310a85828601613029565b9150509250929050565b60008060006060848603121561312d5761312c613a8b565b5b600061313b86828701613029565b935050602061314c86828701613029565b925050604061315d8682870161307d565b9150509250925092565b6000806040838503121561317e5761317d613a8b565b5b600061318c85828601613029565b925050602061319d8582860161307d565b9150509250929050565b6000806000606084860312156131c0576131bf613a8b565b5b60006131ce86828701613029565b93505060206131df8682870161307d565b92505060406131f086828701613029565b9150509250925092565b6000602082840312156132105761320f613a8b565b5b600061321e8482850161303e565b91505092915050565b60006020828403121561323d5761323c613a8b565b5b600061324b84828501613053565b91505092915050565b60008060006060848603121561326d5761326c613a8b565b5b600061327b86828701613068565b935050602061328c86828701613029565b925050604061329d8682870161307d565b9150509250925092565b6000602082840312156132bd576132bc613a8b565b5b60006132cb8482850161307d565b91505092915050565b6000602082840312156132ea576132e9613a8b565b5b60006132f884828501613092565b91505092915050565b6000806040838503121561331857613317613a8b565b5b60006133268582860161307d565b925050602061333785828601613029565b9150509250929050565b600061334d8383613359565b60208301905092915050565b61336281613969565b82525050565b61337181613969565b82525050565b600061338282613884565b61338c81856138b2565b935061339783613874565b8060005b838110156133c85781516133af8882613341565b97506133ba836138a5565b92505060018101905061339b565b5085935050505092915050565b6133de8161397b565b82525050565b60006133ef8261388f565b6133f981856138c3565b93506134098185602086016139c8565b80840191505092915050565b60006134208261389a565b61342a81856138ce565b935061343a8185602086016139c8565b61344381613a90565b840191505092915050565b600061345b6022836138ce565b915061346682613aa1565b604082019050919050565b600061347e6019836138ce565b915061348982613af0565b602082019050919050565b60006134a16020836138ce565b91506134ac82613b19565b602082019050919050565b60006134c46019836138ce565b91506134cf82613b42565b602082019050919050565b60006134e7601a836138ce565b91506134f282613b6b565b602082019050919050565b600061350a602f836138ce565b915061351582613b94565b604082019050919050565b600061352d6021836138ce565b915061353882613be3565b604082019050919050565b6000613550602a836138ce565b915061355b82613c32565b604082019050919050565b6000613573601f836138ce565b915061357e82613c81565b602082019050919050565b6000613596601f836138ce565b91506135a182613caa565b602082019050919050565b60006135b96029836138ce565b91506135c482613cd3565b604082019050919050565b6135d8816139b1565b82525050565b6135e7816139bb565b82525050565b60006135f982846133e4565b915081905092915050565b60006020820190506136196000830184613368565b92915050565b60006060820190506136346000830186613368565b6136416020830185613368565b61364e60408301846135cf565b949350505050565b600060408201905061366b6000830185613368565b61367860208301846135cf565b9392505050565b600060208201905081810360008301526136998184613377565b905092915050565b60006020820190506136b660008301846133d5565b92915050565b600060208201905081810360008301526136d68184613415565b905092915050565b600060208201905081810360008301526136f78161344e565b9050919050565b6000602082019050818103600083015261371781613471565b9050919050565b6000602082019050818103600083015261373781613494565b9050919050565b60006020820190508181036000830152613757816134b7565b9050919050565b60006020820190508181036000830152613777816134da565b9050919050565b60006020820190508181036000830152613797816134fd565b9050919050565b600060208201905081810360008301526137b781613520565b9050919050565b600060208201905081810360008301526137d781613543565b9050919050565b600060208201905081810360008301526137f781613566565b9050919050565b6000602082019050818103600083015261381781613589565b9050919050565b60006020820190508181036000830152613837816135ac565b9050919050565b600060208201905061385360008301846135cf565b92915050565b600060208201905061386e60008301846135de565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006138ea826139b1565b91506138f5836139b1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561392a57613929613a2d565b5b828201905092915050565b6000613940826139b1565b915061394b836139b1565b92508282101561395e5761395d613a2d565b5b828203905092915050565b600061397482613991565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156139e65780820151818401526020810190506139cb565b838111156139f5576000848401525b50505050565b60006002820490506001821680613a1357607f821691505b60208210811415613a2757613a26613a5c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f416e7973776170563645524332303a20464f5242494444454e00000000000000600082015250565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564600082015250565b7f416e7973776170563645524332303a207661756c744f6e6c7900000000000000600082015250565b7f416e7973776170563645524332303a2061646472657373283029000000000000600082015250565b7f416e7973776170563645524332303a207472616e7366657220616d6f756e742060008201527f657863656564732062616c616e63650000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b7f416e7973776170563645524332303a207265717565737420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b613d2b81613969565b8114613d3657600080fd5b50565b613d428161397b565b8114613d4d57600080fd5b50565b613d5981613987565b8114613d6457600080fd5b50565b613d70816139b1565b8114613d7b57600080fd5b5056fea264697066735822122022e3be33798e026815421e3b47bbe3b62360921ef4e372096b294f7d17c24ec064736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe3d319aad1be56e7b82e897cd129c4c2c8388dc000000000000000000000000000000000000000000000000000000000000000f446f6765636861696e20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024443000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Dogechain Token
Arg [1] : _symbol (string): DC
Arg [2] : _decimals (uint8): 18
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xfE3d319aaD1Be56E7B82e897CD129c4c2C8388Dc

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fe3d319aad1be56e7b82e897cd129c4c2c8388dc
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [6] : 446f6765636861696e20546f6b656e0000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [8] : 4443000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2690:11904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10031:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9897:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2764:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12001:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5168:275;;;:::i;:::-;;8487:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13725:866;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9767:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2816:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9633:126;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6054:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5719:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6753:522;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4502:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3389:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9048:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2866:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3035:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3540:24;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3752:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4017:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3651:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2789:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6195:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5612:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12518:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3493:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8851:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9249:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3686:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4191:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5506:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8597:246;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2908:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4720:222;;;:::i;:::-;;7444:75;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6340:405;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4105:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3622:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4950:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10031:149;10121:4;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10145:27:::1;10155:4;10161:6;10169:2;10145:9;:27::i;:::-;10138:34;;10031:149:::0;;;;;:::o;9897:126::-;9958:4;9982:33;9992:10;10004:6;10012:2;9982:9;:33::i;:::-;9975:40;;9897:126;;;;:::o;2764:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12001:215::-;12077:4;12127:5;12094:9;:21;12104:10;12094:21;;;;;;;;;;;;;;;:30;12116:7;12094:30;;;;;;;;;;;;;;;:38;;;;12169:7;12148:36;;12157:10;12148:36;;;12178:5;12148:36;;;;;;:::i;:::-;;;;;;;;12204:4;12197:11;;12001:215;;;;:::o;5168:275::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5254:1:::1;5229:27;;:13;;;;;;;;;;;:27;;;;:61;;;;;5279:11;;5260:15;:30;;5229:61;5221:70;;;::::0;::::1;;5328:4;5302:8;:23;5311:13;;;;;;;;;;;5302:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5343:7;5356:13;;;;;;;;;;;5343:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5407:1;5383:13;;:26;;;;;;;;;;;;;;;;;;5434:1;5420:11;:15;;;;5168:275::o:0;8487:102::-;8542:7;8569:12;;8562:19;;8487:102;:::o;13725:866::-;13815:4;13854:1;13840:16;;:2;:16;;;;:39;;;;;13874:4;13860:19;;:2;:19;;;;13840:39;13832:48;;;;;;13903:10;13895:18;;:4;:18;;;13891:416;;13930:15;13948:9;:15;13958:4;13948:15;;;;;;;;;;;;;;;:27;13964:10;13948:27;;;;;;;;;;;;;;;;13930:45;;14005:17;13994:7;:28;13990:306;;14062:5;14051:7;:16;;14043:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14132:15;14160:5;14150:7;:15;;;;:::i;:::-;14132:33;;14214:7;14184:9;:15;14194:4;14184:15;;;;;;;;;;;;;;;:27;14200:10;14184:27;;;;;;;;;;;;;;;:37;;;;14260:10;14245:35;;14254:4;14245:35;;;14272:7;14245:35;;;;;;:::i;:::-;;;;;;;;14024:272;13990:306;13915:392;13891:416;14319:15;14337:9;:15;14347:4;14337:15;;;;;;;;;;;;;;;;14319:33;;14382:5;14371:7;:16;;14363:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14480:5;14470:7;:15;;;;:::i;:::-;14452:9;:15;14462:4;14452:15;;;;;;;;;;;;;;;:33;;;;14513:5;14496:9;:13;14506:2;14496:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;14549:2;14534:25;;14543:4;14534:25;;;14553:5;14534:25;;;;;;:::i;:::-;;;;;;;;14579:4;14572:11;;;13725:866;;;;;:::o;9767:122::-;9816:4;9840:41;9850:10;9862:6;9870:10;9840:9;:41::i;:::-;9833:48;;9767:122;;;:::o;4293:201::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4366:5:::1;;;;;;;;;;;4358:14;;;::::0;::::1;;4391:5;4383;;:13;;;;;;;;;;;;;;;;;;4415:6;4407:5;;:14;;;;;;;;;;;;;;;;;;4451:4;4432:8;:16;4441:6;4432:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;4466:7;4479:6;4466:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4293:201:::0;:::o;2816:41::-;;;:::o;9633:126::-;9671:4;9695:56;9705:10;9717:9;:21;9727:10;9717:21;;;;;;;;;;;;;;;;9740:10;9695:9;:56::i;:::-;9688:63;;9633:126;:::o;6054:133::-;6123:4;3822:8;:20;3831:10;3822:20;;;;;;;;;;;;;;;;;;;;;;;;;3814:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6140:17:::1;6146:2;6150:6;6140:5;:17::i;:::-;6175:4;6168:11;;6054:133:::0;;;;:::o;3718:27::-;;;;;;;;;;;;;:::o;5719:327::-;5786:4;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5831:1:::1;5811:22;;:8;:22;;;;5803:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;5912:15;5902:8;5880:48;;5895:5;;;;;;;;;;;5880:48;;;;;;;;;;;;5947:8;5939:5;;:16;;;;;;;;;;;;;;;;;;5989:1;5966:12;;:25;;;;;;;;;;;;;;;;;;6015:1;6002:10;:14;;;;6034:4;6027:11;;5719:327:::0;;;:::o;6753:522::-;6822:4;6848:10;;;;;;;;;;;6847:11;6839:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6927:1;6907:22;;:8;:22;;;;6899:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6997:1;6975:24;;:10;:24;;;;:58;;;;;7027:6;7003:9;:21;7013:10;7003:21;;;;;;;;;;;;;;;;:30;6975:58;6971:219;;;7050:70;7086:10;7106:4;7113:6;7057:10;7050:35;;;;:70;;;;;;:::i;:::-;6971:219;;;7153:25;7159:10;7171:6;7153:5;:25::i;:::-;6971:219;7228:8;7205:40;;7216:10;7205:40;;;7238:6;7205:40;;;;;;:::i;:::-;;;;;;;;7263:4;7256:11;;6753:522;;;;:::o;4502:210::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:1:::1;4574:20;;:6;:20;;;;4566:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;4651:6;4636:12;;:21;;;;;;;;;;;;;;;;;;3418:6;4681:15;:23;;;;:::i;:::-;4668:10;:36;;;;4502:210:::0;:::o;3389:35::-;3418:6;3389:35;:::o;9048:193::-;9108:4;9125:70;9161:10;9181:4;9188:6;9132:10;9125:35;;;;:70;;;;;;:::i;:::-;9213:20;9222:6;9230:2;9213:8;:20::i;:::-;9206:27;;9048:193;;;;:::o;2866:35::-;;;:::o;3035:54::-;;;;;;;;;;;;;;;;;:::o;3540:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3752:22::-;;;;:::o;4017:80::-;4057:7;4084:5;;;;;;;;;;;4077:12;;4017:80;:::o;3651:28::-;;;;;;;;;;;;;:::o;2789:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6195:137::-;6266:4;3822:8;:20;3831:10;3822:20;;;;;;;;;;;;;;;;;;;;;;;;;3814:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6283:19:::1;6289:4;6295:6;6283:5;:19::i;:::-;6320:4;6313:11;;6195:137:::0;;;;:::o;5612:99::-;5660:16;5696:7;5689:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5612:99;:::o;12518:438::-;12590:4;12629:1;12615:16;;:2;:16;;;;:39;;;;;12649:4;12635:19;;:2;:19;;;;12615:39;12607:48;;;;;;12666:15;12684:9;:21;12694:10;12684:21;;;;;;;;;;;;;;;;12666:39;;12735:5;12724:7;:16;;12716:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12839:5;12829:7;:15;;;;:::i;:::-;12805:9;:21;12815:10;12805:21;;;;;;;;;;;;;;;:39;;;;12872:5;12855:9;:13;12865:2;12855:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;12914:2;12893:31;;12902:10;12893:31;;;12918:5;12893:31;;;;;;:::i;:::-;;;;;;;;12944:4;12937:11;;;12518:438;;;;:::o;3493:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;8851:189::-;8899:4;8916:70;8952:10;8972:4;8979:6;8923:10;8916:35;;;;:70;;;;;;:::i;:::-;9004:28;9013:6;9021:10;9004:8;:28::i;:::-;8997:35;;8851:189;;;:::o;9249:127::-;9324:4;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9348:20:::1;9357:6;9365:2;9348:8;:20::i;:::-;9341:27;;9249:127:::0;;;;:::o;3686:23::-;;;;:::o;4191:94::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4270:7:::1;4257:10;;:20;;;;;;;;;;;;;;;;;;4191:94:::0;:::o;5506:98::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5591:5:::1;5573:8;:15;5582:5;5573:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;5506:98:::0;:::o;8597:246::-;8634:4;8651:12;8673:10;8666:28;;;8695:10;8666:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8651:55;;8717:71;8753:10;8773:4;8780:7;8724:10;8717:35;;;;:71;;;;;;:::i;:::-;8806:29;8815:7;8824:10;8806:8;:29::i;:::-;8799:36;;;8597:246;:::o;2908:47::-;2950:5;2908:47;:::o;4720:222::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4804:1:::1;4780:26;;:12;;;;;;;;;;;:26;;;;:59;;;;;4829:10;;4810:15;:29;;4780:59;4772:68;;;::::0;::::1;;4859:12;;;;;;;;;;;4851:5;;:20;;;;;;;;;;;;;;;;;;4907:1;4884:12;;:25;;;;;;;;;;;;;;;;;;4933:1;4920:10;:14;;;;4720:222::o:0;7444:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6340:405::-;6432:4;3822:8;:20;3831:10;3822:20;;;;;;;;;;;;;;;;;;;;;;;;;3814:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6475:1:::1;6453:24;;:10;:24;;;;:81;;;;;6528:6;6488:10;6481:28;;;6518:4;6481:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;6453:81;6449:217;;;6551:48;6583:7;6592:6;6558:10;6551:31;;;;:48;;;;;:::i;:::-;6449:217;;;6632:22;6638:7;6647:6;6632:5;:22::i;:::-;6449:217;6699:7;6681:34;;6691:6;6681:34;6708:6;6681:34;;;;;;:::i;:::-;;;;;;;;6733:4;6726:11;;6340:405:::0;;;;;:::o;4105:78::-;4143:7;4170:5;;;;;;;;;;;4163:12;;4105:78;:::o;3622:20::-;;;;;;;;;;;;;:::o;4950:210::-;3954:5;;;;;;;;;;;3940:19;;:10;:19;;;3932:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5039:1:::1;5022:19;;:5;:19;;;;5014:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5099:5;5083:13;;:21;;;;;;;;;;;;;;;;;;3418:6;5129:15;:23;;;;:::i;:::-;5115:11;:37;;;;4950:210:::0;:::o;10188:312::-;10264:4;2950:5;10289:19;10281:28;;;;;;10350:1;10328:24;;:10;:24;;;;:55;;;;;10378:4;10356:27;;:10;:27;;;;10328:55;10320:64;;;;;;10395:19;10401:4;10407:6;10395:5;:19::i;:::-;10425:43;10457:2;10461:6;10432:10;10425:31;;;;:43;;;;;:::i;:::-;10486:6;10479:13;;10188:312;;;;;:::o;10781:268::-;10876:1;10857:21;;:7;:21;;;;10849:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10943:6;10927:12;;:22;;;;;;;:::i;:::-;;;;;;;;10982:6;10960:9;:18;10970:7;10960:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;11025:7;11004:37;;11021:1;11004:37;;;11034:6;11004:37;;;;;;:::i;:::-;;;;;;;;10781:268;;:::o;1526:201::-;1624:95;1643:5;1673:27;;;1702:4;1708:2;1712:5;1650:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1624:18;:95::i;:::-;1526:201;;;;:::o;11381:403::-;11476:1;11457:21;;:7;:21;;;;11449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11529:15;11547:9;:18;11557:7;11547:18;;;;;;;;;;;;;;;;11529:36;;11595:6;11584:7;:17;;11576:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11684:6;11674:7;:16;;;;:::i;:::-;11653:9;:18;11663:7;11653:18;;;;;;;;;;;;;;;:37;;;;11717:6;11701:12;;:22;;;;;;;:::i;:::-;;;;;;;;11765:1;11739:37;;11748:7;11739:37;;;11769:6;11739:37;;;;;;:::i;:::-;;;;;;;;11438:346;11381:403;;:::o;9384:241::-;9445:4;2950:5;9470:19;9462:28;;;;;;9531:1;9509:24;;:10;:24;;;;:55;;;;;9559:4;9537:27;;:10;:27;;;;9509:55;9501:64;;;;;;9576:17;9582:2;9586:6;9576:5;:17::i;:::-;9611:6;9604:13;;9384:241;;;;:::o;1345:173::-;1425:85;1444:5;1474:23;;;1499:2;1503:5;1451:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1425:18;:85::i;:::-;1345:173;;;:::o;2085:598::-;2173:27;2181:5;2173:25;;;:27::i;:::-;2165:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2310:12;2324:23;2359:5;2351:19;;2371:4;2351:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2309:67;;;;2395:7;2387:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2476:1;2456:10;:17;:21;2452:224;;;2598:10;2587:30;;;;;;;;;;;;:::i;:::-;2579:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2452:224;2154:529;;2085:598;;:::o;905:374::-;965:4;982:16;1009:19;1031:66;1009:88;;;;1200:7;1188:20;1176:32;;1240:3;1228:15;;:8;:15;;:42;;;;;1259:11;1247:8;:23;;1228:42;1220:51;;;;905:374;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;345:5;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:139::-;625:5;663:6;650:20;641:29;;679:33;706:5;679:33;:::i;:::-;631:87;;;;:::o;724:143::-;781:5;812:6;806:13;797:22;;828:33;855:5;828:33;:::i;:::-;787:80;;;;:::o;873:329::-;932:6;981:2;969:9;960:7;956:23;952:32;949:2;;;987:79;;:::i;:::-;949:2;1107:1;1132:53;1177:7;1168:6;1157:9;1153:22;1132:53;:::i;:::-;1122:63;;1078:117;939:263;;;;:::o;1208:474::-;1276:6;1284;1333:2;1321:9;1312:7;1308:23;1304:32;1301:2;;;1339:79;;:::i;:::-;1301:2;1459:1;1484:53;1529:7;1520:6;1509:9;1505:22;1484:53;:::i;:::-;1474:63;;1430:117;1586:2;1612:53;1657:7;1648:6;1637:9;1633:22;1612:53;:::i;:::-;1602:63;;1557:118;1291:391;;;;;:::o;1688:619::-;1765:6;1773;1781;1830:2;1818:9;1809:7;1805:23;1801:32;1798:2;;;1836:79;;:::i;:::-;1798:2;1956:1;1981:53;2026:7;2017:6;2006:9;2002:22;1981:53;:::i;:::-;1971:63;;1927:117;2083:2;2109:53;2154:7;2145:6;2134:9;2130:22;2109:53;:::i;:::-;2099:63;;2054:118;2211:2;2237:53;2282:7;2273:6;2262:9;2258:22;2237:53;:::i;:::-;2227:63;;2182:118;1788:519;;;;;:::o;2313:474::-;2381:6;2389;2438:2;2426:9;2417:7;2413:23;2409:32;2406:2;;;2444:79;;:::i;:::-;2406:2;2564:1;2589:53;2634:7;2625:6;2614:9;2610:22;2589:53;:::i;:::-;2579:63;;2535:117;2691:2;2717:53;2762:7;2753:6;2742:9;2738:22;2717:53;:::i;:::-;2707:63;;2662:118;2396:391;;;;;:::o;2793:619::-;2870:6;2878;2886;2935:2;2923:9;2914:7;2910:23;2906:32;2903:2;;;2941:79;;:::i;:::-;2903:2;3061:1;3086:53;3131:7;3122:6;3111:9;3107:22;3086:53;:::i;:::-;3076:63;;3032:117;3188:2;3214:53;3259:7;3250:6;3239:9;3235:22;3214:53;:::i;:::-;3204:63;;3159:118;3316:2;3342:53;3387:7;3378:6;3367:9;3363:22;3342:53;:::i;:::-;3332:63;;3287:118;2893:519;;;;;:::o;3418:323::-;3474:6;3523:2;3511:9;3502:7;3498:23;3494:32;3491:2;;;3529:79;;:::i;:::-;3491:2;3649:1;3674:50;3716:7;3707:6;3696:9;3692:22;3674:50;:::i;:::-;3664:60;;3620:114;3481:260;;;;:::o;3747:345::-;3814:6;3863:2;3851:9;3842:7;3838:23;3834:32;3831:2;;;3869:79;;:::i;:::-;3831:2;3989:1;4014:61;4067:7;4058:6;4047:9;4043:22;4014:61;:::i;:::-;4004:71;;3960:125;3821:271;;;;:::o;4098:619::-;4175:6;4183;4191;4240:2;4228:9;4219:7;4215:23;4211:32;4208:2;;;4246:79;;:::i;:::-;4208:2;4366:1;4391:53;4436:7;4427:6;4416:9;4412:22;4391:53;:::i;:::-;4381:63;;4337:117;4493:2;4519:53;4564:7;4555:6;4544:9;4540:22;4519:53;:::i;:::-;4509:63;;4464:118;4621:2;4647:53;4692:7;4683:6;4672:9;4668:22;4647:53;:::i;:::-;4637:63;;4592:118;4198:519;;;;;:::o;4723:329::-;4782:6;4831:2;4819:9;4810:7;4806:23;4802:32;4799:2;;;4837:79;;:::i;:::-;4799:2;4957:1;4982:53;5027:7;5018:6;5007:9;5003:22;4982:53;:::i;:::-;4972:63;;4928:117;4789:263;;;;:::o;5058:351::-;5128:6;5177:2;5165:9;5156:7;5152:23;5148:32;5145:2;;;5183:79;;:::i;:::-;5145:2;5303:1;5328:64;5384:7;5375:6;5364:9;5360:22;5328:64;:::i;:::-;5318:74;;5274:128;5135:274;;;;:::o;5415:474::-;5483:6;5491;5540:2;5528:9;5519:7;5515:23;5511:32;5508:2;;;5546:79;;:::i;:::-;5508:2;5666:1;5691:53;5736:7;5727:6;5716:9;5712:22;5691:53;:::i;:::-;5681:63;;5637:117;5793:2;5819:53;5864:7;5855:6;5844:9;5840:22;5819:53;:::i;:::-;5809:63;;5764:118;5498:391;;;;;:::o;5895:179::-;5964:10;5985:46;6027:3;6019:6;5985:46;:::i;:::-;6063:4;6058:3;6054:14;6040:28;;5975:99;;;;:::o;6080:108::-;6157:24;6175:5;6157:24;:::i;:::-;6152:3;6145:37;6135:53;;:::o;6194:118::-;6281:24;6299:5;6281:24;:::i;:::-;6276:3;6269:37;6259:53;;:::o;6348:732::-;6467:3;6496:54;6544:5;6496:54;:::i;:::-;6566:86;6645:6;6640:3;6566:86;:::i;:::-;6559:93;;6676:56;6726:5;6676:56;:::i;:::-;6755:7;6786:1;6771:284;6796:6;6793:1;6790:13;6771:284;;;6872:6;6866:13;6899:63;6958:3;6943:13;6899:63;:::i;:::-;6892:70;;6985:60;7038:6;6985:60;:::i;:::-;6975:70;;6831:224;6818:1;6815;6811:9;6806:14;;6771:284;;;6775:14;7071:3;7064:10;;6472:608;;;;;;;:::o;7086:109::-;7167:21;7182:5;7167:21;:::i;:::-;7162:3;7155:34;7145:50;;:::o;7201:373::-;7305:3;7333:38;7365:5;7333:38;:::i;:::-;7387:88;7468:6;7463:3;7387:88;:::i;:::-;7380:95;;7484:52;7529:6;7524:3;7517:4;7510:5;7506:16;7484:52;:::i;:::-;7561:6;7556:3;7552:16;7545:23;;7309:265;;;;;:::o;7580:364::-;7668:3;7696:39;7729:5;7696:39;:::i;:::-;7751:71;7815:6;7810:3;7751:71;:::i;:::-;7744:78;;7831:52;7876:6;7871:3;7864:4;7857:5;7853:16;7831:52;:::i;:::-;7908:29;7930:6;7908:29;:::i;:::-;7903:3;7899:39;7892:46;;7672:272;;;;;:::o;7950:366::-;8092:3;8113:67;8177:2;8172:3;8113:67;:::i;:::-;8106:74;;8189:93;8278:3;8189:93;:::i;:::-;8307:2;8302:3;8298:12;8291:19;;8096:220;;;:::o;8322:366::-;8464:3;8485:67;8549:2;8544:3;8485:67;:::i;:::-;8478:74;;8561:93;8650:3;8561:93;:::i;:::-;8679:2;8674:3;8670:12;8663:19;;8468:220;;;:::o;8694:366::-;8836:3;8857:67;8921:2;8916:3;8857:67;:::i;:::-;8850:74;;8933:93;9022:3;8933:93;:::i;:::-;9051:2;9046:3;9042:12;9035:19;;8840:220;;;:::o;9066:366::-;9208:3;9229:67;9293:2;9288:3;9229:67;:::i;:::-;9222:74;;9305:93;9394:3;9305:93;:::i;:::-;9423:2;9418:3;9414:12;9407:19;;9212:220;;;:::o;9438:366::-;9580:3;9601:67;9665:2;9660:3;9601:67;:::i;:::-;9594:74;;9677:93;9766:3;9677:93;:::i;:::-;9795:2;9790:3;9786:12;9779:19;;9584:220;;;:::o;9810:366::-;9952:3;9973:67;10037:2;10032:3;9973:67;:::i;:::-;9966:74;;10049:93;10138:3;10049:93;:::i;:::-;10167:2;10162:3;10158:12;10151:19;;9956:220;;;:::o;10182:366::-;10324:3;10345:67;10409:2;10404:3;10345:67;:::i;:::-;10338:74;;10421:93;10510:3;10421:93;:::i;:::-;10539:2;10534:3;10530:12;10523:19;;10328:220;;;:::o;10554:366::-;10696:3;10717:67;10781:2;10776:3;10717:67;:::i;:::-;10710:74;;10793:93;10882:3;10793:93;:::i;:::-;10911:2;10906:3;10902:12;10895:19;;10700:220;;;:::o;10926:366::-;11068:3;11089:67;11153:2;11148:3;11089:67;:::i;:::-;11082:74;;11165:93;11254:3;11165:93;:::i;:::-;11283:2;11278:3;11274:12;11267:19;;11072:220;;;:::o;11298:366::-;11440:3;11461:67;11525:2;11520:3;11461:67;:::i;:::-;11454:74;;11537:93;11626:3;11537:93;:::i;:::-;11655:2;11650:3;11646:12;11639:19;;11444:220;;;:::o;11670:366::-;11812:3;11833:67;11897:2;11892:3;11833:67;:::i;:::-;11826:74;;11909:93;11998:3;11909:93;:::i;:::-;12027:2;12022:3;12018:12;12011:19;;11816:220;;;:::o;12042:118::-;12129:24;12147:5;12129:24;:::i;:::-;12124:3;12117:37;12107:53;;:::o;12166:112::-;12249:22;12265:5;12249:22;:::i;:::-;12244:3;12237:35;12227:51;;:::o;12284:271::-;12414:3;12436:93;12525:3;12516:6;12436:93;:::i;:::-;12429:100;;12546:3;12539:10;;12418:137;;;;:::o;12561:222::-;12654:4;12692:2;12681:9;12677:18;12669:26;;12705:71;12773:1;12762:9;12758:17;12749:6;12705:71;:::i;:::-;12659:124;;;;:::o;12789:442::-;12938:4;12976:2;12965:9;12961:18;12953:26;;12989:71;13057:1;13046:9;13042:17;13033:6;12989:71;:::i;:::-;13070:72;13138:2;13127:9;13123:18;13114:6;13070:72;:::i;:::-;13152;13220:2;13209:9;13205:18;13196:6;13152:72;:::i;:::-;12943:288;;;;;;:::o;13237:332::-;13358:4;13396:2;13385:9;13381:18;13373:26;;13409:71;13477:1;13466:9;13462:17;13453:6;13409:71;:::i;:::-;13490:72;13558:2;13547:9;13543:18;13534:6;13490:72;:::i;:::-;13363:206;;;;;:::o;13575:373::-;13718:4;13756:2;13745:9;13741:18;13733:26;;13805:9;13799:4;13795:20;13791:1;13780:9;13776:17;13769:47;13833:108;13936:4;13927:6;13833:108;:::i;:::-;13825:116;;13723:225;;;;:::o;13954:210::-;14041:4;14079:2;14068:9;14064:18;14056:26;;14092:65;14154:1;14143:9;14139:17;14130:6;14092:65;:::i;:::-;14046:118;;;;:::o;14170:313::-;14283:4;14321:2;14310:9;14306:18;14298:26;;14370:9;14364:4;14360:20;14356:1;14345:9;14341:17;14334:47;14398:78;14471:4;14462:6;14398:78;:::i;:::-;14390:86;;14288:195;;;;:::o;14489:419::-;14655:4;14693:2;14682:9;14678:18;14670:26;;14742:9;14736:4;14732:20;14728:1;14717:9;14713:17;14706:47;14770:131;14896:4;14770:131;:::i;:::-;14762:139;;14660:248;;;:::o;14914:419::-;15080:4;15118:2;15107:9;15103:18;15095:26;;15167:9;15161:4;15157:20;15153:1;15142:9;15138:17;15131:47;15195:131;15321:4;15195:131;:::i;:::-;15187:139;;15085:248;;;:::o;15339:419::-;15505:4;15543:2;15532:9;15528:18;15520:26;;15592:9;15586:4;15582:20;15578:1;15567:9;15563:17;15556:47;15620:131;15746:4;15620:131;:::i;:::-;15612:139;;15510:248;;;:::o;15764:419::-;15930:4;15968:2;15957:9;15953:18;15945:26;;16017:9;16011:4;16007:20;16003:1;15992:9;15988:17;15981:47;16045:131;16171:4;16045:131;:::i;:::-;16037:139;;15935:248;;;:::o;16189:419::-;16355:4;16393:2;16382:9;16378:18;16370:26;;16442:9;16436:4;16432:20;16428:1;16417:9;16413:17;16406:47;16470:131;16596:4;16470:131;:::i;:::-;16462:139;;16360:248;;;:::o;16614:419::-;16780:4;16818:2;16807:9;16803:18;16795:26;;16867:9;16861:4;16857:20;16853:1;16842:9;16838:17;16831:47;16895:131;17021:4;16895:131;:::i;:::-;16887:139;;16785:248;;;:::o;17039:419::-;17205:4;17243:2;17232:9;17228:18;17220:26;;17292:9;17286:4;17282:20;17278:1;17267:9;17263:17;17256:47;17320:131;17446:4;17320:131;:::i;:::-;17312:139;;17210:248;;;:::o;17464:419::-;17630:4;17668:2;17657:9;17653:18;17645:26;;17717:9;17711:4;17707:20;17703:1;17692:9;17688:17;17681:47;17745:131;17871:4;17745:131;:::i;:::-;17737:139;;17635:248;;;:::o;17889:419::-;18055:4;18093:2;18082:9;18078:18;18070:26;;18142:9;18136:4;18132:20;18128:1;18117:9;18113:17;18106:47;18170:131;18296:4;18170:131;:::i;:::-;18162:139;;18060:248;;;:::o;18314:419::-;18480:4;18518:2;18507:9;18503:18;18495:26;;18567:9;18561:4;18557:20;18553:1;18542:9;18538:17;18531:47;18595:131;18721:4;18595:131;:::i;:::-;18587:139;;18485:248;;;:::o;18739:419::-;18905:4;18943:2;18932:9;18928:18;18920:26;;18992:9;18986:4;18982:20;18978:1;18967:9;18963:17;18956:47;19020:131;19146:4;19020:131;:::i;:::-;19012:139;;18910:248;;;:::o;19164:222::-;19257:4;19295:2;19284:9;19280:18;19272:26;;19308:71;19376:1;19365:9;19361:17;19352:6;19308:71;:::i;:::-;19262:124;;;;:::o;19392:214::-;19481:4;19519:2;19508:9;19504:18;19496:26;;19532:67;19596:1;19585:9;19581:17;19572:6;19532:67;:::i;:::-;19486:120;;;;:::o;19693:132::-;19760:4;19783:3;19775:11;;19813:4;19808:3;19804:14;19796:22;;19765:60;;;:::o;19831:114::-;19898:6;19932:5;19926:12;19916:22;;19905:40;;;:::o;19951:98::-;20002:6;20036:5;20030:12;20020:22;;20009:40;;;:::o;20055:99::-;20107:6;20141:5;20135:12;20125:22;;20114:40;;;:::o;20160:113::-;20230:4;20262;20257:3;20253:14;20245:22;;20235:38;;;:::o;20279:184::-;20378:11;20412:6;20407:3;20400:19;20452:4;20447:3;20443:14;20428:29;;20390:73;;;;:::o;20469:147::-;20570:11;20607:3;20592:18;;20582:34;;;;:::o;20622:169::-;20706:11;20740:6;20735:3;20728:19;20780:4;20775:3;20771:14;20756:29;;20718:73;;;;:::o;20797:305::-;20837:3;20856:20;20874:1;20856:20;:::i;:::-;20851:25;;20890:20;20908:1;20890:20;:::i;:::-;20885:25;;21044:1;20976:66;20972:74;20969:1;20966:81;20963:2;;;21050:18;;:::i;:::-;20963:2;21094:1;21091;21087:9;21080:16;;20841:261;;;;:::o;21108:191::-;21148:4;21168:20;21186:1;21168:20;:::i;:::-;21163:25;;21202:20;21220:1;21202:20;:::i;:::-;21197:25;;21241:1;21238;21235:8;21232:2;;;21246:18;;:::i;:::-;21232:2;21291:1;21288;21284:9;21276:17;;21153:146;;;;:::o;21305:96::-;21342:7;21371:24;21389:5;21371:24;:::i;:::-;21360:35;;21350:51;;;:::o;21407:90::-;21441:7;21484:5;21477:13;21470:21;21459:32;;21449:48;;;:::o;21503:77::-;21540:7;21569:5;21558:16;;21548:32;;;:::o;21586:126::-;21623:7;21663:42;21656:5;21652:54;21641:65;;21631:81;;;:::o;21718:77::-;21755:7;21784:5;21773:16;;21763:32;;;:::o;21801:86::-;21836:7;21876:4;21869:5;21865:16;21854:27;;21844:43;;;:::o;21893:307::-;21961:1;21971:113;21985:6;21982:1;21979:13;21971:113;;;22070:1;22065:3;22061:11;22055:18;22051:1;22046:3;22042:11;22035:39;22007:2;22004:1;22000:10;21995:15;;21971:113;;;22102:6;22099:1;22096:13;22093:2;;;22182:1;22173:6;22168:3;22164:16;22157:27;22093:2;21942:258;;;;:::o;22206:320::-;22250:6;22287:1;22281:4;22277:12;22267:22;;22334:1;22328:4;22324:12;22355:18;22345:2;;22411:4;22403:6;22399:17;22389:27;;22345:2;22473;22465:6;22462:14;22442:18;22439:38;22436:2;;;22492:18;;:::i;:::-;22436:2;22257:269;;;;:::o;22532:180::-;22580:77;22577:1;22570:88;22677:4;22674:1;22667:15;22701:4;22698:1;22691:15;22718:180;22766:77;22763:1;22756:88;22863:4;22860:1;22853:15;22887:4;22884:1;22877:15;23027:117;23136:1;23133;23126:12;23150:102;23191:6;23242:2;23238:7;23233:2;23226:5;23222:14;23218:28;23208:38;;23198:54;;;:::o;23258:221::-;23398:34;23394:1;23386:6;23382:14;23375:58;23467:4;23462:2;23454:6;23450:15;23443:29;23364:115;:::o;23485:175::-;23625:27;23621:1;23613:6;23609:14;23602:51;23591:69;:::o;23666:182::-;23806:34;23802:1;23794:6;23790:14;23783:58;23772:76;:::o;23854:175::-;23994:27;23990:1;23982:6;23978:14;23971:51;23960:69;:::o;24035:176::-;24175:28;24171:1;24163:6;24159:14;24152:52;24141:70;:::o;24217:234::-;24357:34;24353:1;24345:6;24341:14;24334:58;24426:17;24421:2;24413:6;24409:15;24402:42;24323:128;:::o;24457:220::-;24597:34;24593:1;24585:6;24581:14;24574:58;24666:3;24661:2;24653:6;24649:15;24642:28;24563:114;:::o;24683:229::-;24823:34;24819:1;24811:6;24807:14;24800:58;24892:12;24887:2;24879:6;24875:15;24868:37;24789:123;:::o;24918:181::-;25058:33;25054:1;25046:6;25042:14;25035:57;25024:75;:::o;25105:181::-;25245:33;25241:1;25233:6;25229:14;25222:57;25211:75;:::o;25292:228::-;25432:34;25428:1;25420:6;25416:14;25409:58;25501:11;25496:2;25488:6;25484:15;25477:36;25398:122;:::o;25526:::-;25599:24;25617:5;25599:24;:::i;:::-;25592:5;25589:35;25579:2;;25638:1;25635;25628:12;25579:2;25569:79;:::o;25654:116::-;25724:21;25739:5;25724:21;:::i;:::-;25717:5;25714:32;25704:2;;25760:1;25757;25750:12;25704:2;25694:76;:::o;25776:122::-;25849:24;25867:5;25849:24;:::i;:::-;25842:5;25839:35;25829:2;;25888:1;25885;25878:12;25829:2;25819:79;:::o;25904:122::-;25977:24;25995:5;25977:24;:::i;:::-;25970:5;25967:35;25957:2;;26016:1;26013;26006:12;25957:2;25947:79;:::o

Swarm Source

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