ETH Price: $3,452.89 (+4.27%)

Token

Element (ELT)
 

Overview

Max Total Supply

4,000,000,000 ELT

Holders

1,397

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
Element

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-04-12
*/

// File: @openzeppelin\contracts\token\ERC20\IERC20.sol

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: @openzeppelin\contracts\token\ERC20\extensions\IERC20Metadata.sol

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin\contracts\utils\Context.sol


pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin\contracts\token\ERC20\ERC20.sol


pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: contracts\Element.sol

pragma solidity ^0.8.4;
contract Element is ERC20{

    //lock address
    mapping(address => bool) private lockAddrs;
    //lock amount
    mapping(address => uint256) private lockAmounts;
    //lock time by days
    mapping(address => uint256) private lockDays;
    //release period
    mapping(address => uint256) private releasePeriods;
    //release amount
    mapping(address => uint256) private releaseAmount;

    uint256 startDay;


    constructor(string memory name, string memory symbol) ERC20(name, symbol) {
        //set start day;
        startDay = block.timestamp/86400;
        _setLock(0x21Ec933536835a9c2790D99853a243aC23F324e3, 1600000000, 365, 365, 400000000, 1200000000);
        _setLock(0x291E8737680155e9765151aCE8e0e4E1c5fFD0a0, 5000000, 92, 7, 96154, 5000000);
        _setLock(0x0d770aB53FE4cc08D75Fc38B5380248406FCd1B1, 6000000, 92, 7, 115385,6000000);
        _setLock(0x5224198deb4Fff91fc0A54b0027Ebfe819E1C62e, 5000000, 92, 7, 96154, 5000000);
        _setLock(0xC3a0EF97f6970212DFe0B89b87138f6d610Ae1a7, 10000000, 92, 7, 192308, 10000000);
        _setLock(0x79fE7fD69f0AD716616b2D0514413B35F0933F2E, 10000000, 92, 7, 192308, 10000000);
        _setLock(0x8e620174a2a6486C056D06F400ED6b480cae072f, 3000000, 92, 7, 57692 , 3000000);
        _setLock(0x4d9212C16C069695C5915bceb6440A12ba836d52, 3200000, 92, 7, 61538 , 3200000);
        _setLock(0x7CA9cBC8D4DbC0370E4F84CAaCc73E2072f2D8e1, 3800000, 92, 7, 73077 , 3800000);
        _setLock(0x923f8f8e803d79bE4B19a2b68Dd53500F814bb3C, 200000, 92, 7, 3846 , 200000);
        _setLock(0x1837025F3cCaD147C775579377C87A19607688cf, 200000, 92, 7, 3846, 200000);
        _setLock(0x7C98a5Ff0a206d19c1A90BB08b63d405f7b5ED5f, 400000, 92, 7, 7692 , 400000);
        _setLock(0x02f32E49F09a80C24038003F245280d5a1d069ed, 400000, 92, 7, 7692, 400000);
        _setLock(0x30059F3d0Ec7De1d4532c9C906543D6F024f3122, 200000, 92, 7, 3846 , 200000);
        _setLock(0x77293ef7ABB0F809D83eCb96A8F50e72b7534e7c, 200000, 92, 7, 3846, 200000);
        _setLock(0x1d628F50F6B06A22A0fC633bf70B85D1DAdc442C, 200000, 92, 7, 3846, 200000);
        _setLock(0x0a99D80F3dAD8EB741102C5D819cE4Da66840c12, 72200000, 92, 7, 1388462 , 72200000);
        _setLock(0x5F1a5f5736a22B8E34E39509863B7fe7Eb71E33b, 120000000, 365, 7, 2307692, 120000000);
        _setLock(0x192f66341559D0F84e85dE9D8183ed32987c2DC8, 480000000, 365, 30, 10000000, 480000000);
        _setLock(0xBE908d0b4adc8F51d85Bd1336822BF613c5c4400, 560000000, 92, 7, 10769230, 560000000);
        _mint(0xd409E7460b83C8320F58127e7E828e913D394b3f, 200000000*(10**decimals()));
        _mint(0xae9B53e1263b7b6435358b93887934108E117d31, 40000000*(10**decimals()));
        _setLock(0xae9B53e1263b7b6435358b93887934108E117d31, 280000000, 90, 7, 7000000, 280000000);
        _setLock(0xCe9f4B301251e6d5b44742b217B2DA80805FfA12, 200000000, 183, 7, 461538, 176000000);
        _setLock(0x0394c00331955197Cf758631e5b13F09064337cA, 300000000, 183, 7, 692307, 264000000);
        _setLock(0x9274492aeE0bF9aE7F1818d4E7eFaa02E0d7E5B4, 100000000, 183, 7, 230769, 88000000);
    }

    function _setLock(address addr,uint256 amount, uint256 _lockDays, uint256 _releasePeriods, uint256 _releaseAmount, uint256 _lockAmount) internal{
        _mint(addr, amount*(10**decimals()));
        lockAddrs[addr] = true;
        lockDays[addr] = _lockDays;
        releasePeriods[addr] = _releasePeriods;
        releaseAmount[addr] = _releaseAmount*(10**decimals());
        lockAmounts[addr] = _lockAmount*(10**decimals());
    }


    function _beforeTokenTransfer(address from, address to, uint256 amount) internal view override(ERC20) {
        //check lock
        if(lockAddrs[from]){
            require(balanceOf(from) > calLockAmount(from)+ amount,"this address is at lock");
        }
    }


    function calLockAmount(address addr) public view  returns (uint256){
        if(lockAddrs[addr]){
            uint256 curDays = block.timestamp/86400;
            //get lockdays
            uint256 lockday = lockDays[addr];
            if((curDays - startDay) > lockday){
                uint256 outDays = curDays - startDay - lockday;
                //cal the number of release period
                uint256 relPeriods = outDays/releasePeriods[addr];
                if(relPeriods > 0){
                    uint256 relAmount = releaseAmount[addr]*relPeriods;
                    return lockAmounts[addr] - relAmount;
                }
            }
            // No lock up period
            return lockAmounts[addr];
        }else{
            return 0;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"calLockAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002c8838038062002c88833981810160405281019062000037919062000f62565b818181600390805190602001906200005192919062000d15565b5080600490805190602001906200006a92919062000d15565b50505062015180426200007e91906200104f565b600a81905550620000bc7321ec933536835a9c2790d99853a243ac23f324e3635f5e100061016d806317d784006347868c006200063860201b60201c565b620000f173291e8737680155e9765151ace8e0e4e1c5ffd0a0624c4b40605c60076201779a624c4b406200063860201b60201c565b62000126730d770ab53fe4cc08d75fc38b5380248406fcd1b1625b8d80605c60076201c2b9625b8d806200063860201b60201c565b6200015b735224198deb4fff91fc0a54b0027ebfe819e1c62e624c4b40605c60076201779a624c4b406200063860201b60201c565b6200019073c3a0ef97f6970212dfe0b89b87138f6d610ae1a762989680605c60076202ef34629896806200063860201b60201c565b620001c57379fe7fd69f0ad716616b2d0514413b35f0933f2e62989680605c60076202ef34629896806200063860201b60201c565b620001f9738e620174a2a6486c056d06f400ed6b480cae072f622dc6c0605c600761e15c622dc6c06200063860201b60201c565b6200022d734d9212c16c069695c5915bceb6440a12ba836d526230d400605c600761f0626230d4006200063860201b60201c565b62000262737ca9cbc8d4dbc0370e4f84caacc73e2072f2d8e16239fbc0605c600762011d756239fbc06200063860201b60201c565b6200029673923f8f8e803d79be4b19a2b68dd53500f814bb3c62030d40605c6007610f0662030d406200063860201b60201c565b620002ca731837025f3ccad147c775579377c87a19607688cf62030d40605c6007610f0662030d406200063860201b60201c565b620002fe737c98a5ff0a206d19c1a90bb08b63d405f7b5ed5f62061a80605c6007611e0c62061a806200063860201b60201c565b620003327302f32e49f09a80c24038003f245280d5a1d069ed62061a80605c6007611e0c62061a806200063860201b60201c565b620003667330059f3d0ec7de1d4532c9c906543d6f024f312262030d40605c6007610f0662030d406200063860201b60201c565b6200039a7377293ef7abb0f809d83ecb96a8f50e72b7534e7c62030d40605c6007610f0662030d406200063860201b60201c565b620003ce731d628f50f6b06a22a0fc633bf70b85d1dadc442c62030d40605c6007610f0662030d406200063860201b60201c565b62000405730a99d80f3dad8eb741102c5d819ce4da66840c1263044daf40605c600762152fae63044daf406200063860201b60201c565b6200043d735f1a5f5736a22b8e34e39509863b7fe7eb71e33b6307270e0061016d60076223366c6307270e006200063860201b60201c565b6200047573192f66341559d0f84e85de9d8183ed32987c2dc8631c9c380061016d601e62989680631c9c38006200063860201b60201c565b620004ac73be908d0b4adc8f51d85bd1336822bf613c5c4400632160ec00605c600762a4534e632160ec006200063860201b60201c565b6200050073d409e7460b83c8320f58127e7e828e913d394b3f620004d56200083860201b60201c565b600a620004e39190620011e8565b630bebc200620004f4919062001239565b6200084160201b60201c565b6200055473ae9b53e1263b7b6435358b93887934108e117d31620005296200083860201b60201c565b600a620005379190620011e8565b6302625a0062000548919062001239565b6200084160201b60201c565b6200058b73ae9b53e1263b7b6435358b93887934108e117d316310b07600605a6007626acfc06310b076006200063860201b60201c565b620005c273ce9f4b301251e6d5b44742b217b2da80805ffa12630bebc20060b7600762070ae2630a7d8c006200063860201b60201c565b620005f9730394c00331955197cf758631e5b13f09064337ca6311e1a30060b76007620a9053630fbc52006200063860201b60201c565b62000630739274492aee0bf9ae7f1818d4e7efaa02e0d7e5b46305f5e10060b760076203857163053ec6006200063860201b60201c565b5050620014b9565b62000674866200064d6200083860201b60201c565b600a6200065b9190620011e8565b8762000668919062001239565b6200084160201b60201c565b6001600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007646200083860201b60201c565b600a620007729190620011e8565b826200077f919062001239565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007d26200083860201b60201c565b600a620007e09190620011e8565b81620007ed919062001239565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008aa90620012fb565b60405180910390fd5b620008c760008383620009b960201b60201c565b8060026000828254620008db91906200131d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200093291906200131d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200099991906200138b565b60405180910390a3620009b56000838362000a8460201b60201c565b5050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000a7f578062000a1e8462000a8960201b60201c565b62000a2a91906200131d565b62000a3b8462000ccd60201b60201c565b1162000a7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7590620013f8565b60405180910390fd5b5b505050565b505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000cc3576000620151804262000af191906200104f565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600a548362000b4891906200141a565b111562000c7957600081600a548462000b6291906200141a565b62000b6e91906200141a565b90506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548262000bbf91906200104f565b9050600081111562000c7657600081600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c1a919062001239565b905080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c6991906200141a565b9550505050505062000cc8565b50505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505062000cc8565b600090505b919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b82805462000d239062001484565b90600052602060002090601f01602090048101928262000d47576000855562000d93565b82601f1062000d6257805160ff191683800117855562000d93565b8280016001018555821562000d93579182015b8281111562000d9257825182559160200191906001019062000d75565b5b50905062000da2919062000da6565b5090565b5b8082111562000dc157600081600090555060010162000da7565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000e2e8262000de3565b810181811067ffffffffffffffff8211171562000e505762000e4f62000df4565b5b80604052505050565b600062000e6562000dc5565b905062000e73828262000e23565b919050565b600067ffffffffffffffff82111562000e965762000e9562000df4565b5b62000ea18262000de3565b9050602081019050919050565b60005b8381101562000ece57808201518184015260208101905062000eb1565b8381111562000ede576000848401525b50505050565b600062000efb62000ef58462000e78565b62000e59565b90508281526020810184848401111562000f1a5762000f1962000dde565b5b62000f2784828562000eae565b509392505050565b600082601f83011262000f475762000f4662000dd9565b5b815162000f5984826020860162000ee4565b91505092915050565b6000806040838503121562000f7c5762000f7b62000dcf565b5b600083015167ffffffffffffffff81111562000f9d5762000f9c62000dd4565b5b62000fab8582860162000f2f565b925050602083015167ffffffffffffffff81111562000fcf5762000fce62000dd4565b5b62000fdd8582860162000f2f565b9150509250929050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200105c8262000fe7565b9150620010698362000fe7565b9250826200107c576200107b62000ff1565b5b828204905092915050565b60008160011c9050919050565b6000808291508390505b6001851115620010e657808604811115620010be57620010bd62001020565b5b6001851615620010ce5780820291505b8081029050620010de8562001087565b94506200109e565b94509492505050565b600082620011015760019050620011d4565b81620011115760009050620011d4565b81600181146200112a576002811462001135576200116b565b6001915050620011d4565b60ff8411156200114a576200114962001020565b5b8360020a91508482111562001164576200116362001020565b5b50620011d4565b5060208310610133831016604e8410600b8410161715620011a55782820a9050838111156200119f576200119e62001020565b5b620011d4565b620011b4848484600162001094565b92509050818404811115620011ce57620011cd62001020565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011f58262000fe7565b91506200120283620011db565b9250620012317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010ef565b905092915050565b6000620012468262000fe7565b9150620012538362000fe7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200128f576200128e62001020565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620012e3601f836200129a565b9150620012f082620012ab565b602082019050919050565b600060208201905081810360008301526200131681620012d4565b9050919050565b60006200132a8262000fe7565b9150620013378362000fe7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200136f576200136e62001020565b5b828201905092915050565b620013858162000fe7565b82525050565b6000602082019050620013a260008301846200137a565b92915050565b7f746869732061646472657373206973206174206c6f636b000000000000000000600082015250565b6000620013e06017836200129a565b9150620013ed82620013a8565b602082019050919050565b600060208201905081810360008301526200141381620013d1565b9050919050565b6000620014278262000fe7565b9150620014348362000fe7565b9250828210156200144a576200144962001020565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200149d57607f821691505b602082108103620014b357620014b262001455565b5b50919050565b6117bf80620014c96000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063395093511161007157806339509351146101a357806370a08231146101d357806395d89b4114610203578063a457c2d714610221578063a9059cbb14610251578063dd62ed3e14610281576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd146101255780632a894f3614610155578063313ce56714610185575b600080fd5b6100c16102b1565b6040516100ce9190610f20565b60405180910390f35b6100f160048036038101906100ec9190610fdb565b610343565b6040516100fe9190611036565b60405180910390f35b61010f610366565b60405161011c9190611060565b60405180910390f35b61013f600480360381019061013a919061107b565b610370565b60405161014c9190611036565b60405180910390f35b61016f600480360381019061016a91906110ce565b61039f565b60405161017c9190611060565b60405180910390f35b61018d6105d0565b60405161019a9190611117565b60405180910390f35b6101bd60048036038101906101b89190610fdb565b6105d9565b6040516101ca9190611036565b60405180910390f35b6101ed60048036038101906101e891906110ce565b610683565b6040516101fa9190611060565b60405180910390f35b61020b6106cb565b6040516102189190610f20565b60405180910390f35b61023b60048036038101906102369190610fdb565b61075d565b6040516102489190611036565b60405180910390f35b61026b60048036038101906102669190610fdb565b610847565b6040516102789190611036565b60405180910390f35b61029b60048036038101906102969190611132565b61086a565b6040516102a89190611060565b60405180910390f35b6060600380546102c0906111a1565b80601f01602080910402602001604051908101604052809291908181526020018280546102ec906111a1565b80156103395780601f1061030e57610100808354040283529160200191610339565b820191906000526020600020905b81548152906001019060200180831161031c57829003601f168201915b5050505050905090565b60008061034e6108f1565b905061035b8185856108f9565b600191505092915050565b6000600254905090565b60008061037b6108f1565b9050610388858285610ac2565b610393858585610b4e565b60019150509392505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105c657600062015180426104049190611230565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600a54836104599190611261565b111561057d57600081600a54846104709190611261565b61047a9190611261565b90506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826104c99190611230565b9050600081111561057a57600081600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105219190611295565b905080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461056e9190611261565b955050505050506105cb565b50505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925050506105cb565b600090505b919050565b60006012905090565b6000806105e46108f1565b9050610678818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461067391906112ef565b6108f9565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546106da906111a1565b80601f0160208091040260200160405190810160405280929190818152602001828054610706906111a1565b80156107535780601f1061072857610100808354040283529160200191610753565b820191906000526020600020905b81548152906001019060200180831161073657829003601f168201915b5050505050905090565b6000806107686108f1565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508381101561082e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610825906113b7565b60405180910390fd5b61083b82868684036108f9565b60019250505092915050565b6000806108526108f1565b905061085f818585610b4e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90611449565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906114db565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ab59190611060565b60405180910390a3505050565b6000610ace848461086a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b485781811015610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190611547565b60405180910390fd5b610b4784848484036108f9565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb4906115d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c239061166b565b60405180910390fd5b610c37838383610dcd565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb4906116fd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d5091906112ef565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610db49190611060565b60405180910390a3610dc7848484610e82565b50505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e7d5780610e298461039f565b610e3391906112ef565b610e3c84610683565b11610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390611769565b60405180910390fd5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ec1578082015181840152602081019050610ea6565b83811115610ed0576000848401525b50505050565b6000601f19601f8301169050919050565b6000610ef282610e87565b610efc8185610e92565b9350610f0c818560208601610ea3565b610f1581610ed6565b840191505092915050565b60006020820190508181036000830152610f3a8184610ee7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f7282610f47565b9050919050565b610f8281610f67565b8114610f8d57600080fd5b50565b600081359050610f9f81610f79565b92915050565b6000819050919050565b610fb881610fa5565b8114610fc357600080fd5b50565b600081359050610fd581610faf565b92915050565b60008060408385031215610ff257610ff1610f42565b5b600061100085828601610f90565b925050602061101185828601610fc6565b9150509250929050565b60008115159050919050565b6110308161101b565b82525050565b600060208201905061104b6000830184611027565b92915050565b61105a81610fa5565b82525050565b60006020820190506110756000830184611051565b92915050565b60008060006060848603121561109457611093610f42565b5b60006110a286828701610f90565b93505060206110b386828701610f90565b92505060406110c486828701610fc6565b9150509250925092565b6000602082840312156110e4576110e3610f42565b5b60006110f284828501610f90565b91505092915050565b600060ff82169050919050565b611111816110fb565b82525050565b600060208201905061112c6000830184611108565b92915050565b6000806040838503121561114957611148610f42565b5b600061115785828601610f90565b925050602061116885828601610f90565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806111b957607f821691505b6020821081036111cc576111cb611172565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061123b82610fa5565b915061124683610fa5565b925082611256576112556111d2565b5b828204905092915050565b600061126c82610fa5565b915061127783610fa5565b92508282101561128a57611289611201565b5b828203905092915050565b60006112a082610fa5565b91506112ab83610fa5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156112e4576112e3611201565b5b828202905092915050565b60006112fa82610fa5565b915061130583610fa5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561133a57611339611201565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006113a1602583610e92565b91506113ac82611345565b604082019050919050565b600060208201905081810360008301526113d081611394565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611433602483610e92565b915061143e826113d7565b604082019050919050565b6000602082019050818103600083015261146281611426565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006114c5602283610e92565b91506114d082611469565b604082019050919050565b600060208201905081810360008301526114f4816114b8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611531601d83610e92565b915061153c826114fb565b602082019050919050565b6000602082019050818103600083015261156081611524565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006115c3602583610e92565b91506115ce82611567565b604082019050919050565b600060208201905081810360008301526115f2816115b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611655602383610e92565b9150611660826115f9565b604082019050919050565b6000602082019050818103600083015261168481611648565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116e7602683610e92565b91506116f28261168b565b604082019050919050565b60006020820190508181036000830152611716816116da565b9050919050565b7f746869732061646472657373206973206174206c6f636b000000000000000000600082015250565b6000611753601783610e92565b915061175e8261171d565b602082019050919050565b6000602082019050818103600083015261178281611746565b905091905056fea26469706673582212204a04d24edbf82c638c2bc3dfd0f97495ff89e877f2b8c06c6a76ce12058449c764736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000007456c656d656e74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003454c540000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063395093511161007157806339509351146101a357806370a08231146101d357806395d89b4114610203578063a457c2d714610221578063a9059cbb14610251578063dd62ed3e14610281576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd146101255780632a894f3614610155578063313ce56714610185575b600080fd5b6100c16102b1565b6040516100ce9190610f20565b60405180910390f35b6100f160048036038101906100ec9190610fdb565b610343565b6040516100fe9190611036565b60405180910390f35b61010f610366565b60405161011c9190611060565b60405180910390f35b61013f600480360381019061013a919061107b565b610370565b60405161014c9190611036565b60405180910390f35b61016f600480360381019061016a91906110ce565b61039f565b60405161017c9190611060565b60405180910390f35b61018d6105d0565b60405161019a9190611117565b60405180910390f35b6101bd60048036038101906101b89190610fdb565b6105d9565b6040516101ca9190611036565b60405180910390f35b6101ed60048036038101906101e891906110ce565b610683565b6040516101fa9190611060565b60405180910390f35b61020b6106cb565b6040516102189190610f20565b60405180910390f35b61023b60048036038101906102369190610fdb565b61075d565b6040516102489190611036565b60405180910390f35b61026b60048036038101906102669190610fdb565b610847565b6040516102789190611036565b60405180910390f35b61029b60048036038101906102969190611132565b61086a565b6040516102a89190611060565b60405180910390f35b6060600380546102c0906111a1565b80601f01602080910402602001604051908101604052809291908181526020018280546102ec906111a1565b80156103395780601f1061030e57610100808354040283529160200191610339565b820191906000526020600020905b81548152906001019060200180831161031c57829003601f168201915b5050505050905090565b60008061034e6108f1565b905061035b8185856108f9565b600191505092915050565b6000600254905090565b60008061037b6108f1565b9050610388858285610ac2565b610393858585610b4e565b60019150509392505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105c657600062015180426104049190611230565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600a54836104599190611261565b111561057d57600081600a54846104709190611261565b61047a9190611261565b90506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826104c99190611230565b9050600081111561057a57600081600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105219190611295565b905080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461056e9190611261565b955050505050506105cb565b50505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925050506105cb565b600090505b919050565b60006012905090565b6000806105e46108f1565b9050610678818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461067391906112ef565b6108f9565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546106da906111a1565b80601f0160208091040260200160405190810160405280929190818152602001828054610706906111a1565b80156107535780601f1061072857610100808354040283529160200191610753565b820191906000526020600020905b81548152906001019060200180831161073657829003601f168201915b5050505050905090565b6000806107686108f1565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508381101561082e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610825906113b7565b60405180910390fd5b61083b82868684036108f9565b60019250505092915050565b6000806108526108f1565b905061085f818585610b4e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90611449565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906114db565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ab59190611060565b60405180910390a3505050565b6000610ace848461086a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b485781811015610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190611547565b60405180910390fd5b610b4784848484036108f9565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb4906115d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c239061166b565b60405180910390fd5b610c37838383610dcd565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb4906116fd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d5091906112ef565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610db49190611060565b60405180910390a3610dc7848484610e82565b50505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e7d5780610e298461039f565b610e3391906112ef565b610e3c84610683565b11610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390611769565b60405180910390fd5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610ec1578082015181840152602081019050610ea6565b83811115610ed0576000848401525b50505050565b6000601f19601f8301169050919050565b6000610ef282610e87565b610efc8185610e92565b9350610f0c818560208601610ea3565b610f1581610ed6565b840191505092915050565b60006020820190508181036000830152610f3a8184610ee7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f7282610f47565b9050919050565b610f8281610f67565b8114610f8d57600080fd5b50565b600081359050610f9f81610f79565b92915050565b6000819050919050565b610fb881610fa5565b8114610fc357600080fd5b50565b600081359050610fd581610faf565b92915050565b60008060408385031215610ff257610ff1610f42565b5b600061100085828601610f90565b925050602061101185828601610fc6565b9150509250929050565b60008115159050919050565b6110308161101b565b82525050565b600060208201905061104b6000830184611027565b92915050565b61105a81610fa5565b82525050565b60006020820190506110756000830184611051565b92915050565b60008060006060848603121561109457611093610f42565b5b60006110a286828701610f90565b93505060206110b386828701610f90565b92505060406110c486828701610fc6565b9150509250925092565b6000602082840312156110e4576110e3610f42565b5b60006110f284828501610f90565b91505092915050565b600060ff82169050919050565b611111816110fb565b82525050565b600060208201905061112c6000830184611108565b92915050565b6000806040838503121561114957611148610f42565b5b600061115785828601610f90565b925050602061116885828601610f90565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806111b957607f821691505b6020821081036111cc576111cb611172565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061123b82610fa5565b915061124683610fa5565b925082611256576112556111d2565b5b828204905092915050565b600061126c82610fa5565b915061127783610fa5565b92508282101561128a57611289611201565b5b828203905092915050565b60006112a082610fa5565b91506112ab83610fa5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156112e4576112e3611201565b5b828202905092915050565b60006112fa82610fa5565b915061130583610fa5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561133a57611339611201565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006113a1602583610e92565b91506113ac82611345565b604082019050919050565b600060208201905081810360008301526113d081611394565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611433602483610e92565b915061143e826113d7565b604082019050919050565b6000602082019050818103600083015261146281611426565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006114c5602283610e92565b91506114d082611469565b604082019050919050565b600060208201905081810360008301526114f4816114b8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611531601d83610e92565b915061153c826114fb565b602082019050919050565b6000602082019050818103600083015261156081611524565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006115c3602583610e92565b91506115ce82611567565b604082019050919050565b600060208201905081810360008301526115f2816115b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611655602383610e92565b9150611660826115f9565b604082019050919050565b6000602082019050818103600083015261168481611648565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116e7602683610e92565b91506116f28261168b565b604082019050919050565b60006020820190508181036000830152611716816116da565b9050919050565b7f746869732061646472657373206973206174206c6f636b000000000000000000600082015250565b6000611753601783610e92565b915061175e8261171d565b602082019050919050565b6000602082019050818103600083015261178281611746565b905091905056fea26469706673582212204a04d24edbf82c638c2bc3dfd0f97495ff89e877f2b8c06c6a76ce12058449c764736f6c634300080d0033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000007456c656d656e74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003454c540000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Element
Arg [1] : symbol (string): ELT

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [3] : 456c656d656e7400000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 454c540000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

17321:4633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6467:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8818:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7587:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9599:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21157:794;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7429:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10303:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7758:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11046:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8091:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8347:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6467:100;6521:13;6554:5;6547:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6467:100;:::o;8818:201::-;8901:4;8918:13;8934:12;:10;:12::i;:::-;8918:28;;8957:32;8966:5;8973:7;8982:6;8957:8;:32::i;:::-;9007:4;9000:11;;;8818:201;;;;:::o;7587:108::-;7648:7;7675:12;;7668:19;;7587:108;:::o;9599:295::-;9730:4;9747:15;9765:12;:10;:12::i;:::-;9747:30;;9788:38;9804:4;9810:7;9819:6;9788:15;:38::i;:::-;9837:27;9847:4;9853:2;9857:6;9837:9;:27::i;:::-;9882:4;9875:11;;;9599:295;;;;;:::o;21157:794::-;21216:7;21238:9;:15;21248:4;21238:15;;;;;;;;;;;;;;;;;;;;;;;;;21235:709;;;21269:15;21303:5;21287:15;:21;;;;:::i;:::-;21269:39;;21351:15;21369:8;:14;21378:4;21369:14;;;;;;;;;;;;;;;;21351:32;;21424:7;21412:8;;21402:7;:18;;;;:::i;:::-;21401:30;21398:423;;;21451:15;21490:7;21479:8;;21469:7;:18;;;;:::i;:::-;:28;;;;:::i;:::-;21451:46;;21568:18;21597:14;:20;21612:4;21597:20;;;;;;;;;;;;;;;;21589:7;:28;;;;:::i;:::-;21568:49;;21652:1;21639:10;:14;21636:170;;;21677:17;21717:10;21697:13;:19;21711:4;21697:19;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;21677:50;;21777:9;21757:11;:17;21769:4;21757:17;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;21750:36;;;;;;;;;21636:170;21432:389;;21398:423;21876:11;:17;21888:4;21876:17;;;;;;;;;;;;;;;;21869:24;;;;;;21235:709;21931:1;21924:8;;21157:794;;;;:::o;7429:93::-;7487:5;7512:2;7505:9;;7429:93;:::o;10303:240::-;10391:4;10408:13;10424:12;:10;:12::i;:::-;10408:28;;10447:66;10456:5;10463:7;10502:10;10472:11;:18;10484:5;10472:18;;;;;;;;;;;;;;;:27;10491:7;10472:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;10447:8;:66::i;:::-;10531:4;10524:11;;;10303:240;;;;:::o;7758:127::-;7832:7;7859:9;:18;7869:7;7859:18;;;;;;;;;;;;;;;;7852:25;;7758:127;;;:::o;6686:104::-;6742:13;6775:7;6768:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6686:104;:::o;11046:438::-;11139:4;11156:13;11172:12;:10;:12::i;:::-;11156:28;;11195:24;11222:11;:18;11234:5;11222:18;;;;;;;;;;;;;;;:27;11241:7;11222:27;;;;;;;;;;;;;;;;11195:54;;11288:15;11268:16;:35;;11260:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11381:60;11390:5;11397:7;11425:15;11406:16;:34;11381:8;:60::i;:::-;11472:4;11465:11;;;;11046:438;;;;:::o;8091:193::-;8170:4;8187:13;8203:12;:10;:12::i;:::-;8187:28;;8226;8236:5;8243:2;8247:6;8226:9;:28::i;:::-;8272:4;8265:11;;;8091:193;;;;:::o;8347:151::-;8436:7;8463:11;:18;8475:5;8463:18;;;;;;;;;;;;;;;:27;8482:7;8463:27;;;;;;;;;;;;;;;;8456:34;;8347:151;;;;:::o;4184:98::-;4237:7;4264:10;4257:17;;4184:98;:::o;14682:380::-;14835:1;14818:19;;:5;:19;;;14810:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14916:1;14897:21;;:7;:21;;;14889:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15000:6;14970:11;:18;14982:5;14970:18;;;;;;;;;;;;;;;:27;14989:7;14970:27;;;;;;;;;;;;;;;:36;;;;15038:7;15022:32;;15031:5;15022:32;;;15047:6;15022:32;;;;;;:::i;:::-;;;;;;;;14682:380;;;:::o;15349:453::-;15484:24;15511:25;15521:5;15528:7;15511:9;:25::i;:::-;15484:52;;15571:17;15551:16;:37;15547:248;;15633:6;15613:16;:26;;15605:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15717:51;15726:5;15733:7;15761:6;15742:16;:25;15717:8;:51::i;:::-;15547:248;15473:329;15349:453;;;:::o;11963:671::-;12110:1;12094:18;;:4;:18;;;12086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12187:1;12173:16;;:2;:16;;;12165:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12242:38;12263:4;12269:2;12273:6;12242:20;:38::i;:::-;12293:19;12315:9;:15;12325:4;12315:15;;;;;;;;;;;;;;;;12293:37;;12364:6;12349:11;:21;;12341:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12481:6;12467:11;:20;12449:9;:15;12459:4;12449:15;;;;;;;;;;;;;;;:38;;;;12526:6;12509:9;:13;12519:2;12509:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;12565:2;12550:26;;12559:4;12550:26;;;12569:6;12550:26;;;;;;:::i;:::-;;;;;;;;12589:37;12609:4;12615:2;12619:6;12589:19;:37::i;:::-;12075:559;11963:671;;;:::o;20879:268::-;21017:9;:15;21027:4;21017:15;;;;;;;;;;;;;;;;;;;;;;;;;21014:126;;;21095:6;21074:19;21088:4;21074:13;:19::i;:::-;:27;;;;:::i;:::-;21056:15;21066:4;21056:9;:15::i;:::-;:45;21048:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;21014:126;20879:268;;;:::o;17131:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:474::-;5304:6;5312;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5614:2;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5585:118;5236:474;;;;;:::o;5716:180::-;5764:77;5761:1;5754:88;5861:4;5858:1;5851:15;5885:4;5882:1;5875:15;5902:320;5946:6;5983:1;5977:4;5973:12;5963:22;;6030:1;6024:4;6020:12;6051:18;6041:81;;6107:4;6099:6;6095:17;6085:27;;6041:81;6169:2;6161:6;6158:14;6138:18;6135:38;6132:84;;6188:18;;:::i;:::-;6132:84;5953:269;5902:320;;;:::o;6228:180::-;6276:77;6273:1;6266:88;6373:4;6370:1;6363:15;6397:4;6394:1;6387:15;6414:180;6462:77;6459:1;6452:88;6559:4;6556:1;6549:15;6583:4;6580:1;6573:15;6600:185;6640:1;6657:20;6675:1;6657:20;:::i;:::-;6652:25;;6691:20;6709:1;6691:20;:::i;:::-;6686:25;;6730:1;6720:35;;6735:18;;:::i;:::-;6720:35;6777:1;6774;6770:9;6765:14;;6600:185;;;;:::o;6791:191::-;6831:4;6851:20;6869:1;6851:20;:::i;:::-;6846:25;;6885:20;6903:1;6885:20;:::i;:::-;6880:25;;6924:1;6921;6918:8;6915:34;;;6929:18;;:::i;:::-;6915:34;6974:1;6971;6967:9;6959:17;;6791:191;;;;:::o;6988:348::-;7028:7;7051:20;7069:1;7051:20;:::i;:::-;7046:25;;7085:20;7103:1;7085:20;:::i;:::-;7080:25;;7273:1;7205:66;7201:74;7198:1;7195:81;7190:1;7183:9;7176:17;7172:105;7169:131;;;7280:18;;:::i;:::-;7169:131;7328:1;7325;7321:9;7310:20;;6988:348;;;;:::o;7342:305::-;7382:3;7401:20;7419:1;7401:20;:::i;:::-;7396:25;;7435:20;7453:1;7435:20;:::i;:::-;7430:25;;7589:1;7521:66;7517:74;7514:1;7511:81;7508:107;;;7595:18;;:::i;:::-;7508:107;7639:1;7636;7632:9;7625:16;;7342:305;;;;:::o;7653:224::-;7793:34;7789:1;7781:6;7777:14;7770:58;7862:7;7857:2;7849:6;7845:15;7838:32;7653:224;:::o;7883:366::-;8025:3;8046:67;8110:2;8105:3;8046:67;:::i;:::-;8039:74;;8122:93;8211:3;8122:93;:::i;:::-;8240:2;8235:3;8231:12;8224:19;;7883:366;;;:::o;8255:419::-;8421:4;8459:2;8448:9;8444:18;8436:26;;8508:9;8502:4;8498:20;8494:1;8483:9;8479:17;8472:47;8536:131;8662:4;8536:131;:::i;:::-;8528:139;;8255:419;;;:::o;8680:223::-;8820:34;8816:1;8808:6;8804:14;8797:58;8889:6;8884:2;8876:6;8872:15;8865:31;8680:223;:::o;8909:366::-;9051:3;9072:67;9136:2;9131:3;9072:67;:::i;:::-;9065:74;;9148:93;9237:3;9148:93;:::i;:::-;9266:2;9261:3;9257:12;9250:19;;8909:366;;;:::o;9281:419::-;9447:4;9485:2;9474:9;9470:18;9462:26;;9534:9;9528:4;9524:20;9520:1;9509:9;9505:17;9498:47;9562:131;9688:4;9562:131;:::i;:::-;9554:139;;9281:419;;;:::o;9706:221::-;9846:34;9842:1;9834:6;9830:14;9823:58;9915:4;9910:2;9902:6;9898:15;9891:29;9706:221;:::o;9933:366::-;10075:3;10096:67;10160:2;10155:3;10096:67;:::i;:::-;10089:74;;10172:93;10261:3;10172:93;:::i;:::-;10290:2;10285:3;10281:12;10274:19;;9933:366;;;:::o;10305:419::-;10471:4;10509:2;10498:9;10494:18;10486:26;;10558:9;10552:4;10548:20;10544:1;10533:9;10529:17;10522:47;10586:131;10712:4;10586:131;:::i;:::-;10578:139;;10305:419;;;:::o;10730:179::-;10870:31;10866:1;10858:6;10854:14;10847:55;10730:179;:::o;10915:366::-;11057:3;11078:67;11142:2;11137:3;11078:67;:::i;:::-;11071:74;;11154:93;11243:3;11154:93;:::i;:::-;11272:2;11267:3;11263:12;11256:19;;10915:366;;;:::o;11287:419::-;11453:4;11491:2;11480:9;11476:18;11468:26;;11540:9;11534:4;11530:20;11526:1;11515:9;11511:17;11504:47;11568:131;11694:4;11568:131;:::i;:::-;11560:139;;11287:419;;;:::o;11712:224::-;11852:34;11848:1;11840:6;11836:14;11829:58;11921:7;11916:2;11908:6;11904:15;11897:32;11712:224;:::o;11942:366::-;12084:3;12105:67;12169:2;12164:3;12105:67;:::i;:::-;12098:74;;12181:93;12270:3;12181:93;:::i;:::-;12299:2;12294:3;12290:12;12283:19;;11942:366;;;:::o;12314:419::-;12480:4;12518:2;12507:9;12503:18;12495:26;;12567:9;12561:4;12557:20;12553:1;12542:9;12538:17;12531:47;12595:131;12721:4;12595:131;:::i;:::-;12587:139;;12314:419;;;:::o;12739:222::-;12879:34;12875:1;12867:6;12863:14;12856:58;12948:5;12943:2;12935:6;12931:15;12924:30;12739:222;:::o;12967:366::-;13109:3;13130:67;13194:2;13189:3;13130:67;:::i;:::-;13123:74;;13206:93;13295:3;13206:93;:::i;:::-;13324:2;13319:3;13315:12;13308:19;;12967:366;;;:::o;13339:419::-;13505:4;13543:2;13532:9;13528:18;13520:26;;13592:9;13586:4;13582:20;13578:1;13567:9;13563:17;13556:47;13620:131;13746:4;13620:131;:::i;:::-;13612:139;;13339:419;;;:::o;13764:225::-;13904:34;13900:1;13892:6;13888:14;13881:58;13973:8;13968:2;13960:6;13956:15;13949:33;13764:225;:::o;13995:366::-;14137:3;14158:67;14222:2;14217:3;14158:67;:::i;:::-;14151:74;;14234:93;14323:3;14234:93;:::i;:::-;14352:2;14347:3;14343:12;14336:19;;13995:366;;;:::o;14367:419::-;14533:4;14571:2;14560:9;14556:18;14548:26;;14620:9;14614:4;14610:20;14606:1;14595:9;14591:17;14584:47;14648:131;14774:4;14648:131;:::i;:::-;14640:139;;14367:419;;;:::o;14792:173::-;14932:25;14928:1;14920:6;14916:14;14909:49;14792:173;:::o;14971:366::-;15113:3;15134:67;15198:2;15193:3;15134:67;:::i;:::-;15127:74;;15210:93;15299:3;15210:93;:::i;:::-;15328:2;15323:3;15319:12;15312:19;;14971:366;;;:::o;15343:419::-;15509:4;15547:2;15536:9;15532:18;15524:26;;15596:9;15590:4;15586:20;15582:1;15571:9;15567:17;15560:47;15624:131;15750:4;15624:131;:::i;:::-;15616:139;;15343:419;;;:::o

Swarm Source

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