ETH Price: $2,273.43 (+0.10%)

Token

DelioSwap (DSP)
 

Overview

Max Total Supply

500,000,000 DSP

Holders

171

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
200 DSP

Value
$0.00
0x61861ca3f8ff3ac88f96174f5fbba55179c258c9
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:
Uni

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-26
*/

// File: contracts/SafeMath.sol

pragma solidity ^0.5.16;

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol
// Subject to the MIT license.

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction underflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts with custom message on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

// File: contracts/Uni.sol

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;


contract Uni {
    /// @notice EIP-20 token name for this token
    string public constant name = "DelioSwap";

    /// @notice EIP-20 token symbol for this token
    string public constant symbol = "DSP";

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    /// @notice Total number of tokens in circulation
    uint public totalSupply = 500_000_000e18; // 0.5 billion Uni

    /// @notice Address which may mint new tokens
    address public minter;

    /// @notice The timestamp after which minting may occur
    uint public mintingAllowedAfter;

    /// @notice Minimum time between mints
    uint32 public constant minimumTimeBetweenMints = 1 days * 365;

    /// @notice Cap on the percentage of totalSupply that can be minted at each mint
    uint8 public constant mintCap = 2;

    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    /// @notice Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice The EIP-712 typehash for the permit struct used by the contract
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    /// @notice An event thats emitted when the minter address is changed
    event MinterChanged(address minter, address newMinter);

    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /**
     * @notice Construct a new Uni token
     * @param account The initial account to grant all the tokens
     * @param minter_ The account with minting ability
     * @param mintingAllowedAfter_ The timestamp after which minting may occur
     */
    constructor(address account, address minter_, uint mintingAllowedAfter_) public {
        require(mintingAllowedAfter_ >= block.timestamp, "Uni::constructor: minting can only begin after deployment");

        balances[account] = uint96(totalSupply);
        emit Transfer(address(0), account, totalSupply);
        minter = minter_;
        emit MinterChanged(address(0), minter);
        mintingAllowedAfter = mintingAllowedAfter_;
    }

    /**
     * @notice Change the minter address
     * @param minter_ The address of the new minter
     */
    function setMinter(address minter_) external {
        require(msg.sender == minter, "Uni::setMinter: only the minter can change the minter address");
        emit MinterChanged(minter, minter_);
        minter = minter_;
    }

    /**
     * @notice Mint new tokens
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to be minted
     */
    function mint(address dst, uint rawAmount) external {
        require(msg.sender == minter, "Uni::mint: only the minter can mint");
        require(block.timestamp >= mintingAllowedAfter, "Uni::mint: minting not allowed yet");
        require(dst != address(0), "Uni::mint: cannot transfer to the zero address");

        // record the mint
        mintingAllowedAfter = SafeMath.add(block.timestamp, minimumTimeBetweenMints);

        // mint the amount
        uint96 amount = safe96(rawAmount, "Uni::mint: amount exceeds 96 bits");
        require(amount <= SafeMath.div(SafeMath.mul(totalSupply, mintCap), 100), "Uni::mint: exceeded mint cap");
        totalSupply = safe96(SafeMath.add(totalSupply, amount), "Uni::mint: totalSupply exceeds 96 bits");

        // transfer the amount to the recipient
        balances[dst] = add96(balances[dst], amount, "Uni::mint: transfer amount overflows");
        emit Transfer(address(0), dst, amount);

        // move delegates
        _moveDelegates(address(0), delegates[dst], amount);
    }

    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`
     * @param account The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address account, address spender) external view returns (uint) {
        return allowances[account][spender];
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `src`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * @param spender The address of the account which may transfer tokens
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint rawAmount) external returns (bool) {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Uni::approve: amount exceeds 96 bits");
        }

        allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /**
     * @notice Triggers an approval from owner to spends
     * @param owner The address to approve from
     * @param spender The address to be approved
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @param deadline The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Uni::permit: amount exceeds 96 bits");
        }

        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Uni::permit: invalid signature");
        require(signatory == owner, "Uni::permit: unauthorized");
        require(now <= deadline, "Uni::permit: signature expired");

        allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);
    }

    /**
     * @notice Get the number of tokens held by the `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) external view returns (uint) {
        return balances[account];
    }

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "Uni::transfer: amount exceeds 96 bits");
        _transferTokens(msg.sender, dst, amount);
        return true;
    }

    /**
     * @notice Transfer `amount` tokens from `src` to `dst`
     * @param src The address of the source account
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint96 spenderAllowance = allowances[src][spender];
        uint96 amount = safe96(rawAmount, "Uni::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "Uni::transferFrom: transfer amount exceeds spender allowance");
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

        _transferTokens(src, dst, amount);
        return true;
    }

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) public {
        return _delegate(msg.sender, delegatee);
    }

    /**
     * @notice Delegates votes from signatory to `delegatee`
     * @param delegatee The address to delegate votes to
     * @param nonce The contract state required to match the signature
     * @param expiry The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Uni::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "Uni::delegateBySig: invalid nonce");
        require(now <= expiry, "Uni::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    /**
     * @notice Gets the current votes balance for `account`
     * @param account The address to get votes balance
     * @return The number of current votes for `account`
     */
    function getCurrentVotes(address account) external view returns (uint96) {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    /**
     * @notice Determine the prior number of votes for an account as of a block number
     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
     * @param account The address of the account to check
     * @param blockNumber The block number to get the vote balance at
     * @return The number of votes the account had as of the given block
     */
    function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {
        require(blockNumber < block.number, "Uni::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee) internal {
        address currentDelegate = delegates[delegator];
        uint96 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _transferTokens(address src, address dst, uint96 amount) internal {
        require(src != address(0), "Uni::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "Uni::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "Uni::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "Uni::_transferTokens: transfer amount overflows");
        emit Transfer(src, dst, amount);

        _moveDelegates(delegates[src], delegates[dst], amount);
    }

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "Uni::_moveVotes: vote amount underflows");
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint96 dstRepNew = add96(dstRepOld, amount, "Uni::_moveVotes: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "Uni::_writeCheckpoint: block number exceeds 32 bits");

      if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
          checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
      } else {
          checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
          numCheckpoints[delegatee] = nCheckpoints + 1;
      }

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {
        require(n < 2**96, errorMessage);
        return uint96(n);
    }

    function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        uint96 c = a + b;
        require(c >= a, errorMessage);
        return c;
    }

    function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"minter_","type":"address"},{"internalType":"uint256","name":"mintingAllowedAfter_","type":"uint256"}],"payable":false,"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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"address","name":"newMinter","type":"address"}],"name":"MinterChanged","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumTimeBetweenMints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintCap","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingAllowedAfter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526b019d971e4fe8401e740000006000553480156200002157600080fd5b506040516200456938038062004569833981810160405262000047919081019062000244565b428110156200008d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000849062000362565b60405180910390fd5b600054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200015f919062000384565b60405180910390a381600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f66000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620001fe92919062000335565b60405180910390a18060028190555050505062000460565b60008151905062000227816200042c565b92915050565b6000815190506200023e8162000446565b92915050565b6000806000606084860312156200025a57600080fd5b60006200026a8682870162000216565b93505060206200027d8682870162000216565b925050604062000290868287016200022d565b9150509250925092565b620002a581620003f0565b82525050565b620002b681620003b2565b82525050565b6000620002cb603983620003a1565b91507f556e693a3a636f6e7374727563746f723a206d696e74696e672063616e206f6e60008301527f6c7920626567696e206166746572206465706c6f796d656e74000000000000006020830152604082019050919050565b6200032f81620003e6565b82525050565b60006040820190506200034c60008301856200029a565b6200035b6020830184620002ab565b9392505050565b600060208201905081810360008301526200037d81620002bc565b9050919050565b60006020820190506200039b600083018462000324565b92915050565b600082825260208201905092915050565b6000620003bf82620003c6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620003fd8262000404565b9050919050565b6000620004118262000418565b9050919050565b60006200042582620003c6565b9050919050565b6200043781620003b2565b81146200044357600080fd5b50565b6200045181620003e6565b81146200045d57600080fd5b50565b6140f980620004706000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e146104fa578063e7a324dc1461052a578063f1127ed814610548578063fca3b5aa14610579576101a9565b8063b4b5ea5714610492578063c3cda520146104c2578063d505accf146104de576101a9565b8063782d6fe1116100d3578063782d6fe1146103e45780637ecebe001461041457806395d89b4114610444578063a9059cbb14610462576101a9565b80636fcfff451461036657806370a082311461039657806376c71ca1146103c6576101a9565b806330adf81f1161016657806340c10f191161014057806340c10f19146102e0578063587cde1e146102fc5780635c11d62f1461032c5780635c19a95c1461034a576101a9565b806330adf81f1461028657806330b36cef146102a4578063313ce567146102c2576101a9565b806306fdde03146101ae57806307546172146101cc578063095ea7b3146101ea57806318160ddd1461021a57806320606b701461023857806323b872dd14610256575b600080fd5b6101b6610595565b6040516101c39190613a16565b60405180910390f35b6101d46105ce565b6040516101e1919061386c565b60405180910390f35b61020460048036036101ff9190810190612e94565b6105f4565b60405161021191906138b0565b60405180910390f35b610222610787565b60405161022f9190613c5a565b60405180910390f35b61024061078d565b60405161024d91906138cb565b60405180910390f35b610270600480360361026b9190810190612da7565b6107a4565b60405161027d91906138b0565b60405180910390f35b61028e610a38565b60405161029b91906138cb565b60405180910390f35b6102ac610a4f565b6040516102b99190613c5a565b60405180910390f35b6102ca610a55565b6040516102d79190613cb9565b60405180910390f35b6102fa60048036036102f59190810190612e94565b610a5a565b005b61031660048036036103119190810190612d42565b610e55565b604051610323919061386c565b60405180910390f35b610334610e88565b6040516103419190613c75565b60405180910390f35b610364600480360361035f9190810190612d42565b610e90565b005b610380600480360361037b9190810190612d42565b610e9d565b60405161038d9190613c75565b60405180910390f35b6103b060048036036103ab9190810190612d42565b610ec0565b6040516103bd9190613c5a565b60405180910390f35b6103ce610f2f565b6040516103db9190613cb9565b60405180910390f35b6103fe60048036036103f99190810190612e94565b610f34565b60405161040b9190613cef565b60405180910390f35b61042e60048036036104299190810190612d42565b611347565b60405161043b9190613c5a565b60405180910390f35b61044c61135f565b6040516104599190613a16565b60405180910390f35b61047c60048036036104779190810190612e94565b611398565b60405161048991906138b0565b60405180910390f35b6104ac60048036036104a79190810190612d42565b6113d5565b6040516104b99190613cef565b60405180910390f35b6104dc60048036036104d79190810190612ed0565b6114c3565b005b6104f860048036036104f39190810190612df6565b611766565b005b610514600480360361050f9190810190612d6b565b611bb8565b6040516105219190613c5a565b60405180910390f35b610532611c65565b60405161053f91906138cb565b60405180910390f35b610562600480360361055d9190810190612f59565b611c7c565b604051610570929190613c90565b60405180910390f35b610593600480360361058e9190810190612d42565b611cd5565b005b6040518060400160405280600981526020017f44656c696f53776170000000000000000000000000000000000000000000000081525081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610647577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061066c565b6106698360405180606001604052806024815260200161406460249139611e04565b90505b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107749190613cd4565b60405180910390a3600191505092915050565b60005481565b60405161079990613842565b604051809103902081565b6000803390506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108678560405180606001604052806024815260200161406460249139611e04565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156108e157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b15610a1f57600061090b83836040518060600160405280603c8152602001613ee4603c9139611e62565b905080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a159190613cd4565b60405180910390a3505b610a2a878783611ed3565b600193505050509392505050565b604051610a449061382d565b604051809103902081565b60025481565b601281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190613b7a565b60405180910390fd5b600254421015610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690613afa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690613ada565b60405180910390fd5b610bb3426301e1338063ffffffff166122b4565b6002819055506000610bdd8260405180606001604052806021815260200161404360219139611e04565b9050610bf9610bf2600054600260ff16612309565b6064612379565b816bffffffffffffffffffffffff161115610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090613b5a565b60405180910390fd5b610c84610c66600054836bffffffffffffffffffffffff166122b4565b604051806060016040528060268152602001613f2060269139611e04565b6bffffffffffffffffffffffff16600081905550610d12600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1682604051806060016040528060248152602001613ec0602491396123c3565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ddd9190613cd4565b60405180910390a3610e506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612439565b505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610e9a3382612734565b50565b60076020528060005260406000206000915054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600281565b6000438210610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90613aba565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610fe5576000915050611341565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16116110e757600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611341565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115611168576000915050611341565b600080905060006001830390505b8163ffffffff168163ffffffff1611156112c3576000600283830363ffffffff168161119e57fe5b04820390506111ab612cab565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff16141561129b57806020015195505050505050611341565b86816000015163ffffffff1610156112b5578193506112bc565b6001820392505b5050611176565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60086020528060005260406000206000915090505481565b6040518060400160405280600381526020017f445350000000000000000000000000000000000000000000000000000000000081525081565b6000806113bd8360405180606001604052806025815260200161401e60259139611e04565b90506113ca338583611ed3565b600191505092915050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161143f5760006114bb565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b60006040516114d190613842565b60405180910390206040518060400160405280600981526020017f44656c696f5377617000000000000000000000000000000000000000000000008152508051906020012061151e6128f4565b30604051602001611532949392919061398c565b604051602081830303815290604052805190602001209050600060405161155890613857565b60405180910390208888886040516020016115769493929190613947565b604051602081830303815290604052805190602001209050600082826040516020016115a39291906137f6565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516115e094939291906139d1565b6020604051602081039080840390855afa158015611602573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590613a9a565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055891461170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613bba565b60405180910390fd5b87421115611750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174790613a5a565b60405180910390fd5b61175a818b612734565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8614156117b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506117dd565b6117da86604051806060016040528060238152602001613f7b60239139611e04565b90505b60006040516117eb90613842565b60405180910390206040518060400160405280600981526020017f44656c696f537761700000000000000000000000000000000000000000000000815250805190602001206118386128f4565b3060405160200161184c949392919061398c565b60405160208183030381529060405280519060200120905060006040516118729061382d565b60405180910390208a8a8a600860008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016118e1969594939291906138e6565b6040516020818303038152906040528051906020012090506000828260405160200161190e9291906137f6565b60405160208183030381529060405280519060200120905060006001828989896040516000815260200160405260405161194b94939291906139d1565b6020604051602081039080840390855afa15801561196d573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e090613c1a565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e90613c3a565b60405180910390fd5b88421115611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613bfa565b60405180910390fd5b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611ba29190613cd4565b60405180910390a3505050505050505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b604051611c7190613857565b604051809103902081565b6006602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613b9a565b60405180910390fd5b7f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051611db8929190613887565b60405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006c0100000000000000000000000083108290611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f9190613a38565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9190613a38565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3a90613bda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa90613b1a565b60405180910390fd5b61202d600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1682604051806060016040528060358152602001613f4660359139611e62565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612114600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280602f8152602001614088602f91396123c3565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121de9190613cd4565b60405180910390a36122af600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612439565b505050565b6000808284019050838110156122ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f690613a7a565b60405180910390fd5b8091505092915050565b60008083141561231c5760009050612373565b600082840290508284828161232d57fe5b041461236e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236590613b3a565b60405180910390fd5b809150505b92915050565b60006123bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612901565b905092915050565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015839061242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249190613a38565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561248357506000816bffffffffffffffffffffffff16115b1561272f57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146125db576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116125265760006125a2565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006125c98285604051806060016040528060278152602001613ff760279139611e62565b90506125d786848484612962565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461272e576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116126795760006126f5565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061271c8285604051806060016040528060268152602001613f9e602691396123c3565b905061272a85848484612962565b5050505b5b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46128ee828483612439565b50505050565b6000804690508091505090565b60008083118290612948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293f9190613a38565b60405180910390fd5b50600083858161295457fe5b049050809150509392505050565b600061298643604051806060016040528060338152602001613fc460339139612c55565b905060008463ffffffff16118015612a1b57508063ffffffff16600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15612ab65781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612bfe565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612c46929190613d0a565b60405180910390a25050505050565b600064010000000083108290612ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c989190613a38565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b600081359050612ce881613e4c565b92915050565b600081359050612cfd81613e63565b92915050565b600081359050612d1281613e7a565b92915050565b600081359050612d2781613e91565b92915050565b600081359050612d3c81613ea8565b92915050565b600060208284031215612d5457600080fd5b6000612d6284828501612cd9565b91505092915050565b60008060408385031215612d7e57600080fd5b6000612d8c85828601612cd9565b9250506020612d9d85828601612cd9565b9150509250929050565b600080600060608486031215612dbc57600080fd5b6000612dca86828701612cd9565b9350506020612ddb86828701612cd9565b9250506040612dec86828701612d03565b9150509250925092565b600080600080600080600060e0888a031215612e1157600080fd5b6000612e1f8a828b01612cd9565b9750506020612e308a828b01612cd9565b9650506040612e418a828b01612d03565b9550506060612e528a828b01612d03565b9450506080612e638a828b01612d2d565b93505060a0612e748a828b01612cee565b92505060c0612e858a828b01612cee565b91505092959891949750929550565b60008060408385031215612ea757600080fd5b6000612eb585828601612cd9565b9250506020612ec685828601612d03565b9150509250929050565b60008060008060008060c08789031215612ee957600080fd5b6000612ef789828a01612cd9565b9650506020612f0889828a01612d03565b9550506040612f1989828a01612d03565b9450506060612f2a89828a01612d2d565b9350506080612f3b89828a01612cee565b92505060a0612f4c89828a01612cee565b9150509295509295509295565b60008060408385031215612f6c57600080fd5b6000612f7a85828601612cd9565b9250506020612f8b85828601612d18565b9150509250929050565b612f9e81613d65565b82525050565b612fad81613d77565b82525050565b612fbc81613d83565b82525050565b612fd3612fce82613d83565b613e31565b82525050565b6000612fe482613d3e565b612fee8185613d49565b9350612ffe818560208601613dfe565b61300781613e3b565b840191505092915050565b600061301d82613d33565b6130278185613d49565b9350613037818560208601613dfe565b61304081613e3b565b840191505092915050565b6000613058602583613d49565b91507f556e693a3a64656c656761746542795369673a207369676e617475726520657860008301527f70697265640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130be600283613d5a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006130fe601b83613d49565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061313e602583613d49565b91507f556e693a3a64656c656761746542795369673a20696e76616c6964207369676e60008301527f61747572650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131a4602683613d49565b91507f556e693a3a6765745072696f72566f7465733a206e6f7420796574206465746560008301527f726d696e656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061320a602e83613d49565b91507f556e693a3a6d696e743a2063616e6e6f74207472616e7366657220746f20746860008301527f65207a65726f20616464726573730000000000000000000000000000000000006020830152604082019050919050565b6000613270605283613d5a565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b60006132fc602283613d49565b91507f556e693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f776564207960008301527f65740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613362604383613d5a565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b60006133ee603983613d49565b91507f556e693a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e7366657220746f20746865207a65726f2061646472657373000000000000006020830152604082019050919050565b6000613454602183613d49565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134ba601c83613d49565b91507f556e693a3a6d696e743a206578636565646564206d696e7420636170000000006000830152602082019050919050565b60006134fa602383613d49565b91507f556e693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e206d60008301527f696e7400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613560603d83613d49565b91507f556e693a3a7365744d696e7465723a206f6e6c7920746865206d696e7465722060008301527f63616e206368616e676520746865206d696e74657220616464726573730000006020830152604082019050919050565b60006135c6602183613d49565b91507f556e693a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061362c603b83613d49565b91507f556e693a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e736665722066726f6d20746865207a65726f206164647265737300000000006020830152604082019050919050565b6000613692601e83613d49565b91507f556e693a3a7065726d69743a207369676e6174757265206578706972656400006000830152602082019050919050565b60006136d2603a83613d5a565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000613738601e83613d49565b91507f556e693a3a7065726d69743a20696e76616c6964207369676e617475726500006000830152602082019050919050565b6000613778601983613d49565b91507f556e693a3a7065726d69743a20756e617574686f72697a6564000000000000006000830152602082019050919050565b6137b481613dad565b82525050565b6137c381613db7565b82525050565b6137d281613dc7565b82525050565b6137e181613dec565b82525050565b6137f081613dd4565b82525050565b6000613801826130b1565b915061380d8285612fc2565b60208201915061381d8284612fc2565b6020820191508190509392505050565b600061383882613263565b9150819050919050565b600061384d82613355565b9150819050919050565b6000613862826136c5565b9150819050919050565b60006020820190506138816000830184612f95565b92915050565b600060408201905061389c6000830185612f95565b6138a96020830184612f95565b9392505050565b60006020820190506138c56000830184612fa4565b92915050565b60006020820190506138e06000830184612fb3565b92915050565b600060c0820190506138fb6000830189612fb3565b6139086020830188612f95565b6139156040830187612f95565b61392260608301866137ab565b61392f60808301856137ab565b61393c60a08301846137ab565b979650505050505050565b600060808201905061395c6000830187612fb3565b6139696020830186612f95565b61397660408301856137ab565b61398360608301846137ab565b95945050505050565b60006080820190506139a16000830187612fb3565b6139ae6020830186612fb3565b6139bb60408301856137ab565b6139c86060830184612f95565b95945050505050565b60006080820190506139e66000830187612fb3565b6139f360208301866137c9565b613a006040830185612fb3565b613a0d6060830184612fb3565b95945050505050565b60006020820190508181036000830152613a308184613012565b905092915050565b60006020820190508181036000830152613a528184612fd9565b905092915050565b60006020820190508181036000830152613a738161304b565b9050919050565b60006020820190508181036000830152613a93816130f1565b9050919050565b60006020820190508181036000830152613ab381613131565b9050919050565b60006020820190508181036000830152613ad381613197565b9050919050565b60006020820190508181036000830152613af3816131fd565b9050919050565b60006020820190508181036000830152613b13816132ef565b9050919050565b60006020820190508181036000830152613b33816133e1565b9050919050565b60006020820190508181036000830152613b5381613447565b9050919050565b60006020820190508181036000830152613b73816134ad565b9050919050565b60006020820190508181036000830152613b93816134ed565b9050919050565b60006020820190508181036000830152613bb381613553565b9050919050565b60006020820190508181036000830152613bd3816135b9565b9050919050565b60006020820190508181036000830152613bf38161361f565b9050919050565b60006020820190508181036000830152613c1381613685565b9050919050565b60006020820190508181036000830152613c338161372b565b9050919050565b60006020820190508181036000830152613c538161376b565b9050919050565b6000602082019050613c6f60008301846137ab565b92915050565b6000602082019050613c8a60008301846137ba565b92915050565b6000604082019050613ca560008301856137ba565b613cb260208301846137e7565b9392505050565b6000602082019050613cce60008301846137c9565b92915050565b6000602082019050613ce960008301846137d8565b92915050565b6000602082019050613d0460008301846137e7565b92915050565b6000604082019050613d1f60008301856137d8565b613d2c60208301846137d8565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613d7082613d8d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613df782613dd4565b9050919050565b60005b83811015613e1c578082015181840152602081019050613e01565b83811115613e2b576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b613e5581613d65565b8114613e6057600080fd5b50565b613e6c81613d83565b8114613e7757600080fd5b50565b613e8381613dad565b8114613e8e57600080fd5b50565b613e9a81613db7565b8114613ea557600080fd5b50565b613eb181613dc7565b8114613ebc57600080fd5b5056fe556e693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f7773556e693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365556e693a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473556e693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365556e693a3a7065726d69743a20616d6f756e7420657863656564732039362062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773556e693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773556e693a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473556e693a3a6d696e743a20616d6f756e7420657863656564732039362062697473556e693a3a617070726f76653a20616d6f756e7420657863656564732039362062697473556e693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773a365627a7a723158202ee95ffa3bcb85b0cf2bf123922d753ac9340ae3d5dbe6aac8ccc278b581a8b06c6578706572696d656e74616cf564736f6c63430005100040000000000000000000000000557734059bb92bf58d3e86ca29e4ce67fbb6fc6f000000000000000000000000e0ebe99d97d3fc57fe4631341fa6d6836c617d3a00000000000000000000000000000000000000000000000000000000616478c2

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e146104fa578063e7a324dc1461052a578063f1127ed814610548578063fca3b5aa14610579576101a9565b8063b4b5ea5714610492578063c3cda520146104c2578063d505accf146104de576101a9565b8063782d6fe1116100d3578063782d6fe1146103e45780637ecebe001461041457806395d89b4114610444578063a9059cbb14610462576101a9565b80636fcfff451461036657806370a082311461039657806376c71ca1146103c6576101a9565b806330adf81f1161016657806340c10f191161014057806340c10f19146102e0578063587cde1e146102fc5780635c11d62f1461032c5780635c19a95c1461034a576101a9565b806330adf81f1461028657806330b36cef146102a4578063313ce567146102c2576101a9565b806306fdde03146101ae57806307546172146101cc578063095ea7b3146101ea57806318160ddd1461021a57806320606b701461023857806323b872dd14610256575b600080fd5b6101b6610595565b6040516101c39190613a16565b60405180910390f35b6101d46105ce565b6040516101e1919061386c565b60405180910390f35b61020460048036036101ff9190810190612e94565b6105f4565b60405161021191906138b0565b60405180910390f35b610222610787565b60405161022f9190613c5a565b60405180910390f35b61024061078d565b60405161024d91906138cb565b60405180910390f35b610270600480360361026b9190810190612da7565b6107a4565b60405161027d91906138b0565b60405180910390f35b61028e610a38565b60405161029b91906138cb565b60405180910390f35b6102ac610a4f565b6040516102b99190613c5a565b60405180910390f35b6102ca610a55565b6040516102d79190613cb9565b60405180910390f35b6102fa60048036036102f59190810190612e94565b610a5a565b005b61031660048036036103119190810190612d42565b610e55565b604051610323919061386c565b60405180910390f35b610334610e88565b6040516103419190613c75565b60405180910390f35b610364600480360361035f9190810190612d42565b610e90565b005b610380600480360361037b9190810190612d42565b610e9d565b60405161038d9190613c75565b60405180910390f35b6103b060048036036103ab9190810190612d42565b610ec0565b6040516103bd9190613c5a565b60405180910390f35b6103ce610f2f565b6040516103db9190613cb9565b60405180910390f35b6103fe60048036036103f99190810190612e94565b610f34565b60405161040b9190613cef565b60405180910390f35b61042e60048036036104299190810190612d42565b611347565b60405161043b9190613c5a565b60405180910390f35b61044c61135f565b6040516104599190613a16565b60405180910390f35b61047c60048036036104779190810190612e94565b611398565b60405161048991906138b0565b60405180910390f35b6104ac60048036036104a79190810190612d42565b6113d5565b6040516104b99190613cef565b60405180910390f35b6104dc60048036036104d79190810190612ed0565b6114c3565b005b6104f860048036036104f39190810190612df6565b611766565b005b610514600480360361050f9190810190612d6b565b611bb8565b6040516105219190613c5a565b60405180910390f35b610532611c65565b60405161053f91906138cb565b60405180910390f35b610562600480360361055d9190810190612f59565b611c7c565b604051610570929190613c90565b60405180910390f35b610593600480360361058e9190810190612d42565b611cd5565b005b6040518060400160405280600981526020017f44656c696f53776170000000000000000000000000000000000000000000000081525081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610647577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061066c565b6106698360405180606001604052806024815260200161406460249139611e04565b90505b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107749190613cd4565b60405180910390a3600191505092915050565b60005481565b60405161079990613842565b604051809103902081565b6000803390506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905060006108678560405180606001604052806024815260200161406460249139611e04565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156108e157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6bffffffffffffffffffffffff16826bffffffffffffffffffffffff1614155b15610a1f57600061090b83836040518060600160405280603c8152602001613ee4603c9139611e62565b905080600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a159190613cd4565b60405180910390a3505b610a2a878783611ed3565b600193505050509392505050565b604051610a449061382d565b604051809103902081565b60025481565b601281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190613b7a565b60405180910390fd5b600254421015610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690613afa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690613ada565b60405180910390fd5b610bb3426301e1338063ffffffff166122b4565b6002819055506000610bdd8260405180606001604052806021815260200161404360219139611e04565b9050610bf9610bf2600054600260ff16612309565b6064612379565b816bffffffffffffffffffffffff161115610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090613b5a565b60405180910390fd5b610c84610c66600054836bffffffffffffffffffffffff166122b4565b604051806060016040528060268152602001613f2060269139611e04565b6bffffffffffffffffffffffff16600081905550610d12600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1682604051806060016040528060248152602001613ec0602491396123c3565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ddd9190613cd4565b60405180910390a3610e506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612439565b505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610e9a3382612734565b50565b60076020528060005260406000206000915054906101000a900463ffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b600281565b6000438210610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90613aba565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610fe5576000915050611341565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16116110e757600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050611341565b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115611168576000915050611341565b600080905060006001830390505b8163ffffffff168163ffffffff1611156112c3576000600283830363ffffffff168161119e57fe5b04820390506111ab612cab565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff16141561129b57806020015195505050505050611341565b86816000015163ffffffff1610156112b5578193506112bc565b6001820392505b5050611176565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b60086020528060005260406000206000915090505481565b6040518060400160405280600381526020017f445350000000000000000000000000000000000000000000000000000000000081525081565b6000806113bd8360405180606001604052806025815260200161401e60259139611e04565b90506113ca338583611ed3565b600191505092915050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161161143f5760006114bb565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b60006040516114d190613842565b60405180910390206040518060400160405280600981526020017f44656c696f5377617000000000000000000000000000000000000000000000008152508051906020012061151e6128f4565b30604051602001611532949392919061398c565b604051602081830303815290604052805190602001209050600060405161155890613857565b60405180910390208888886040516020016115769493929190613947565b604051602081830303815290604052805190602001209050600082826040516020016115a39291906137f6565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516115e094939291906139d1565b6020604051602081039080840390855afa158015611602573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590613a9a565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055891461170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613bba565b60405180910390fd5b87421115611750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174790613a5a565b60405180910390fd5b61175a818b612734565b50505050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8614156117b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506117dd565b6117da86604051806060016040528060238152602001613f7b60239139611e04565b90505b60006040516117eb90613842565b60405180910390206040518060400160405280600981526020017f44656c696f537761700000000000000000000000000000000000000000000000815250805190602001206118386128f4565b3060405160200161184c949392919061398c565b60405160208183030381529060405280519060200120905060006040516118729061382d565b60405180910390208a8a8a600860008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020016118e1969594939291906138e6565b6040516020818303038152906040528051906020012090506000828260405160200161190e9291906137f6565b60405160208183030381529060405280519060200120905060006001828989896040516000815260200160405260405161194b94939291906139d1565b6020604051602081039080840390855afa15801561196d573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e090613c1a565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e90613c3a565b60405180910390fd5b88421115611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613bfa565b60405180910390fd5b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611ba29190613cd4565b60405180910390a3505050505050505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b604051611c7190613857565b604051809103902081565b6006602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613b9a565b60405180910390fd5b7f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051611db8929190613887565b60405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006c0100000000000000000000000083108290611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f9190613a38565b60405180910390fd5b5082905092915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9190613a38565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3a90613bda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa90613b1a565b60405180910390fd5b61202d600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff1682604051806060016040528060358152602001613f4660359139611e62565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612114600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16826040518060600160405280602f8152602001614088602f91396123c3565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121de9190613cd4565b60405180910390a36122af600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612439565b505050565b6000808284019050838110156122ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f690613a7a565b60405180910390fd5b8091505092915050565b60008083141561231c5760009050612373565b600082840290508284828161232d57fe5b041461236e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236590613b3a565b60405180910390fd5b809150505b92915050565b60006123bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612901565b905092915050565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015839061242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124249190613a38565b60405180910390fd5b50809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561248357506000816bffffffffffffffffffffffff16115b1561272f57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146125db576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116125265760006125a2565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006125c98285604051806060016040528060278152602001613ff760279139611e62565b90506125d786848484612962565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461272e576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116126795760006126f5565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061271c8285604051806060016040528060268152602001613f9e602691396123c3565b905061272a85848484612962565b5050505b5b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46128ee828483612439565b50505050565b6000804690508091505090565b60008083118290612948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293f9190613a38565b60405180910390fd5b50600083858161295457fe5b049050809150509392505050565b600061298643604051806060016040528060338152602001613fc460339139612c55565b905060008463ffffffff16118015612a1b57508063ffffffff16600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15612ab65781600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612bfe565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612c46929190613d0a565b60405180910390a25050505050565b600064010000000083108290612ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c989190613a38565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b600081359050612ce881613e4c565b92915050565b600081359050612cfd81613e63565b92915050565b600081359050612d1281613e7a565b92915050565b600081359050612d2781613e91565b92915050565b600081359050612d3c81613ea8565b92915050565b600060208284031215612d5457600080fd5b6000612d6284828501612cd9565b91505092915050565b60008060408385031215612d7e57600080fd5b6000612d8c85828601612cd9565b9250506020612d9d85828601612cd9565b9150509250929050565b600080600060608486031215612dbc57600080fd5b6000612dca86828701612cd9565b9350506020612ddb86828701612cd9565b9250506040612dec86828701612d03565b9150509250925092565b600080600080600080600060e0888a031215612e1157600080fd5b6000612e1f8a828b01612cd9565b9750506020612e308a828b01612cd9565b9650506040612e418a828b01612d03565b9550506060612e528a828b01612d03565b9450506080612e638a828b01612d2d565b93505060a0612e748a828b01612cee565b92505060c0612e858a828b01612cee565b91505092959891949750929550565b60008060408385031215612ea757600080fd5b6000612eb585828601612cd9565b9250506020612ec685828601612d03565b9150509250929050565b60008060008060008060c08789031215612ee957600080fd5b6000612ef789828a01612cd9565b9650506020612f0889828a01612d03565b9550506040612f1989828a01612d03565b9450506060612f2a89828a01612d2d565b9350506080612f3b89828a01612cee565b92505060a0612f4c89828a01612cee565b9150509295509295509295565b60008060408385031215612f6c57600080fd5b6000612f7a85828601612cd9565b9250506020612f8b85828601612d18565b9150509250929050565b612f9e81613d65565b82525050565b612fad81613d77565b82525050565b612fbc81613d83565b82525050565b612fd3612fce82613d83565b613e31565b82525050565b6000612fe482613d3e565b612fee8185613d49565b9350612ffe818560208601613dfe565b61300781613e3b565b840191505092915050565b600061301d82613d33565b6130278185613d49565b9350613037818560208601613dfe565b61304081613e3b565b840191505092915050565b6000613058602583613d49565b91507f556e693a3a64656c656761746542795369673a207369676e617475726520657860008301527f70697265640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130be600283613d5a565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b60006130fe601b83613d49565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061313e602583613d49565b91507f556e693a3a64656c656761746542795369673a20696e76616c6964207369676e60008301527f61747572650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131a4602683613d49565b91507f556e693a3a6765745072696f72566f7465733a206e6f7420796574206465746560008301527f726d696e656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061320a602e83613d49565b91507f556e693a3a6d696e743a2063616e6e6f74207472616e7366657220746f20746860008301527f65207a65726f20616464726573730000000000000000000000000000000000006020830152604082019050919050565b6000613270605283613d5a565b91507f5065726d69742861646472657373206f776e65722c616464726573732073706560008301527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208301527f2c75696e7432353620646561646c696e652900000000000000000000000000006040830152605282019050919050565b60006132fc602283613d49565b91507f556e693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f776564207960008301527f65740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613362604383613d5a565b91507f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353660008301527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208301527f63742900000000000000000000000000000000000000000000000000000000006040830152604382019050919050565b60006133ee603983613d49565b91507f556e693a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e7366657220746f20746865207a65726f2061646472657373000000000000006020830152604082019050919050565b6000613454602183613d49565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134ba601c83613d49565b91507f556e693a3a6d696e743a206578636565646564206d696e7420636170000000006000830152602082019050919050565b60006134fa602383613d49565b91507f556e693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e206d60008301527f696e7400000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613560603d83613d49565b91507f556e693a3a7365744d696e7465723a206f6e6c7920746865206d696e7465722060008301527f63616e206368616e676520746865206d696e74657220616464726573730000006020830152604082019050919050565b60006135c6602183613d49565b91507f556e693a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061362c603b83613d49565b91507f556e693a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160008301527f6e736665722066726f6d20746865207a65726f206164647265737300000000006020830152604082019050919050565b6000613692601e83613d49565b91507f556e693a3a7065726d69743a207369676e6174757265206578706972656400006000830152602082019050919050565b60006136d2603a83613d5a565b91507f44656c65676174696f6e28616464726573732064656c6567617465652c75696e60008301527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020830152603a82019050919050565b6000613738601e83613d49565b91507f556e693a3a7065726d69743a20696e76616c6964207369676e617475726500006000830152602082019050919050565b6000613778601983613d49565b91507f556e693a3a7065726d69743a20756e617574686f72697a6564000000000000006000830152602082019050919050565b6137b481613dad565b82525050565b6137c381613db7565b82525050565b6137d281613dc7565b82525050565b6137e181613dec565b82525050565b6137f081613dd4565b82525050565b6000613801826130b1565b915061380d8285612fc2565b60208201915061381d8284612fc2565b6020820191508190509392505050565b600061383882613263565b9150819050919050565b600061384d82613355565b9150819050919050565b6000613862826136c5565b9150819050919050565b60006020820190506138816000830184612f95565b92915050565b600060408201905061389c6000830185612f95565b6138a96020830184612f95565b9392505050565b60006020820190506138c56000830184612fa4565b92915050565b60006020820190506138e06000830184612fb3565b92915050565b600060c0820190506138fb6000830189612fb3565b6139086020830188612f95565b6139156040830187612f95565b61392260608301866137ab565b61392f60808301856137ab565b61393c60a08301846137ab565b979650505050505050565b600060808201905061395c6000830187612fb3565b6139696020830186612f95565b61397660408301856137ab565b61398360608301846137ab565b95945050505050565b60006080820190506139a16000830187612fb3565b6139ae6020830186612fb3565b6139bb60408301856137ab565b6139c86060830184612f95565b95945050505050565b60006080820190506139e66000830187612fb3565b6139f360208301866137c9565b613a006040830185612fb3565b613a0d6060830184612fb3565b95945050505050565b60006020820190508181036000830152613a308184613012565b905092915050565b60006020820190508181036000830152613a528184612fd9565b905092915050565b60006020820190508181036000830152613a738161304b565b9050919050565b60006020820190508181036000830152613a93816130f1565b9050919050565b60006020820190508181036000830152613ab381613131565b9050919050565b60006020820190508181036000830152613ad381613197565b9050919050565b60006020820190508181036000830152613af3816131fd565b9050919050565b60006020820190508181036000830152613b13816132ef565b9050919050565b60006020820190508181036000830152613b33816133e1565b9050919050565b60006020820190508181036000830152613b5381613447565b9050919050565b60006020820190508181036000830152613b73816134ad565b9050919050565b60006020820190508181036000830152613b93816134ed565b9050919050565b60006020820190508181036000830152613bb381613553565b9050919050565b60006020820190508181036000830152613bd3816135b9565b9050919050565b60006020820190508181036000830152613bf38161361f565b9050919050565b60006020820190508181036000830152613c1381613685565b9050919050565b60006020820190508181036000830152613c338161372b565b9050919050565b60006020820190508181036000830152613c538161376b565b9050919050565b6000602082019050613c6f60008301846137ab565b92915050565b6000602082019050613c8a60008301846137ba565b92915050565b6000604082019050613ca560008301856137ba565b613cb260208301846137e7565b9392505050565b6000602082019050613cce60008301846137c9565b92915050565b6000602082019050613ce960008301846137d8565b92915050565b6000602082019050613d0460008301846137e7565b92915050565b6000604082019050613d1f60008301856137d8565b613d2c60208301846137d8565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613d7082613d8d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b6000613df782613dd4565b9050919050565b60005b83811015613e1c578082015181840152602081019050613e01565b83811115613e2b576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b613e5581613d65565b8114613e6057600080fd5b50565b613e6c81613d83565b8114613e7757600080fd5b50565b613e8381613dad565b8114613e8e57600080fd5b50565b613e9a81613db7565b8114613ea557600080fd5b50565b613eb181613dc7565b8114613ebc57600080fd5b5056fe556e693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f7773556e693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365556e693a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473556e693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365556e693a3a7065726d69743a20616d6f756e7420657863656564732039362062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773556e693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773556e693a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473556e693a3a6d696e743a20616d6f756e7420657863656564732039362062697473556e693a3a617070726f76653a20616d6f756e7420657863656564732039362062697473556e693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773a365627a7a723158202ee95ffa3bcb85b0cf2bf123922d753ac9340ae3d5dbe6aac8ccc278b581a8b06c6578706572696d656e74616cf564736f6c63430005100040

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

