ETH Price: $3,028.89 (+2.35%)
Gas: 1 Gwei

Token

METAX (METAX)
 

Overview

Max Total Supply

110,000,000 METAX

Holders

309

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
210 METAX

Value
$0.00
0xacfc880068339e46fc8a667580d008c6c35e1455
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:
METAX

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-06
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;

/**
 * @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}.
 */
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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender,
        address recipient,
        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);
}

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);
}


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

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

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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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 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 {}
}

abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        unchecked {
            _approve(account, _msgSender(), currentAllowance - amount);
        }
        _burn(account, amount);
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     *
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }*/

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     *
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }*/

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract METAX is ERC20, ERC20Burnable, Ownable { 
    constructor() ERC20("METAX", "METAX") {
        _mint(msg.sender, 110000000 * 10 ** decimals());
    }
}

Contract Security Audit

Contract ABI

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

60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4d455441580000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d4554415800000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000372565b508060049080519060200190620000af92919062000372565b505050620000d2620000c66200011860201b60201c565b6200012060201b60201c565b6200011233620000e7620001e660201b60201c565b600a620000f5919062000562565b63068e77806200010691906200069f565b620001ef60201b60201c565b620007e1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000259906200045a565b60405180910390fd5b62000276600083836200036860201b60201c565b80600260008282546200028a9190620004aa565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002e19190620004aa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200034891906200047c565b60405180910390a362000364600083836200036d60201b60201c565b5050565b505050565b505050565b828054620003809062000717565b90600052602060002090601f016020900481019282620003a45760008555620003f0565b82601f10620003bf57805160ff1916838001178555620003f0565b82800160010185558215620003f0579182015b82811115620003ef578251825591602001919060010190620003d2565b5b509050620003ff919062000403565b5090565b5b808211156200041e57600081600090555060010162000404565b5090565b600062000431601f8362000499565b91506200043e82620007b8565b602082019050919050565b620004548162000700565b82525050565b60006020820190508181036000830152620004758162000422565b9050919050565b600060208201905062000493600083018462000449565b92915050565b600082825260208201905092915050565b6000620004b78262000700565b9150620004c48362000700565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004fc57620004fb6200074d565b5b828201905092915050565b6000808291508390505b600185111562000559578086048111156200053157620005306200074d565b5b6001851615620005415780820291505b80810290506200055185620007ab565b945062000511565b94509492505050565b60006200056f8262000700565b91506200057c836200070a565b9250620005ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b3565b905092915050565b600082620005c5576001905062000698565b81620005d5576000905062000698565b8160018114620005ee5760028114620005f9576200062f565b600191505062000698565b60ff8411156200060e576200060d6200074d565b5b8360020a9150848211156200062857620006276200074d565b5b5062000698565b5060208310610133831016604e8410600b8410161715620006695782820a9050838111156200066357620006626200074d565b5b62000698565b62000678848484600162000507565b925090508184048111156200069257620006916200074d565b5b81810290505b9392505050565b6000620006ac8262000700565b9150620006b98362000700565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006f557620006f46200074d565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200073057607f821691505b602082108114156200074757620007466200077c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61191280620007f16000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b411461025f578063a457c2d71461027d578063a9059cbb146102ad578063dd62ed3e146102dd576100ea565b806370a08231146101f557806379cc6790146102255780638da5cb5b14610241576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806339509351146101a957806342966c68146101d9576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f761030d565b604051610104919061122c565b60405180910390f35b61012760048036038101906101229190610fb6565b61039f565b6040516101349190611211565b60405180910390f35b6101456103bd565b604051610152919061138e565b60405180910390f35b61017560048036038101906101709190610f63565b6103c7565b6040516101829190611211565b60405180910390f35b6101936104bf565b6040516101a091906113a9565b60405180910390f35b6101c360048036038101906101be9190610fb6565b6104c8565b6040516101d09190611211565b60405180910390f35b6101f360048036038101906101ee9190610ff6565b610574565b005b61020f600480360381019061020a9190610ef6565b610588565b60405161021c919061138e565b60405180910390f35b61023f600480360381019061023a9190610fb6565b6105d0565b005b61024961064b565b60405161025691906111f6565b60405180910390f35b610267610675565b604051610274919061122c565b60405180910390f35b61029760048036038101906102929190610fb6565b610707565b6040516102a49190611211565b60405180910390f35b6102c760048036038101906102c29190610fb6565b6107f2565b6040516102d49190611211565b60405180910390f35b6102f760048036038101906102f29190610f23565b610810565b604051610304919061138e565b60405180910390f35b60606003805461031c906114f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610348906114f2565b80156103955780601f1061036a57610100808354040283529160200191610395565b820191906000526020600020905b81548152906001019060200180831161037857829003601f168201915b5050505050905090565b60006103b36103ac610897565b848461089f565b6001905092915050565b6000600254905090565b60006103d4848484610a6a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061041f610897565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561049f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610496906112ce565b60405180910390fd5b6104b3856104ab610897565b85840361089f565b60019150509392505050565b60006012905090565b600061056a6104d5610897565b8484600160006104e3610897565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461056591906113e0565b61089f565b6001905092915050565b61058561057f610897565b82610ceb565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006105e3836105de610897565b610810565b905081811015610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f906112ee565b60405180910390fd5b61063c83610634610897565b84840361089f565b6106468383610ceb565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610684906114f2565b80601f01602080910402602001604051908101604052809291908181526020018280546106b0906114f2565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b5050505050905090565b60008060016000610716610897565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca9061136e565b60405180910390fd5b6107e76107de610897565b8585840361089f565b600191505092915050565b60006108066107ff610897565b8484610a6a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561090f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109069061134e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109769061128e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a5d919061138e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad19061132e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b419061124e565b60405180910390fd5b610b55838383610ec2565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906112ae565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c6e91906113e0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cd2919061138e565b60405180910390a3610ce5848484610ec7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d529061130e565b60405180910390fd5b610d6782600083610ec2565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de49061126e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610e449190611436565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea9919061138e565b60405180910390a3610ebd83600084610ec7565b505050565b505050565b505050565b600081359050610edb816118ae565b92915050565b600081359050610ef0816118c5565b92915050565b600060208284031215610f0c57610f0b611582565b5b6000610f1a84828501610ecc565b91505092915050565b60008060408385031215610f3a57610f39611582565b5b6000610f4885828601610ecc565b9250506020610f5985828601610ecc565b9150509250929050565b600080600060608486031215610f7c57610f7b611582565b5b6000610f8a86828701610ecc565b9350506020610f9b86828701610ecc565b9250506040610fac86828701610ee1565b9150509250925092565b60008060408385031215610fcd57610fcc611582565b5b6000610fdb85828601610ecc565b9250506020610fec85828601610ee1565b9150509250929050565b60006020828403121561100c5761100b611582565b5b600061101a84828501610ee1565b91505092915050565b61102c8161146a565b82525050565b61103b8161147c565b82525050565b600061104c826113c4565b61105681856113cf565b93506110668185602086016114bf565b61106f81611587565b840191505092915050565b60006110876023836113cf565b915061109282611598565b604082019050919050565b60006110aa6022836113cf565b91506110b5826115e7565b604082019050919050565b60006110cd6022836113cf565b91506110d882611636565b604082019050919050565b60006110f06026836113cf565b91506110fb82611685565b604082019050919050565b60006111136028836113cf565b915061111e826116d4565b604082019050919050565b60006111366024836113cf565b915061114182611723565b604082019050919050565b60006111596021836113cf565b915061116482611772565b604082019050919050565b600061117c6025836113cf565b9150611187826117c1565b604082019050919050565b600061119f6024836113cf565b91506111aa82611810565b604082019050919050565b60006111c26025836113cf565b91506111cd8261185f565b604082019050919050565b6111e1816114a8565b82525050565b6111f0816114b2565b82525050565b600060208201905061120b6000830184611023565b92915050565b60006020820190506112266000830184611032565b92915050565b600060208201905081810360008301526112468184611041565b905092915050565b600060208201905081810360008301526112678161107a565b9050919050565b600060208201905081810360008301526112878161109d565b9050919050565b600060208201905081810360008301526112a7816110c0565b9050919050565b600060208201905081810360008301526112c7816110e3565b9050919050565b600060208201905081810360008301526112e781611106565b9050919050565b6000602082019050818103600083015261130781611129565b9050919050565b600060208201905081810360008301526113278161114c565b9050919050565b600060208201905081810360008301526113478161116f565b9050919050565b6000602082019050818103600083015261136781611192565b9050919050565b60006020820190508181036000830152611387816111b5565b9050919050565b60006020820190506113a360008301846111d8565b92915050565b60006020820190506113be60008301846111e7565b92915050565b600081519050919050565b600082825260208201905092915050565b60006113eb826114a8565b91506113f6836114a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561142b5761142a611524565b5b828201905092915050565b6000611441826114a8565b915061144c836114a8565b92508282101561145f5761145e611524565b5b828203905092915050565b600061147582611488565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156114dd5780820151818401526020810190506114c2565b838111156114ec576000848401525b50505050565b6000600282049050600182168061150a57607f821691505b6020821081141561151e5761151d611553565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6118b78161146a565b81146118c257600080fd5b50565b6118ce816114a8565b81146118d957600080fd5b5056fea264697066735822122025e99977731cef673634b16805555a3f8ebd089ecaa1c2119a480a9fae4126ba64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b411461025f578063a457c2d71461027d578063a9059cbb146102ad578063dd62ed3e146102dd576100ea565b806370a08231146101f557806379cc6790146102255780638da5cb5b14610241576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806339509351146101a957806342966c68146101d9576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f761030d565b604051610104919061122c565b60405180910390f35b61012760048036038101906101229190610fb6565b61039f565b6040516101349190611211565b60405180910390f35b6101456103bd565b604051610152919061138e565b60405180910390f35b61017560048036038101906101709190610f63565b6103c7565b6040516101829190611211565b60405180910390f35b6101936104bf565b6040516101a091906113a9565b60405180910390f35b6101c360048036038101906101be9190610fb6565b6104c8565b6040516101d09190611211565b60405180910390f35b6101f360048036038101906101ee9190610ff6565b610574565b005b61020f600480360381019061020a9190610ef6565b610588565b60405161021c919061138e565b60405180910390f35b61023f600480360381019061023a9190610fb6565b6105d0565b005b61024961064b565b60405161025691906111f6565b60405180910390f35b610267610675565b604051610274919061122c565b60405180910390f35b61029760048036038101906102929190610fb6565b610707565b6040516102a49190611211565b60405180910390f35b6102c760048036038101906102c29190610fb6565b6107f2565b6040516102d49190611211565b60405180910390f35b6102f760048036038101906102f29190610f23565b610810565b604051610304919061138e565b60405180910390f35b60606003805461031c906114f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610348906114f2565b80156103955780601f1061036a57610100808354040283529160200191610395565b820191906000526020600020905b81548152906001019060200180831161037857829003601f168201915b5050505050905090565b60006103b36103ac610897565b848461089f565b6001905092915050565b6000600254905090565b60006103d4848484610a6a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061041f610897565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561049f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610496906112ce565b60405180910390fd5b6104b3856104ab610897565b85840361089f565b60019150509392505050565b60006012905090565b600061056a6104d5610897565b8484600160006104e3610897565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461056591906113e0565b61089f565b6001905092915050565b61058561057f610897565b82610ceb565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006105e3836105de610897565b610810565b905081811015610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f906112ee565b60405180910390fd5b61063c83610634610897565b84840361089f565b6106468383610ceb565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610684906114f2565b80601f01602080910402602001604051908101604052809291908181526020018280546106b0906114f2565b80156106fd5780601f106106d2576101008083540402835291602001916106fd565b820191906000526020600020905b8154815290600101906020018083116106e057829003601f168201915b5050505050905090565b60008060016000610716610897565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ca9061136e565b60405180910390fd5b6107e76107de610897565b8585840361089f565b600191505092915050565b60006108066107ff610897565b8484610a6a565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561090f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109069061134e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109769061128e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a5d919061138e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad19061132e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b419061124e565b60405180910390fd5b610b55838383610ec2565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906112ae565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c6e91906113e0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cd2919061138e565b60405180910390a3610ce5848484610ec7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d529061130e565b60405180910390fd5b610d6782600083610ec2565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de49061126e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610e449190611436565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea9919061138e565b60405180910390a3610ebd83600084610ec7565b505050565b505050565b505050565b600081359050610edb816118ae565b92915050565b600081359050610ef0816118c5565b92915050565b600060208284031215610f0c57610f0b611582565b5b6000610f1a84828501610ecc565b91505092915050565b60008060408385031215610f3a57610f39611582565b5b6000610f4885828601610ecc565b9250506020610f5985828601610ecc565b9150509250929050565b600080600060608486031215610f7c57610f7b611582565b5b6000610f8a86828701610ecc565b9350506020610f9b86828701610ecc565b9250506040610fac86828701610ee1565b9150509250925092565b60008060408385031215610fcd57610fcc611582565b5b6000610fdb85828601610ecc565b9250506020610fec85828601610ee1565b9150509250929050565b60006020828403121561100c5761100b611582565b5b600061101a84828501610ee1565b91505092915050565b61102c8161146a565b82525050565b61103b8161147c565b82525050565b600061104c826113c4565b61105681856113cf565b93506110668185602086016114bf565b61106f81611587565b840191505092915050565b60006110876023836113cf565b915061109282611598565b604082019050919050565b60006110aa6022836113cf565b91506110b5826115e7565b604082019050919050565b60006110cd6022836113cf565b91506110d882611636565b604082019050919050565b60006110f06026836113cf565b91506110fb82611685565b604082019050919050565b60006111136028836113cf565b915061111e826116d4565b604082019050919050565b60006111366024836113cf565b915061114182611723565b604082019050919050565b60006111596021836113cf565b915061116482611772565b604082019050919050565b600061117c6025836113cf565b9150611187826117c1565b604082019050919050565b600061119f6024836113cf565b91506111aa82611810565b604082019050919050565b60006111c26025836113cf565b91506111cd8261185f565b604082019050919050565b6111e1816114a8565b82525050565b6111f0816114b2565b82525050565b600060208201905061120b6000830184611023565b92915050565b60006020820190506112266000830184611032565b92915050565b600060208201905081810360008301526112468184611041565b905092915050565b600060208201905081810360008301526112678161107a565b9050919050565b600060208201905081810360008301526112878161109d565b9050919050565b600060208201905081810360008301526112a7816110c0565b9050919050565b600060208201905081810360008301526112c7816110e3565b9050919050565b600060208201905081810360008301526112e781611106565b9050919050565b6000602082019050818103600083015261130781611129565b9050919050565b600060208201905081810360008301526113278161114c565b9050919050565b600060208201905081810360008301526113478161116f565b9050919050565b6000602082019050818103600083015261136781611192565b9050919050565b60006020820190508181036000830152611387816111b5565b9050919050565b60006020820190506113a360008301846111d8565b92915050565b60006020820190506113be60008301846111e7565b92915050565b600081519050919050565b600082825260208201905092915050565b60006113eb826114a8565b91506113f6836114a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561142b5761142a611524565b5b828201905092915050565b6000611441826114a8565b915061144c836114a8565b92508282101561145f5761145e611524565b5b828203905092915050565b600061147582611488565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156114dd5780820151818401526020810190506114c2565b838111156114ec576000848401525b50505050565b6000600282049050600182168061150a57607f821691505b6020821081141561151e5761151d611553565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6118b78161146a565b81146118c257600080fd5b50565b6118ce816114a8565b81146118d957600080fd5b5056fea264697066735822122025e99977731cef673634b16805555a3f8ebd089ecaa1c2119a480a9fae4126ba64736f6c63430008070033

Deployed Bytecode Sourcemap

18177:163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5384:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7551:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6504:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6346:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9103:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15510:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6675:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15920:368;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16707:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5603:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9821:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7015:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7253:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5384:100;5438:13;5471:5;5464:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5384:100;:::o;7551:169::-;7634:4;7651:39;7660:12;:10;:12::i;:::-;7674:7;7683:6;7651:8;:39::i;:::-;7708:4;7701:11;;7551:169;;;;:::o;6504:108::-;6565:7;6592:12;;6585:19;;6504:108;:::o;8202:492::-;8342:4;8359:36;8369:6;8377:9;8388:6;8359:9;:36::i;:::-;8408:24;8435:11;:19;8447:6;8435:19;;;;;;;;;;;;;;;:33;8455:12;:10;:12::i;:::-;8435:33;;;;;;;;;;;;;;;;8408:60;;8507:6;8487:16;:26;;8479:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8594:57;8603:6;8611:12;:10;:12::i;:::-;8644:6;8625:16;:25;8594:8;:57::i;:::-;8682:4;8675:11;;;8202:492;;;;;:::o;6346:93::-;6404:5;6429:2;6422:9;;6346:93;:::o;9103:215::-;9191:4;9208:80;9217:12;:10;:12::i;:::-;9231:7;9277:10;9240:11;:25;9252:12;:10;:12::i;:::-;9240:25;;;;;;;;;;;;;;;:34;9266:7;9240:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9208:8;:80::i;:::-;9306:4;9299:11;;9103:215;;;;:::o;15510:91::-;15566:27;15572:12;:10;:12::i;:::-;15586:6;15566:5;:27::i;:::-;15510:91;:::o;6675:127::-;6749:7;6776:9;:18;6786:7;6776:18;;;;;;;;;;;;;;;;6769:25;;6675:127;;;:::o;15920:368::-;15997:24;16024:32;16034:7;16043:12;:10;:12::i;:::-;16024:9;:32::i;:::-;15997:59;;16095:6;16075:16;:26;;16067:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16178:58;16187:7;16196:12;:10;:12::i;:::-;16229:6;16210:16;:25;16178:8;:58::i;:::-;16258:22;16264:7;16273:6;16258:5;:22::i;:::-;15986:302;15920:368;;:::o;16707:87::-;16753:7;16780:6;;;;;;;;;;;16773:13;;16707:87;:::o;5603:104::-;5659:13;5692:7;5685:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5603:104;:::o;9821:413::-;9914:4;9931:24;9958:11;:25;9970:12;:10;:12::i;:::-;9958:25;;;;;;;;;;;;;;;:34;9984:7;9958:34;;;;;;;;;;;;;;;;9931:61;;10031:15;10011:16;:35;;10003:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10124:67;10133:12;:10;:12::i;:::-;10147:7;10175:15;10156:16;:34;10124:8;:67::i;:::-;10222:4;10215:11;;;9821:413;;;;:::o;7015:175::-;7101:4;7118:42;7128:12;:10;:12::i;:::-;7142:9;7153:6;7118:9;:42::i;:::-;7178:4;7171:11;;7015:175;;;;:::o;7253:151::-;7342:7;7369:11;:18;7381:5;7369:18;;;;;;;;;;;;;;;:27;7388:7;7369:27;;;;;;;;;;;;;;;;7362:34;;7253:151;;;;:::o;4390:98::-;4443:7;4470:10;4463:17;;4390:98;:::o;13505:380::-;13658:1;13641:19;;:5;:19;;;;13633:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13739:1;13720:21;;:7;:21;;;;13712:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13823:6;13793:11;:18;13805:5;13793:18;;;;;;;;;;;;;;;:27;13812:7;13793:27;;;;;;;;;;;;;;;:36;;;;13861:7;13845:32;;13854:5;13845:32;;;13870:6;13845:32;;;;;;:::i;:::-;;;;;;;;13505:380;;;:::o;10724:733::-;10882:1;10864:20;;:6;:20;;;;10856:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10966:1;10945:23;;:9;:23;;;;10937:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11021:47;11042:6;11050:9;11061:6;11021:20;:47::i;:::-;11081:21;11105:9;:17;11115:6;11105:17;;;;;;;;;;;;;;;;11081:41;;11158:6;11141:13;:23;;11133:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11279:6;11263:13;:22;11243:9;:17;11253:6;11243:17;;;;;;;;;;;;;;;:42;;;;11331:6;11307:9;:20;11317:9;11307:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11372:9;11355:35;;11364:6;11355:35;;;11383:6;11355:35;;;;;;:::i;:::-;;;;;;;;11403:46;11423:6;11431:9;11442:6;11403:19;:46::i;:::-;10845:612;10724:733;;;:::o;12476:591::-;12579:1;12560:21;;:7;:21;;;;12552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12632:49;12653:7;12670:1;12674:6;12632:20;:49::i;:::-;12694:22;12719:9;:18;12729:7;12719:18;;;;;;;;;;;;;;;;12694:43;;12774:6;12756:14;:24;;12748:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12893:6;12876:14;:23;12855:9;:18;12865:7;12855:18;;;;;;;;;;;;;;;:44;;;;12937:6;12921:12;;:22;;;;;;;:::i;:::-;;;;;;;;12987:1;12961:37;;12970:7;12961:37;;;12991:6;12961:37;;;;;;:::i;:::-;;;;;;;;13011:48;13031:7;13048:1;13052:6;13011:19;:48::i;:::-;12541:526;12476:591;;:::o;14485:125::-;;;;:::o;15214:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:329::-;2276:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:119;;;2331:79;;:::i;:::-;2293:119;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2217:329;;;;:::o;2552:118::-;2639:24;2657:5;2639:24;:::i;:::-;2634:3;2627:37;2552:118;;:::o;2676:109::-;2757:21;2772:5;2757:21;:::i;:::-;2752:3;2745:34;2676:109;;:::o;2791:364::-;2879:3;2907:39;2940:5;2907:39;:::i;:::-;2962:71;3026:6;3021:3;2962:71;:::i;:::-;2955:78;;3042:52;3087:6;3082:3;3075:4;3068:5;3064:16;3042:52;:::i;:::-;3119:29;3141:6;3119:29;:::i;:::-;3114:3;3110:39;3103:46;;2883:272;2791:364;;;;:::o;3161:366::-;3303:3;3324:67;3388:2;3383:3;3324:67;:::i;:::-;3317:74;;3400:93;3489:3;3400:93;:::i;:::-;3518:2;3513:3;3509:12;3502:19;;3161:366;;;:::o;3533:::-;3675:3;3696:67;3760:2;3755:3;3696:67;:::i;:::-;3689:74;;3772:93;3861:3;3772:93;:::i;:::-;3890:2;3885:3;3881:12;3874:19;;3533:366;;;:::o;3905:::-;4047:3;4068:67;4132:2;4127:3;4068:67;:::i;:::-;4061:74;;4144:93;4233:3;4144:93;:::i;:::-;4262:2;4257:3;4253:12;4246:19;;3905:366;;;:::o;4277:::-;4419:3;4440:67;4504:2;4499:3;4440:67;:::i;:::-;4433:74;;4516:93;4605:3;4516:93;:::i;:::-;4634:2;4629:3;4625:12;4618:19;;4277:366;;;:::o;4649:::-;4791:3;4812:67;4876:2;4871:3;4812:67;:::i;:::-;4805:74;;4888:93;4977:3;4888:93;:::i;:::-;5006:2;5001:3;4997:12;4990:19;;4649:366;;;:::o;5021:::-;5163:3;5184:67;5248:2;5243:3;5184:67;:::i;:::-;5177:74;;5260:93;5349:3;5260:93;:::i;:::-;5378:2;5373:3;5369:12;5362:19;;5021:366;;;:::o;5393:::-;5535:3;5556:67;5620:2;5615:3;5556:67;:::i;:::-;5549:74;;5632:93;5721:3;5632:93;:::i;:::-;5750:2;5745:3;5741:12;5734:19;;5393:366;;;:::o;5765:::-;5907:3;5928:67;5992:2;5987:3;5928:67;:::i;:::-;5921:74;;6004:93;6093:3;6004:93;:::i;:::-;6122:2;6117:3;6113:12;6106:19;;5765:366;;;:::o;6137:::-;6279:3;6300:67;6364:2;6359:3;6300:67;:::i;:::-;6293:74;;6376:93;6465:3;6376:93;:::i;:::-;6494:2;6489:3;6485:12;6478:19;;6137:366;;;:::o;6509:::-;6651:3;6672:67;6736:2;6731:3;6672:67;:::i;:::-;6665:74;;6748:93;6837:3;6748:93;:::i;:::-;6866:2;6861:3;6857:12;6850:19;;6509:366;;;:::o;6881:118::-;6968:24;6986:5;6968:24;:::i;:::-;6963:3;6956:37;6881:118;;:::o;7005:112::-;7088:22;7104:5;7088:22;:::i;:::-;7083:3;7076:35;7005:112;;:::o;7123:222::-;7216:4;7254:2;7243:9;7239:18;7231:26;;7267:71;7335:1;7324:9;7320:17;7311:6;7267:71;:::i;:::-;7123:222;;;;:::o;7351:210::-;7438:4;7476:2;7465:9;7461:18;7453:26;;7489:65;7551:1;7540:9;7536:17;7527:6;7489:65;:::i;:::-;7351:210;;;;:::o;7567:313::-;7680:4;7718:2;7707:9;7703:18;7695:26;;7767:9;7761:4;7757:20;7753:1;7742:9;7738:17;7731:47;7795:78;7868:4;7859:6;7795:78;:::i;:::-;7787:86;;7567:313;;;;:::o;7886:419::-;8052:4;8090:2;8079:9;8075:18;8067:26;;8139:9;8133:4;8129:20;8125:1;8114:9;8110:17;8103:47;8167:131;8293:4;8167:131;:::i;:::-;8159:139;;7886:419;;;:::o;8311:::-;8477:4;8515:2;8504:9;8500:18;8492:26;;8564:9;8558:4;8554:20;8550:1;8539:9;8535:17;8528:47;8592:131;8718:4;8592:131;:::i;:::-;8584:139;;8311:419;;;:::o;8736:::-;8902:4;8940:2;8929:9;8925:18;8917:26;;8989:9;8983:4;8979:20;8975:1;8964:9;8960:17;8953:47;9017:131;9143:4;9017:131;:::i;:::-;9009:139;;8736:419;;;:::o;9161:::-;9327:4;9365:2;9354:9;9350:18;9342:26;;9414:9;9408:4;9404:20;9400:1;9389:9;9385:17;9378:47;9442:131;9568:4;9442:131;:::i;:::-;9434:139;;9161:419;;;:::o;9586:::-;9752:4;9790:2;9779:9;9775:18;9767:26;;9839:9;9833:4;9829:20;9825:1;9814:9;9810:17;9803:47;9867:131;9993:4;9867:131;:::i;:::-;9859:139;;9586:419;;;:::o;10011:::-;10177:4;10215:2;10204:9;10200:18;10192:26;;10264:9;10258:4;10254:20;10250:1;10239:9;10235:17;10228:47;10292:131;10418:4;10292:131;:::i;:::-;10284:139;;10011:419;;;:::o;10436:::-;10602:4;10640:2;10629:9;10625:18;10617:26;;10689:9;10683:4;10679:20;10675:1;10664:9;10660:17;10653:47;10717:131;10843:4;10717:131;:::i;:::-;10709:139;;10436:419;;;:::o;10861:::-;11027:4;11065:2;11054:9;11050:18;11042:26;;11114:9;11108:4;11104:20;11100:1;11089:9;11085:17;11078:47;11142:131;11268:4;11142:131;:::i;:::-;11134:139;;10861:419;;;:::o;11286:::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11539:9;11533:4;11529:20;11525:1;11514:9;11510:17;11503:47;11567:131;11693:4;11567:131;:::i;:::-;11559:139;;11286:419;;;:::o;11711:::-;11877:4;11915:2;11904:9;11900:18;11892:26;;11964:9;11958:4;11954:20;11950:1;11939:9;11935:17;11928:47;11992:131;12118:4;11992:131;:::i;:::-;11984:139;;11711:419;;;:::o;12136:222::-;12229:4;12267:2;12256:9;12252:18;12244:26;;12280:71;12348:1;12337:9;12333:17;12324:6;12280:71;:::i;:::-;12136:222;;;;:::o;12364:214::-;12453:4;12491:2;12480:9;12476:18;12468:26;;12504:67;12568:1;12557:9;12553:17;12544:6;12504:67;:::i;:::-;12364:214;;;;:::o;12665:99::-;12717:6;12751:5;12745:12;12735:22;;12665:99;;;:::o;12770:169::-;12854:11;12888:6;12883:3;12876:19;12928:4;12923:3;12919:14;12904:29;;12770:169;;;;:::o;12945:305::-;12985:3;13004:20;13022:1;13004:20;:::i;:::-;12999:25;;13038:20;13056:1;13038:20;:::i;:::-;13033:25;;13192:1;13124:66;13120:74;13117:1;13114:81;13111:107;;;13198:18;;:::i;:::-;13111:107;13242:1;13239;13235:9;13228:16;;12945:305;;;;:::o;13256:191::-;13296:4;13316:20;13334:1;13316:20;:::i;:::-;13311:25;;13350:20;13368:1;13350:20;:::i;:::-;13345:25;;13389:1;13386;13383:8;13380:34;;;13394:18;;:::i;:::-;13380:34;13439:1;13436;13432:9;13424:17;;13256:191;;;;:::o;13453:96::-;13490:7;13519:24;13537:5;13519:24;:::i;:::-;13508:35;;13453:96;;;:::o;13555:90::-;13589:7;13632:5;13625:13;13618:21;13607:32;;13555:90;;;:::o;13651:126::-;13688:7;13728:42;13721:5;13717:54;13706:65;;13651:126;;;:::o;13783:77::-;13820:7;13849:5;13838:16;;13783:77;;;:::o;13866:86::-;13901:7;13941:4;13934:5;13930:16;13919:27;;13866:86;;;:::o;13958:307::-;14026:1;14036:113;14050:6;14047:1;14044:13;14036:113;;;14135:1;14130:3;14126:11;14120:18;14116:1;14111:3;14107:11;14100:39;14072:2;14069:1;14065:10;14060:15;;14036:113;;;14167:6;14164:1;14161:13;14158:101;;;14247:1;14238:6;14233:3;14229:16;14222:27;14158:101;14007:258;13958:307;;;:::o;14271:320::-;14315:6;14352:1;14346:4;14342:12;14332:22;;14399:1;14393:4;14389:12;14420:18;14410:81;;14476:4;14468:6;14464:17;14454:27;;14410:81;14538:2;14530:6;14527:14;14507:18;14504:38;14501:84;;;14557:18;;:::i;:::-;14501:84;14322:269;14271:320;;;:::o;14597:180::-;14645:77;14642:1;14635:88;14742:4;14739:1;14732:15;14766:4;14763:1;14756:15;14783:180;14831:77;14828:1;14821:88;14928:4;14925:1;14918:15;14952:4;14949:1;14942:15;15092:117;15201:1;15198;15191:12;15215:102;15256:6;15307:2;15303:7;15298:2;15291:5;15287:14;15283:28;15273:38;;15215:102;;;:::o;15323:222::-;15463:34;15459:1;15451:6;15447:14;15440:58;15532:5;15527:2;15519:6;15515:15;15508:30;15323:222;:::o;15551:221::-;15691:34;15687:1;15679:6;15675:14;15668:58;15760:4;15755:2;15747:6;15743:15;15736:29;15551:221;:::o;15778:::-;15918:34;15914:1;15906:6;15902:14;15895:58;15987:4;15982:2;15974:6;15970:15;15963:29;15778:221;:::o;16005:225::-;16145:34;16141:1;16133:6;16129:14;16122:58;16214:8;16209:2;16201:6;16197:15;16190:33;16005:225;:::o;16236:227::-;16376:34;16372:1;16364:6;16360:14;16353:58;16445:10;16440:2;16432:6;16428:15;16421:35;16236:227;:::o;16469:223::-;16609:34;16605:1;16597:6;16593:14;16586:58;16678:6;16673:2;16665:6;16661:15;16654:31;16469:223;:::o;16698:220::-;16838:34;16834:1;16826:6;16822:14;16815:58;16907:3;16902:2;16894:6;16890:15;16883:28;16698:220;:::o;16924:224::-;17064:34;17060:1;17052:6;17048:14;17041:58;17133:7;17128:2;17120:6;17116:15;17109:32;16924:224;:::o;17154:223::-;17294:34;17290:1;17282:6;17278:14;17271:58;17363:6;17358:2;17350:6;17346:15;17339:31;17154:223;:::o;17383:224::-;17523:34;17519:1;17511:6;17507:14;17500:58;17592:7;17587:2;17579:6;17575:15;17568:32;17383:224;:::o;17613:122::-;17686:24;17704:5;17686:24;:::i;:::-;17679:5;17676:35;17666:63;;17725:1;17722;17715:12;17666:63;17613:122;:::o;17741:::-;17814:24;17832:5;17814:24;:::i;:::-;17807:5;17804:35;17794:63;;17853:1;17850;17843:12;17794:63;17741:122;:::o

Swarm Source

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