000000000000000000000000557734059bb92bf58d3e86ca29e4ce67fbb6fc6f000000000000000000000000e0ebe99d97d3fc57fe4631341fa6d6836c617d3a00000000000000000000000000000000000000000000000000000000616478c2

-----Decoded View---------------
Arg [0] : account (address): 0x557734059bB92Bf58D3E86cA29E4ce67Fbb6fC6f
Arg [1] : minter_ (address): 0xe0eBe99D97D3Fc57fE4631341Fa6D6836C617d3A
Arg [2] : mintingAllowedAfter_ (uint256): 1633974466

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000557734059bb92bf58d3e86ca29e4ce67fbb6fc6f
Arg [1] : 000000000000000000000000e0ebe99d97d3fc57fe4631341fa6d6836c617d3a
Arg [2] : 00000000000000000000000000000000000000000000000000000000616478c2


Deployed Bytecode Sourcemap

6730:17154:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6730:17154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6800:41;;;:::i;:::-;;;;;;;;;;;;;;;;7220:21;;;:::i;:::-;;;;;;;;;;;;;;;;13140:418;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7101:40;;;:::i;:::-;;;;;;;;;;;;;;;;8449:122;;;:::i;:::-;;;;;;;;;;;;;;;;16220:670;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8872:137;;;:::i;:::-;;;;;;;;;;;;;;;;7311:31;;;:::i;:::-;;;;;;;;;;;;;;;;7002:35;;;:::i;:::-;;;;;;;;;;;;;;;;11164:1058;;;;;;;;;;;;;;;;:::i;:::-;;7899:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7395:61;;;:::i;:::-;;;;;;;;;;;;;;;;17038:102;;;;;;;;;;;;;;;;:::i;:::-;;8327:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15301:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7551:33;;;:::i;:::-;;;;;;;;;;;;;;;;19214:1217;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9090:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6902:37;;;:::i;:::-;;;;;;;;;;;;;;;;15673:237;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18561:222;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17574:786;;;;;;;;;;;;;;;;:::i;:::-;;14048:1050;;;;;;;;;;;;;;;;:::i;:::-;;12526:136;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8665:117;;;:::i;:::-;;;;;;;;;;;;;;;;8188:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;10758:231;;;;;;;;;;;;;;;;:::i;:::-;;6800:41;;;;;;;;;;;;;;;;;;;:::o;7220:21::-;;;;;;;;;;;;;:::o;13140:418::-;13208:4;13225:13;13271:2;13253:9;:21;13249:172;;;13307:2;13291:19;;13249:172;;;13352:57;13359:9;13352:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;13343:66;;13249:172;13467:6;13433:10;:22;13444:10;13433:22;;;;;;;;;;;;;;;:31;13456:7;13433:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;13512:7;13491:37;;13500:10;13491:37;;;13521:6;13491:37;;;;;;;;;;;;;;;13546:4;13539:11;;;13140:418;;;;:::o;7101:40::-;;;;:::o;8449:122::-;8491:80;;;;;;;;;;;;;;8449:122;:::o;16220:670::-;16302:4;16319:15;16337:10;16319:28;;16358:23;16384:10;:15;16395:3;16384:15;;;;;;;;;;;;;;;:24;16400:7;16384:24;;;;;;;;;;;;;;;;;;;;;;;;;16358:50;;16419:13;16435:57;16442:9;16435:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;16419:73;;16520:3;16509:14;;:7;:14;;;;:48;;;;;16554:2;16527:30;;:16;:30;;;;16509:48;16505:310;;;16574:19;16596:95;16602:16;16620:6;16596:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;16574:117;;16733:12;16706:10;:15;16717:3;16706:15;;;;;;;;;;;;;;;:24;16722:7;16706:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16781:7;16767:36;;16776:3;16767:36;;;16790:12;16767:36;;;;;;;;;;;;;;;16505:310;;16827:33;16843:3;16848;16853:6;16827:15;:33::i;:::-;16878:4;16871:11;;;;;16220:670;;;;;:::o;8872:137::-;8914:95;;;;;;;;;;;;;;8872:137;:::o;7311:31::-;;;;:::o;7002:35::-;7035:2;7002:35;:::o;11164:1058::-;11249:6;;;;;;;;;;;11235:20;;:10;:20;;;11227:68;;;;;;;;;;;;;;;;;;;;;;11333:19;;11314:15;:38;;11306:85;;;;;;;;;;;;;;;;;;;;;;11425:1;11410:17;;:3;:17;;;;11402:76;;;;;;;;;;;;;;;;;;;;;;11541:54;11554:15;7444:12;11541:54;;:12;:54::i;:::-;11519:19;:76;;;;11636:13;11652:54;11659:9;11652:54;;;;;;;;;;;;;;;;;:6;:54::i;:::-;11636:70;;11735:53;11748:34;11761:11;;7583:1;11748:34;;:12;:34::i;:::-;11784:3;11735:12;:53::i;:::-;11725:6;:63;;;;11717:104;;;;;;;;;;;;;;;;;;;;;;11846:83;11853:33;11866:11;;11879:6;11853:33;;:12;:33::i;:::-;11846:83;;;;;;;;;;;;;;;;;:6;:83::i;:::-;11832:97;;:11;:97;;;;12007:68;12013:8;:13;12022:3;12013:13;;;;;;;;;;;;;;;;;;;;;;;;;12028:6;12007:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;11991:8;:13;12000:3;11991:13;;;;;;;;;;;;;;;;:84;;;;;;;;;;;;;;;;;;12112:3;12091:33;;12108:1;12091:33;;;12117:6;12091:33;;;;;;;;;;;;;;;12164:50;12187:1;12191:9;:14;12201:3;12191:14;;;;;;;;;;;;;;;;;;;;;;;;;12207:6;12164:14;:50::i;:::-;11164:1058;;;:::o;7899:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7395:61::-;7444:12;7395:61;:::o;17038:102::-;17100:32;17110:10;17122:9;17100;:32::i;:::-;17038:102;:::o;8327:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;15301:108::-;15360:4;15384:8;:17;15393:7;15384:17;;;;;;;;;;;;;;;;;;;;;;;;;15377:24;;;;15301:108;;;:::o;7551:33::-;7583:1;7551:33;:::o;19214:1217::-;19293:6;19334:12;19320:11;:26;19312:77;;;;;;;;;;;;;;;;;;;;;;19402:19;19424:14;:23;19439:7;19424:23;;;;;;;;;;;;;;;;;;;;;;;;;19402:45;;19478:1;19462:12;:17;;;19458:58;;;19503:1;19496:8;;;;;19458:58;19628:11;19576;:20;19588:7;19576:20;;;;;;;;;;;;;;;:38;19612:1;19597:12;:16;19576:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;19572:147;;19663:11;:20;19675:7;19663:20;;;;;;;;;;;;;;;:38;19699:1;19684:12;:16;19663:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;19656:51;;;;;19572:147;19816:11;19780;:20;19792:7;19780:20;;;;;;;;;;;;;;;:23;19801:1;19780:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;19776:88;;;19851:1;19844:8;;;;;19776:88;19876:12;19891:1;19876:16;;19903:12;19933:1;19918:12;:16;19903:31;;19945:428;19960:5;19952:13;;:5;:13;;;19945:428;;;19982:13;20024:1;20015:5;20007;:13;20006:19;;;;;;;;19998:5;:27;19982:43;;20067:20;;:::i;:::-;20090:11;:20;20102:7;20090:20;;;;;;;;;;;;;;;:28;20111:6;20090:28;;;;;;;;;;;;;;;20067:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20153:11;20137:2;:12;;;:27;;;20133:229;;;20192:2;:8;;;20185:15;;;;;;;;;20133:229;20241:11;20226:2;:12;;;:26;;;20222:140;;;20281:6;20273:14;;20222:140;;;20345:1;20336:6;:10;20328:18;;20222:140;19945:428;;;;;20390:11;:20;20402:7;20390:20;;;;;;;;;;;;;;;:27;20411:5;20390:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;20383:40;;;;;19214:1217;;;;;:::o;9090:39::-;;;;;;;;;;;;;;;;;:::o;6902:37::-;;;;;;;;;;;;;;;;;;;:::o;15673:237::-;15738:4;15755:13;15771:58;15778:9;15771:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;15755:74;;15840:40;15856:10;15868:3;15873:6;15840:15;:40::i;:::-;15898:4;15891:11;;;15673:237;;;;:::o;18561:222::-;18626:6;18645:19;18667:14;:23;18682:7;18667:23;;;;;;;;;;;;;;;;;;;;;;;;;18645:45;;18723:1;18708:12;:16;;;:67;;18774:1;18708:67;;;18727:11;:20;18739:7;18727:20;;;;;;;;;;;;;;;:38;18763:1;18748:12;:16;18727:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;18708:67;18701:74;;;18561:222;;;:::o;17574:786::-;17690:23;8491:80;;;;;;;;;;;;;;17770:4;;;;;;;;;;;;;;;;;17754:22;;;;;;17778:12;:10;:12::i;:::-;17800:4;17726:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17726:80:0;;;17716:91;;;;;;17690:117;;17818:18;8711:71;;;;;;;;;;;;;;17881:9;17892:5;17899:6;17849:57;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17849:57:0;;;17839:68;;;;;;17818:89;;17918:14;17974:15;17991:10;17945:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17945:57:0;;;17935:68;;;;;;17918:85;;18014:17;18034:26;18044:6;18052:1;18055;18058;18034:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18034:26:0;;;;;;;;18014:46;;18100:1;18079:23;;:9;:23;;;;18071:73;;;;;;;;;;;;;;;;;;;;;;18172:6;:17;18179:9;18172:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;18163:5;:28;18155:74;;;;;;;;;;;;;;;;;;;;;;18255:6;18248:3;:13;;18240:63;;;;;;;;;;;;;;;;;;;;;;18321:31;18331:9;18342;18321;:31::i;:::-;18314:38;;;;17574:786;;;;;;:::o;14048:1050::-;14178:13;14224:2;14206:9;:21;14202:171;;;14260:2;14244:19;;14202:171;;;14305:56;14312:9;14305:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;14296:65;;14202:171;14385:23;8491:80;;;;;;;;;;;;;;14465:4;;;;;;;;;;;;;;;;;14449:22;;;;;;14473:12;:10;:12::i;:::-;14495:4;14421:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14421:80:0;;;14411:91;;;;;;14385:117;;14513:18;8914:95;;;;;;;;;;;;;;14572:5;14579:7;14588:9;14599:6;:13;14606:5;14599:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;14616:8;14544:81;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14544:81:0;;;14534:92;;;;;;14513:113;;14637:14;14693:15;14710:10;14664:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14664:57:0;;;14654:68;;;;;;14637:85;;14733:17;14753:26;14763:6;14771:1;14774;14777;14753:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14753:26:0;;;;;;;;14733:46;;14819:1;14798:23;;:9;:23;;;;14790:66;;;;;;;;;;;;;;;;;;;;;;14888:5;14875:18;;:9;:18;;;14867:56;;;;;;;;;;;;;;;;;;;;;;14949:8;14942:3;:15;;14934:58;;;;;;;;;;;;;;;;;;;;;;15034:6;15005:10;:17;15016:5;15005:17;;;;;;;;;;;;;;;:26;15023:7;15005:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15074:7;15058:32;;15067:5;15058:32;;;15083:6;15058:32;;;;;;;;;;;;;;;14048:1050;;;;;;;;;;;;:::o;12526:136::-;12602:4;12626:10;:19;12637:7;12626:19;;;;;;;;;;;;;;;:28;12646:7;12626:28;;;;;;;;;;;;;;;;;;;;;;;;;12619:35;;;;12526:136;;;;:::o;8665:117::-;8711:71;;;;;;;;;;;;;;8665:117;:::o;8188:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10758:231::-;10836:6;;;;;;;;;;;10822:20;;:10;:20;;;10814:94;;;;;;;;;;;;;;;;;;;;;;10924:30;10938:6;;;;;;;;;;;10946:7;10924:30;;;;;;;;;;;;;;;;10974:7;10965:6;;:16;;;;;;;;;;;;;;;;;;10758:231;:::o;23190:161::-;23265:6;23296:5;23292:1;:9;23303:12;23284:32;;;;;;;;;;;;;;;;;;;;;;;;;23341:1;23327:16;;23190:161;;;;:::o;23555:165::-;23641:6;23673:1;23668:6;;:1;:6;;;;23676:12;23660:29;;;;;;;;;;;;;;;;;;;;;;;;;23711:1;23707;:5;23700:12;;23555:165;;;;;:::o;20822:610::-;20931:1;20916:17;;:3;:17;;;;20908:89;;;;;;;;;;;;;;;;;;;;;;21031:1;21016:17;;:3;:17;;;;21008:87;;;;;;;;;;;;;;;;;;;;;;21124:85;21130:8;:13;21139:3;21130:13;;;;;;;;;;;;;;;;;;;;;;;;;21145:6;21124:85;;;;;;;;;;;;;;;;;:5;:85::i;:::-;21108:8;:13;21117:3;21108:13;;;;;;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;21236:79;21242:8;:13;21251:3;21242:13;;;;;;;;;;;;;;;;;;;;;;;;;21257:6;21236:79;;;;;;;;;;;;;;;;;:5;:79::i;:::-;21220:8;:13;21229:3;21220:13;;;;;;;;;;;;;;;;:95;;;;;;;;;;;;;;;;;;21345:3;21331:26;;21340:3;21331:26;;;21350:6;21331:26;;;;;;;;;;;;;;;21370:54;21385:9;:14;21395:3;21385:14;;;;;;;;;;;;;;;;;;;;;;;;;21401:9;:14;21411:3;21401:14;;;;;;;;;;;;;;;;;;;;;;;;;21417:6;21370:14;:54::i;:::-;20822:610;;;:::o;1021:181::-;1079:7;1099:9;1115:1;1111;:5;1099:17;;1140:1;1135;:6;;1127:46;;;;;;;;;;;;;;;;;;;;;;1193:1;1186:8;;;1021:181;;;;:::o;2775:471::-;2833:7;3083:1;3078;:6;3074:47;;;3108:1;3101:8;;;;3074:47;3133:9;3149:1;3145;:5;3133:17;;3178:1;3173;3169;:5;;;;;;:10;3161:56;;;;;;;;;;;;;;;;;;;;;;3237:1;3230:8;;;2775:471;;;;;:::o;4433:132::-;4491:7;4518:39;4522:1;4525;4518:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4511:46;;4433:132;;;;:::o;23359:188::-;23445:6;23464:8;23479:1;23475;:5;23464:16;;23504:1;23499:6;;:1;:6;;;;23507:12;23491:29;;;;;;;;;;;;;;;;;;;;;;;;;23538:1;23531:8;;;23359:188;;;;;:::o;21440:937::-;21545:6;21535:16;;:6;:16;;;;:30;;;;;21564:1;21555:6;:10;;;21535:30;21531:839;;;21604:1;21586:20;;:6;:20;;;21582:381;;21627:16;21646:14;:22;21661:6;21646:22;;;;;;;;;;;;;;;;;;;;;;;;;21627:41;;21687:16;21718:1;21706:9;:13;;;:60;;21765:1;21706:60;;;21722:11;:19;21734:6;21722:19;;;;;;;;;;;;;;;:34;21754:1;21742:9;:13;21722:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;21706:60;21687:79;;21785:16;21804:67;21810:9;21821:6;21804:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;21785:86;;21890:57;21907:6;21915:9;21926;21937;21890:16;:57::i;:::-;21582:381;;;;22001:1;21983:20;;:6;:20;;;21979:380;;22024:16;22043:14;:22;22058:6;22043:22;;;;;;;;;;;;;;;;;;;;;;;;;22024:41;;22084:16;22115:1;22103:9;:13;;;:60;;22162:1;22103:60;;;22119:11;:19;22131:6;22119:19;;;;;;;;;;;;;;;:34;22151:1;22139:9;:13;22119:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;22103:60;22084:79;;22182:16;22201:66;22207:9;22218:6;22201:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;22182:85;;22286:57;22303:6;22311:9;22322;22333;22286:16;:57::i;:::-;21979:380;;;;21531:839;21440:937;;;:::o;20439:375::-;20516:23;20542:9;:20;20552:9;20542:20;;;;;;;;;;;;;;;;;;;;;;;;;20516:46;;20573:23;20599:8;:19;20608:9;20599:19;;;;;;;;;;;;;;;;;;;;;;;;;20573:45;;20652:9;20629;:20;20639:9;20629:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20723:9;20679:54;;20706:15;20679:54;;20695:9;20679:54;;;;;;;;;;;;20746:60;20761:15;20778:9;20789:16;20746:14;:60::i;:::-;20439:375;;;;:::o;23728:153::-;23773:4;23790:15;23838:9;23827:20;;23866:7;23859:14;;;23728:153;:::o;5053:345::-;5139:7;5238:1;5234;:5;5241:12;5226:28;;;;;;;;;;;;;;;;;;;;;;;;;5265:9;5281:1;5277;:5;;;;;;5265:17;;5389:1;5382:8;;;5053:345;;;;;:::o;22385:628::-;22503:18;22524:75;22531:12;22524:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;22503:96;;22629:1;22614:12;:16;;;:85;;;;;22688:11;22634:65;;:11;:22;22646:9;22634:22;;;;;;;;;;;;;;;:40;22672:1;22657:12;:16;22634:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;22614:85;22610:329;;;22763:8;22714:11;:22;22726:9;22714:22;;;;;;;;;;;;;;;:40;22752:1;22737:12;:16;22714:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;22610:329;;;22839:33;;;;;;;;22850:11;22839:33;;;;;;22863:8;22839:33;;;;;22800:11;:22;22812:9;22800:22;;;;;;;;;;;;;;;:36;22823:12;22800:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22928:1;22913:12;:16;22885:14;:25;22900:9;22885:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;22610:329;22975:9;22954:51;;;22986:8;22996;22954:51;;;;;;;;;;;;;;;;22385:628;;;;;:::o;23021:161::-;23096:6;23127:5;23123:1;:9;23134:12;23115:32;;;;;;;;;;;;;;;;;;;;;;;;;23172:1;23158:16;;23021:161;;;;:::o;6730:17154::-;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:130;;222:6;209:20;200:29;;234:33;261:5;234:33;;;194:78;;;;;279:130;;359:6;346:20;337:29;;371:33;398:5;371:33;;;331:78;;;;;416:128;;495:6;482:20;473:29;;507:32;533:5;507:32;;;467:77;;;;;551:126;;629:6;616:20;607:29;;641:31;666:5;641:31;;;601:76;;;;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;892:6;881:9;877:22;856:53;;;846:63;;818:97;750:175;;;;;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1157:6;1146:9;1142:22;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1547:6;1536:9;1532:22;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2112:6;2101:9;2097:22;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3026:6;3015:9;3011:22;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;;3088:63;;3059:98;2884:283;;;;;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3466:6;3455:9;3451:22;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4270:6;4259:9;4255:22;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;;4332:62;;4303:97;4128:282;;;;;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;;4609:3;4602:34;4596:45;;;4648:113;4731:24;4749:5;4731:24;;;4726:3;4719:37;4713:48;;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;;4864:3;4857:58;4851:69;;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5234:3;5230:39;5223:46;;5019:255;;;;;;5281:339;;5389:35;5418:5;5389:35;;;5436:71;5500:6;5495:3;5436:71;;;5429:78;;5512:52;5557:6;5552:3;5545:4;5538:5;5534:16;5512:52;;;5585:29;5607:6;5585:29;;;5580:3;5576:39;5569:46;;5369:251;;;;;;5628:374;;5788:67;5852:2;5847:3;5788:67;;;5781:74;;5888:34;5884:1;5879:3;5875:11;5868:55;5957:7;5952:2;5947:3;5943:12;5936:29;5993:2;5988:3;5984:12;5977:19;;5774:228;;;;6011:398;;6189:84;6271:1;6266:3;6189:84;;;6182:91;;6306:66;6302:1;6297:3;6293:11;6286:87;6401:1;6396:3;6392:11;6385:18;;6175:234;;;;6418:327;;6578:67;6642:2;6637:3;6578:67;;;6571:74;;6678:29;6674:1;6669:3;6665:11;6658:50;6736:2;6731:3;6727:12;6720:19;;6564:181;;;;6754:374;;6914:67;6978:2;6973:3;6914:67;;;6907:74;;7014:34;7010:1;7005:3;7001:11;6994:55;7083:7;7078:2;7073:3;7069:12;7062:29;7119:2;7114:3;7110:12;7103:19;;6900:228;;;;7137:375;;7297:67;7361:2;7356:3;7297:67;;;7290:74;;7397:34;7393:1;7388:3;7384:11;7377:55;7466:8;7461:2;7456:3;7452:12;7445:30;7503:2;7498:3;7494:12;7487:19;;7283:229;;;;7521:383;;7681:67;7745:2;7740:3;7681:67;;;7674:74;;7781:34;7777:1;7772:3;7768:11;7761:55;7850:16;7845:2;7840:3;7836:12;7829:38;7895:2;7890:3;7886:12;7879:19;;7667:237;;;;7913:492;;8091:85;8173:2;8168:3;8091:85;;;8084:92;;8209:34;8205:1;8200:3;8196:11;8189:55;8278:34;8273:2;8268:3;8264:12;8257:56;8347:20;8342:2;8337:3;8333:12;8326:42;8396:2;8391:3;8387:12;8380:19;;8077:328;;;;8414:371;;8574:67;8638:2;8633:3;8574:67;;;8567:74;;8674:34;8670:1;8665:3;8661:11;8654:55;8743:4;8738:2;8733:3;8729:12;8722:26;8776:2;8771:3;8767:12;8760:19;;8560:225;;;;8794:477;;8972:85;9054:2;9049:3;8972:85;;;8965:92;;9090:34;9086:1;9081:3;9077:11;9070:55;9159:34;9154:2;9149:3;9145:12;9138:56;9228:5;9223:2;9218:3;9214:12;9207:27;9262:2;9257:3;9253:12;9246:19;;8958:313;;;;9280:394;;9440:67;9504:2;9499:3;9440:67;;;9433:74;;9540:34;9536:1;9531:3;9527:11;9520:55;9609:27;9604:2;9599:3;9595:12;9588:49;9665:2;9660:3;9656:12;9649:19;;9426:248;;;;9683:370;;9843:67;9907:2;9902:3;9843:67;;;9836:74;;9943:34;9939:1;9934:3;9930:11;9923:55;10012:3;10007:2;10002:3;9998:12;9991:25;10044:2;10039:3;10035:12;10028:19;;9829:224;;;;10062:328;;10222:67;10286:2;10281:3;10222:67;;;10215:74;;10322:30;10318:1;10313:3;10309:11;10302:51;10381:2;10376:3;10372:12;10365:19;;10208:182;;;;10399:372;;10559:67;10623:2;10618:3;10559:67;;;10552:74;;10659:34;10655:1;10650:3;10646:11;10639:55;10728:5;10723:2;10718:3;10714:12;10707:27;10762:2;10757:3;10753:12;10746:19;;10545:226;;;;10780:398;;10940:67;11004:2;10999:3;10940:67;;;10933:74;;11040:34;11036:1;11031:3;11027:11;11020:55;11109:31;11104:2;11099:3;11095:12;11088:53;11169:2;11164:3;11160:12;11153:19;;10926:252;;;;11187:370;;11347:67;11411:2;11406:3;11347:67;;;11340:74;;11447:34;11443:1;11438:3;11434:11;11427:55;11516:3;11511:2;11506:3;11502:12;11495:25;11548:2;11543:3;11539:12;11532:19;;11333:224;;;;11566:396;;11726:67;11790:2;11785:3;11726:67;;;11719:74;;11826:34;11822:1;11817:3;11813:11;11806:55;11895:29;11890:2;11885:3;11881:12;11874:51;11953:2;11948:3;11944:12;11937:19;;11712:250;;;;11971:330;;12131:67;12195:2;12190:3;12131:67;;;12124:74;;12231:32;12227:1;12222:3;12218:11;12211:53;12292:2;12287:3;12283:12;12276:19;;12117:184;;;;12310:431;;12488:85;12570:2;12565:3;12488:85;;;12481:92;;12606:34;12602:1;12597:3;12593:11;12586:55;12675:28;12670:2;12665:3;12661:12;12654:50;12732:2;12727:3;12723:12;12716:19;;12474:267;;;;12750:330;;12910:67;12974:2;12969:3;12910:67;;;12903:74;;13010:32;13006:1;13001:3;12997:11;12990:53;13071:2;13066:3;13062:12;13055:19;;12896:184;;;;13089:325;;13249:67;13313:2;13308:3;13249:67;;;13242:74;;13349:27;13345:1;13340:3;13336:11;13329:48;13405:2;13400:3;13396:12;13389:19;;13235:179;;;;13422:113;13505:24;13523:5;13505:24;;;13500:3;13493:37;13487:48;;;13542:110;13623:23;13640:5;13623:23;;;13618:3;13611:36;13605:47;;;13659:107;13738:22;13754:5;13738:22;;;13733:3;13726:35;13720:46;;;13773:124;13855:36;13885:5;13855:36;;;13850:3;13843:49;13837:60;;;13904:110;13985:23;14002:5;13985:23;;;13980:3;13973:36;13967:47;;;14021:650;;14276:148;14420:3;14276:148;;;14269:155;;14435:75;14506:3;14497:6;14435:75;;;14532:2;14527:3;14523:12;14516:19;;14546:75;14617:3;14608:6;14546:75;;;14643:2;14638:3;14634:12;14627:19;;14663:3;14656:10;;14257:414;;;;;;14678:372;;14877:148;15021:3;14877:148;;;14870:155;;15042:3;15035:10;;14858:192;;;;15057:372;;15256:148;15400:3;15256:148;;;15249:155;;15421:3;15414:10;;15237:192;;;;15436:372;;15635:148;15779:3;15635:148;;;15628:155;;15800:3;15793:10;;15616:192;;;;15815:213;;15933:2;15922:9;15918:18;15910:26;;15947:71;16015:1;16004:9;16000:17;15991:6;15947:71;;;15904:124;;;;;16035:324;;16181:2;16170:9;16166:18;16158:26;;16195:71;16263:1;16252:9;16248:17;16239:6;16195:71;;;16277:72;16345:2;16334:9;16330:18;16321:6;16277:72;;;16152:207;;;;;;16366:201;;16478:2;16467:9;16463:18;16455:26;;16492:65;16554:1;16543:9;16539:17;16530:6;16492:65;;;16449:118;;;;;16574:213;;16692:2;16681:9;16677:18;16669:26;;16706:71;16774:1;16763:9;16759:17;16750:6;16706:71;;;16663:124;;;;;16794:771;;17052:3;17041:9;17037:19;17029:27;;17067:71;17135:1;17124:9;17120:17;17111:6;17067:71;;;17149:72;17217:2;17206:9;17202:18;17193:6;17149:72;;;17232;17300:2;17289:9;17285:18;17276:6;17232:72;;;17315;17383:2;17372:9;17368:18;17359:6;17315:72;;;17398:73;17466:3;17455:9;17451:19;17442:6;17398:73;;;17482;17550:3;17539:9;17535:19;17526:6;17482:73;;;17023:542;;;;;;;;;;17572:547;;17774:3;17763:9;17759:19;17751:27;;17789:71;17857:1;17846:9;17842:17;17833:6;17789:71;;;17871:72;17939:2;17928:9;17924:18;17915:6;17871:72;;;17954;18022:2;18011:9;18007:18;17998:6;17954:72;;;18037;18105:2;18094:9;18090:18;18081:6;18037:72;;;17745:374;;;;;;;;18126:547;;18328:3;18317:9;18313:19;18305:27;;18343:71;18411:1;18400:9;18396:17;18387:6;18343:71;;;18425:72;18493:2;18482:9;18478:18;18469:6;18425:72;;;18508;18576:2;18565:9;18561:18;18552:6;18508:72;;;18591;18659:2;18648:9;18644:18;18635:6;18591:72;;;18299:374;;;;;;;;18680:539;;18878:3;18867:9;18863:19;18855:27;;18893:71;18961:1;18950:9;18946:17;18937:6;18893:71;;;18975:68;19039:2;19028:9;19024:18;19015:6;18975:68;;;19054:72;19122:2;19111:9;19107:18;19098:6;19054:72;;;19137;19205:2;19194:9;19190:18;19181:6;19137:72;;;18849:370;;;;;;;;19226:293;;19360:2;19349:9;19345:18;19337:26;;19410:9;19404:4;19400:20;19396:1;19385:9;19381:17;19374:47;19435:74;19504:4;19495:6;19435:74;;;19427:82;;19331:188;;;;;19526:301;;19664:2;19653:9;19649:18;19641:26;;19714:9;19708:4;19704:20;19700:1;19689:9;19685:17;19678:47;19739:78;19812:4;19803:6;19739:78;;;19731:86;;19635:192;;;;;19834:407;;20025:2;20014:9;20010:18;20002:26;;20075:9;20069:4;20065:20;20061:1;20050:9;20046:17;20039:47;20100:131;20226:4;20100:131;;;20092:139;;19996:245;;;;20248:407;;20439:2;20428:9;20424:18;20416:26;;20489:9;20483:4;20479:20;20475:1;20464:9;20460:17;20453:47;20514:131;20640:4;20514:131;;;20506:139;;20410:245;;;;20662:407;;20853:2;20842:9;20838:18;20830:26;;20903:9;20897:4;20893:20;20889:1;20878:9;20874:17;20867:47;20928:131;21054:4;20928:131;;;20920:139;;20824:245;;;;21076:407;;21267:2;21256:9;21252:18;21244:26;;21317:9;21311:4;21307:20;21303:1;21292:9;21288:17;21281:47;21342:131;21468:4;21342:131;;;21334:139;;21238:245;;;;21490:407;;21681:2;21670:9;21666:18;21658:26;;21731:9;21725:4;21721:20;21717:1;21706:9;21702:17;21695:47;21756:131;21882:4;21756:131;;;21748:139;;21652:245;;;;21904:407;;22095:2;22084:9;22080:18;22072:26;;22145:9;22139:4;22135:20;22131:1;22120:9;22116:17;22109:47;22170:131;22296:4;22170:131;;;22162:139;;22066:245;;;;22318:407;;22509:2;22498:9;22494:18;22486:26;;22559:9;22553:4;22549:20;22545:1;22534:9;22530:17;22523:47;22584:131;22710:4;22584:131;;;22576:139;;22480:245;;;;22732:407;;22923:2;22912:9;22908:18;22900:26;;22973:9;22967:4;22963:20;22959:1;22948:9;22944:17;22937:47;22998:131;23124:4;22998:131;;;22990:139;;22894:245;;;;23146:407;;23337:2;23326:9;23322:18;23314:26;;23387:9;23381:4;23377:20;23373:1;23362:9;23358:17;23351:47;23412:131;23538:4;23412:131;;;23404:139;;23308:245;;;;23560:407;;23751:2;23740:9;23736:18;23728:26;;23801:9;23795:4;23791:20;23787:1;23776:9;23772:17;23765:47;23826:131;23952:4;23826:131;;;23818:139;;23722:245;;;;23974:407;;24165:2;24154:9;24150:18;24142:26;;24215:9;24209:4;24205:20;24201:1;24190:9;24186:17;24179:47;24240:131;24366:4;24240:131;;;24232:139;;24136:245;;;;24388:407;;24579:2;24568:9;24564:18;24556:26;;24629:9;24623:4;24619:20;24615:1;24604:9;24600:17;24593:47;24654:131;24780:4;24654:131;;;24646:139;;24550:245;;;;24802:407;;24993:2;24982:9;24978:18;24970:26;;25043:9;25037:4;25033:20;25029:1;25018:9;25014:17;25007:47;25068:131;25194:4;25068:131;;;25060:139;;24964:245;;;;25216:407;;25407:2;25396:9;25392:18;25384:26;;25457:9;25451:4;25447:20;25443:1;25432:9;25428:17;25421:47;25482:131;25608:4;25482:131;;;25474:139;;25378:245;;;;25630:407;;25821:2;25810:9;25806:18;25798:26;;25871:9;25865:4;25861:20;25857:1;25846:9;25842:17;25835:47;25896:131;26022:4;25896:131;;;25888:139;;25792:245;;;;26044:407;;26235:2;26224:9;26220:18;26212:26;;26285:9;26279:4;26275:20;26271:1;26260:9;26256:17;26249:47;26310:131;26436:4;26310:131;;;26302:139;;26206:245;;;;26458:213;;26576:2;26565:9;26561:18;26553:26;;26590:71;26658:1;26647:9;26643:17;26634:6;26590:71;;;26547:124;;;;;26678:209;;26794:2;26783:9;26779:18;26771:26;;26808:69;26874:1;26863:9;26859:17;26850:6;26808:69;;;26765:122;;;;;26894:316;;27036:2;27025:9;27021:18;27013:26;;27050:69;27116:1;27105:9;27101:17;27092:6;27050:69;;;27130:70;27196:2;27185:9;27181:18;27172:6;27130:70;;;27007:203;;;;;;27217:205;;27331:2;27320:9;27316:18;27308:26;;27345:67;27409:1;27398:9;27394:17;27385:6;27345:67;;;27302:120;;;;;27429:211;;27546:2;27535:9;27531:18;27523:26;;27560:70;27627:1;27616:9;27612:17;27603:6;27560:70;;;27517:123;;;;;27647:209;;27763:2;27752:9;27748:18;27740:26;;27777:69;27843:1;27832:9;27828:17;27819:6;27777:69;;;27734:122;;;;;27863:320;;28007:2;27996:9;27992:18;27984:26;;28021:70;28088:1;28077:9;28073:17;28064:6;28021:70;;;28102:71;28169:2;28158:9;28154:18;28145:6;28102:71;;;27978:205;;;;;;28190:118;;28280:5;28274:12;28264:22;;28245:63;;;;28315:122;;28409:5;28403:12;28393:22;;28374:63;;;;28445:163;;28560:6;28555:3;28548:19;28597:4;28592:3;28588:14;28573:29;;28541:67;;;;;28617:145;;28753:3;28738:18;;28731:31;;;;;28770:91;;28832:24;28850:5;28832:24;;;28821:35;;28815:46;;;;28868:85;;28941:5;28934:13;28927:21;28916:32;;28910:43;;;;28960:72;;29022:5;29011:16;;29005:27;;;;29039:121;;29112:42;29105:5;29101:54;29090:65;;29084:76;;;;29167:72;;29229:5;29218:16;;29212:27;;;;29246:88;;29318:10;29311:5;29307:22;29296:33;;29290:44;;;;29341:81;;29412:4;29405:5;29401:16;29390:27;;29384:38;;;;29429:104;;29501:26;29494:5;29490:38;29479:49;;29473:60;;;;29540:106;;29618:23;29635:5;29618:23;;;29605:36;;29599:47;;;;29654:268;29719:1;29726:101;29740:6;29737:1;29734:13;29726:101;;;29816:1;29811:3;29807:11;29801:18;29797:1;29792:3;29788:11;29781:39;29762:2;29759:1;29755:10;29750:15;;29726:101;;;29842:6;29839:1;29836:13;29833:2;;;29907:1;29898:6;29893:3;29889:16;29882:27;29833:2;29703:219;;;;;29930:74;;29994:5;29983:16;;29977:27;;;;30011:97;;30099:2;30095:7;30090:2;30083:5;30079:14;30075:28;30065:38;;30059:49;;;;30116:117;30185:24;30203:5;30185:24;;;30178:5;30175:35;30165:2;;30224:1;30221;30214:12;30165:2;30159:74;;30240:117;30309:24;30327:5;30309:24;;;30302:5;30299:35;30289:2;;30348:1;30345;30338:12;30289:2;30283:74;;30364:117;30433:24;30451:5;30433:24;;;30426:5;30423:35;30413:2;;30472:1;30469;30462:12;30413:2;30407:74;;30488:115;30556:23;30573:5;30556:23;;;30549:5;30546:34;30536:2;;30594:1;30591;30584:12;30536:2;30530:73;;30610:113;30677:22;30693:5;30677:22;;;30670:5;30667:33;30657:2;;30714:1;30711;30704:12;30657:2;30651:72;

Swarm Source

bzzr://2ee95ffa3bcb85b0cf2bf123922d753ac9340ae3d5dbe6aac8ccc278b581a8b0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.