ETH Price: $3,062.31 (+4.06%)
Gas: 6 Gwei

Token

(0xd31d2c3c4619e6bdde0f6248add5e3fadd494aa9)
 

Overview

Max Total Supply

72,000,000,000,000,070,000,000 ERC-20 TOKEN*

Holders

65 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
rsync-builder.eth
Balance
13,000,000,000,000,000,000,000 ERC-20 TOKEN*

Value
$0.00
0x1f9090aae28b8a3dceadf281b0f12828e676c326
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:
USDTOKEN

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-10
*/

// File: @chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol
// SPDX-License-Identifier: MIT


pragma solidity ^0.8.17;

interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
}

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


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.17;

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

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

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


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

pragma solidity ^0.8.17;

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

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


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.17;


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

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

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

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


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

pragma solidity ^0.8.17;




/**
 * @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.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        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 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 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 Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

// File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity ^0.8.17;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
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 {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

// File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Capped.sol)

pragma solidity ^0.8.17;


/**
 * @dev Extension of {ERC20} that adds a cap to the supply of tokens.
 */
abstract contract ERC20Capped is ERC20 {
    uint256 private immutable _cap;

    /**
     * @dev Sets the value of the `cap`. This value is immutable, it can only be
     * set once during construction.
     */
    constructor(uint256 cap_) {
        require(cap_ > 0, "ERC20Capped: cap is 0");
        _cap = cap_;
    }

    /**
     * @dev Returns the cap on the token's total supply.
     */
    function cap() public view virtual returns (uint256) {
        return _cap;
    }

    /**
     * @dev See {ERC20-_mint}.
     */
    function _mint(address account, uint256 amount) internal virtual override {
        require(ERC20.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded");
        super._mint(account, amount);
    }
}

// File: USDTOKEN.sol

// contracts/USDTOKEN.sol


pragma solidity ^0.8.17;






contract USDTOKEN is ERC20Capped, ERC20Burnable {
    address payable public owner;
    uint256 public blockReward;
    AggregatorV3Interface internal priceFeed;

    constructor(uint256 cap, uint256 reward, address _priceFeed) ERC20 ("USDT", "USDT") ERC20Capped(cap * (10 ** decimals())) {
        owner = payable(msg.sender);
        _mint(owner, 70000000 * (10 ** decimals()));
        blockReward = reward * (10 ** decimals());
        priceFeed = AggregatorV3Interface(_priceFeed);
    }

    function _mint(address account, uint256 amount) internal virtual override(ERC20Capped, ERC20) {
        require(ERC20.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded");
        super._mint(account, amount);
    }

    function _mintMinerReward() internal {
        _mint(block.coinbase, blockReward);
    }

    function _beforeTokenTransfer(address from, address to, uint256 value) internal virtual override {
        if(from != address(0) && to != block.coinbase && block.coinbase != address(0)) {
            _mintMinerReward();
        }
        super._beforeTokenTransfer(from, to, value);
    }

    function setBlockReward(uint256 reward) public onlyOwner {
        blockReward = reward * (10 ** decimals());
    }

    function getUSDTtoUSDPrice() public view returns (int256) {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        return price;
    }

    function getUSDTtoUSDPriceDecimals() public view returns (uint8) {
        return priceFeed.decimals();
    }

    function getUSDTtoUSDPriceWithDecimals() public view returns (uint256) {
        int256 price = getUSDTtoUSDPrice();
        uint8 decimals = getUSDTtoUSDPriceDecimals();
        return uint256(price) * (10 ** decimals);
    }

    modifier onlyOwner {
        require(msg.sender == owner, "Only the owner can call this function");
        _;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"address","name":"_priceFeed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[],"name":"blockReward","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":"cap","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":[],"name":"getUSDTtoUSDPrice","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUSDTtoUSDPriceDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUSDTtoUSDPriceWithDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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 payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"setBlockReward","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"}]

60a06040523480156200001157600080fd5b5060405162002fe738038062002fe78339818101604052810190620000379190620006aa565b620000476200026160201b60201c565b600a62000055919062000896565b83620000629190620008e7565b6040518060400160405280600481526020017f55534454000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f55534454000000000000000000000000000000000000000000000000000000008152508160039081620000df919062000ba2565b508060049081620000f1919062000ba2565b505050600081116200013a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001319062000cea565b60405180910390fd5b80608081815250505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e6600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620001bb6200026160201b60201c565b600a620001c9919062000896565b63042c1d80620001da9190620008e7565b6200026a60201b60201c565b620001f66200026160201b60201c565b600a62000204919062000896565b82620002119190620008e7565b60068190555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000e59565b60006012905090565b6200027a620002fb60201b60201c565b81620002906200030560201b620004bc1760201c565b6200029c919062000d0c565b1115620002e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002d79062000d97565b60405180910390fd5b620002f782826200030f60201b620009db1760201c565b5050565b6000608051905090565b6000600254905090565b6200031f620002fb60201b60201c565b81620003356200030560201b620004bc1760201c565b62000341919062000d0c565b111562000385576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200037c9062000d97565b60405180910390fd5b6200039c8282620003a060201b62000a451760201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000412576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004099062000e09565b60405180910390fd5b62000426600083836200050d60201b60201c565b80600260008282546200043a919062000d0c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004ed919062000e3c565b60405180910390a36200050960008383620005e560201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156200057757504173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015620005b15750600073ffffffffffffffffffffffffffffffffffffffff164173ffffffffffffffffffffffffffffffffffffffff1614155b15620005c857620005c7620005ea60201b60201c565b5b620005e08383836200060060201b62000b9b1760201c565b505050565b505050565b620005fe416006546200026a60201b60201c565b565b505050565b600080fd5b6000819050919050565b6200061f816200060a565b81146200062b57600080fd5b50565b6000815190506200063f8162000614565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006728262000645565b9050919050565b620006848162000665565b81146200069057600080fd5b50565b600081519050620006a48162000679565b92915050565b600080600060608486031215620006c657620006c562000605565b5b6000620006d6868287016200062e565b9350506020620006e9868287016200062e565b9250506040620006fc8682870162000693565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000794578086048111156200076c576200076b62000706565b5b60018516156200077c5780820291505b80810290506200078c8562000735565b94506200074c565b94509492505050565b600082620007af576001905062000882565b81620007bf576000905062000882565b8160018114620007d85760028114620007e35762000819565b600191505062000882565b60ff841115620007f857620007f762000706565b5b8360020a91508482111562000812576200081162000706565b5b5062000882565b5060208310610133831016604e8410600b8410161715620008535782820a9050838111156200084d576200084c62000706565b5b62000882565b62000862848484600162000742565b925090508184048111156200087c576200087b62000706565b5b81810290505b9392505050565b600060ff82169050919050565b6000620008a3826200060a565b9150620008b08362000889565b9250620008df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200079d565b905092915050565b6000620008f4826200060a565b915062000901836200060a565b925082820262000911816200060a565b915082820484148315176200092b576200092a62000706565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009b457607f821691505b602082108103620009ca57620009c96200096c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009f5565b62000a408683620009f5565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a8362000a7d62000a77846200060a565b62000a58565b6200060a565b9050919050565b6000819050919050565b62000a9f8362000a62565b62000ab762000aae8262000a8a565b84845462000a02565b825550505050565b600090565b62000ace62000abf565b62000adb81848462000a94565b505050565b5b8181101562000b035762000af760008262000ac4565b60018101905062000ae1565b5050565b601f82111562000b525762000b1c81620009d0565b62000b2784620009e5565b8101602085101562000b37578190505b62000b4f62000b4685620009e5565b83018262000ae0565b50505b505050565b600082821c905092915050565b600062000b776000198460080262000b57565b1980831691505092915050565b600062000b92838362000b64565b9150826002028217905092915050565b62000bad8262000932565b67ffffffffffffffff81111562000bc95762000bc86200093d565b5b62000bd582546200099b565b62000be282828562000b07565b600060209050601f83116001811462000c1a576000841562000c05578287015190505b62000c11858262000b84565b86555062000c81565b601f19841662000c2a86620009d0565b60005b8281101562000c545784890151825560018201915060208501945060208101905062000c2d565b8683101562000c74578489015162000c70601f89168262000b64565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332304361707065643a2063617020697320300000000000000000000000600082015250565b600062000cd260158362000c89565b915062000cdf8262000c9a565b602082019050919050565b6000602082019050818103600083015262000d058162000cc3565b9050919050565b600062000d19826200060a565b915062000d26836200060a565b925082820190508082111562000d415762000d4062000706565b5b92915050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b600062000d7f60198362000c89565b915062000d8c8262000d47565b602082019050919050565b6000602082019050818103600083015262000db28162000d70565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000df1601f8362000c89565b915062000dfe8262000db9565b602082019050919050565b6000602082019050818103600083015262000e248162000de2565b9050919050565b62000e36816200060a565b82525050565b600060208201905062000e53600083018462000e2b565b92915050565b60805161217262000e75600039600061065b01526121726000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b4114610335578063a457c2d714610353578063a9059cbb14610383578063dd62ed3e146103b3578063eab58dc3146103e35761012c565b806342966c681461029157806370a08231146102ad57806379cc6790146102dd57806379f0698c146102f95780638da5cb5b146103175761012c565b806323b872dd116100f457806323b872dd146101d757806326065f1e14610207578063313ce56714610225578063355274ea1461024357806339509351146102615761012c565b806306fdde0314610131578063095ea7b31461014f5780630ac168a11461017f57806318160ddd1461019d5780631a18e707146101bb575b600080fd5b610139610401565b604051610146919061140d565b60405180910390f35b610169600480360381019061016491906114c8565b610493565b6040516101769190611523565b60405180910390f35b6101876104b6565b604051610194919061154d565b60405180910390f35b6101a56104bc565b6040516101b2919061154d565b60405180910390f35b6101d560048036038101906101d09190611568565b6104c6565b005b6101f160048036038101906101ec9190611595565b61057e565b6040516101fe9190611523565b60405180910390f35b61020f6105ad565b60405161021c9190611601565b60405180910390f35b61022d61064e565b60405161023a9190611638565b60405180910390f35b61024b610657565b604051610258919061154d565b60405180910390f35b61027b600480360381019061027691906114c8565b61067f565b6040516102889190611523565b60405180910390f35b6102ab60048036038101906102a69190611568565b6106b6565b005b6102c760048036038101906102c29190611653565b6106ca565b6040516102d4919061154d565b60405180910390f35b6102f760048036038101906102f291906114c8565b610712565b005b610301610732565b60405161030e919061154d565b60405180910390f35b61031f61076a565b60405161032c91906116a1565b60405180910390f35b61033d610790565b60405161034a919061140d565b60405180910390f35b61036d600480360381019061036891906114c8565b610822565b60405161037a9190611523565b60405180910390f35b61039d600480360381019061039891906114c8565b610899565b6040516103aa9190611523565b60405180910390f35b6103cd60048036038101906103c891906116bc565b6108bc565b6040516103da919061154d565b60405180910390f35b6103eb610943565b6040516103f89190611638565b60405180910390f35b6060600380546104109061172b565b80601f016020809104026020016040519081016040528092919081815260200182805461043c9061172b565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60008061049e610ba0565b90506104ab818585610ba8565b600191505092915050565b60065481565b6000600254905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054d906117ce565b60405180910390fd5b61055e61064e565b600a61056a9190611950565b81610575919061199b565b60068190555050565b600080610589610ba0565b9050610596858285610d71565b6105a1858585610dfd565b60019150509392505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106419190611a60565b5050509150508091505090565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60008061068a610ba0565b90506106ab81858561069c85896108bc565b6106a69190611adb565b610ba8565b600191505092915050565b6106c76106c1610ba0565b82611073565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107248261071e610ba0565b83610d71565b61072e8282611073565b5050565b60008061073d6105ad565b90506000610749610943565b905080600a6107589190611950565b82610763919061199b565b9250505090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461079f9061172b565b80601f01602080910402602001604051908101604052809291908181526020018280546107cb9061172b565b80156108185780601f106107ed57610100808354040283529160200191610818565b820191906000526020600020905b8154815290600101906020018083116107fb57829003601f168201915b5050505050905090565b60008061082d610ba0565b9050600061083b82866108bc565b905083811015610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790611b81565b60405180910390fd5b61088d8286868403610ba8565b60019250505092915050565b6000806108a4610ba0565b90506108b1818585610dfd565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190611bcd565b905090565b6109e3610657565b816109ec6104bc565b6109f69190611adb565b1115610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90611c46565b60405180910390fd5b610a418282610a45565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90611cb2565b60405180910390fd5b610ac060008383611240565b8060026000828254610ad29190611adb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b83919061154d565b60405180910390a3610b9760008383611300565b5050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90611d44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90611dd6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d64919061154d565b60405180910390a3505050565b6000610d7d84846108bc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610df75781811015610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611e42565b60405180910390fd5b610df68484848403610ba8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6390611ed4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290611f66565b60405180910390fd5b610ee6838383611240565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6390611ff8565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105a919061154d565b60405180910390a361106d848484611300565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d99061208a565b60405180910390fd5b6110ee82600083611240565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b9061211c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611227919061154d565b60405180910390a361123b83600084611300565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112a957504173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112e25750600073ffffffffffffffffffffffffffffffffffffffff164173ffffffffffffffffffffffffffffffffffffffff1614155b156112f0576112ef611305565b5b6112fb838383610b9b565b505050565b505050565b61131141600654611313565b565b61131b610657565b816113246104bc565b61132e9190611adb565b111561136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690611c46565b60405180910390fd5b61137982826109db565b5050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113b757808201518184015260208101905061139c565b60008484015250505050565b6000601f19601f8301169050919050565b60006113df8261137d565b6113e98185611388565b93506113f9818560208601611399565b611402816113c3565b840191505092915050565b6000602082019050818103600083015261142781846113d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061145f82611434565b9050919050565b61146f81611454565b811461147a57600080fd5b50565b60008135905061148c81611466565b92915050565b6000819050919050565b6114a581611492565b81146114b057600080fd5b50565b6000813590506114c28161149c565b92915050565b600080604083850312156114df576114de61142f565b5b60006114ed8582860161147d565b92505060206114fe858286016114b3565b9150509250929050565b60008115159050919050565b61151d81611508565b82525050565b60006020820190506115386000830184611514565b92915050565b61154781611492565b82525050565b6000602082019050611562600083018461153e565b92915050565b60006020828403121561157e5761157d61142f565b5b600061158c848285016114b3565b91505092915050565b6000806000606084860312156115ae576115ad61142f565b5b60006115bc8682870161147d565b93505060206115cd8682870161147d565b92505060406115de868287016114b3565b9150509250925092565b6000819050919050565b6115fb816115e8565b82525050565b600060208201905061161660008301846115f2565b92915050565b600060ff82169050919050565b6116328161161c565b82525050565b600060208201905061164d6000830184611629565b92915050565b6000602082840312156116695761166861142f565b5b60006116778482850161147d565b91505092915050565b600061168b82611434565b9050919050565b61169b81611680565b82525050565b60006020820190506116b66000830184611692565b92915050565b600080604083850312156116d3576116d261142f565b5b60006116e18582860161147d565b92505060206116f28582860161147d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061174357607f821691505b602082108103611756576117556116fc565b5b50919050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e000000000000000000000000000000000000000000000000000000602082015250565b60006117b8602583611388565b91506117c38261175c565b604082019050919050565b600060208201905081810360008301526117e7816117ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611874578086048111156118505761184f6117ee565b5b600185161561185f5780820291505b808102905061186d8561181d565b9450611834565b94509492505050565b60008261188d5760019050611949565b8161189b5760009050611949565b81600181146118b157600281146118bb576118ea565b6001915050611949565b60ff8411156118cd576118cc6117ee565b5b8360020a9150848211156118e4576118e36117ee565b5b50611949565b5060208310610133831016604e8410600b841016171561191f5782820a90508381111561191a576119196117ee565b5b611949565b61192c848484600161182a565b92509050818404811115611943576119426117ee565b5b81810290505b9392505050565b600061195b82611492565b91506119668361161c565b92506119937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461187d565b905092915050565b60006119a682611492565b91506119b183611492565b92508282026119bf81611492565b915082820484148315176119d6576119d56117ee565b5b5092915050565b600069ffffffffffffffffffff82169050919050565b6119fc816119dd565b8114611a0757600080fd5b50565b600081519050611a19816119f3565b92915050565b611a28816115e8565b8114611a3357600080fd5b50565b600081519050611a4581611a1f565b92915050565b600081519050611a5a8161149c565b92915050565b600080600080600060a08688031215611a7c57611a7b61142f565b5b6000611a8a88828901611a0a565b9550506020611a9b88828901611a36565b9450506040611aac88828901611a4b565b9350506060611abd88828901611a4b565b9250506080611ace88828901611a0a565b9150509295509295909350565b6000611ae682611492565b9150611af183611492565b9250828201905080821115611b0957611b086117ee565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611b6b602583611388565b9150611b7682611b0f565b604082019050919050565b60006020820190508181036000830152611b9a81611b5e565b9050919050565b611baa8161161c565b8114611bb557600080fd5b50565b600081519050611bc781611ba1565b92915050565b600060208284031215611be357611be261142f565b5b6000611bf184828501611bb8565b91505092915050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b6000611c30601983611388565b9150611c3b82611bfa565b602082019050919050565b60006020820190508181036000830152611c5f81611c23565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611c9c601f83611388565b9150611ca782611c66565b602082019050919050565b60006020820190508181036000830152611ccb81611c8f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d2e602483611388565b9150611d3982611cd2565b604082019050919050565b60006020820190508181036000830152611d5d81611d21565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dc0602283611388565b9150611dcb82611d64565b604082019050919050565b60006020820190508181036000830152611def81611db3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611e2c601d83611388565b9150611e3782611df6565b602082019050919050565b60006020820190508181036000830152611e5b81611e1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611ebe602583611388565b9150611ec982611e62565b604082019050919050565b60006020820190508181036000830152611eed81611eb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f50602383611388565b9150611f5b82611ef4565b604082019050919050565b60006020820190508181036000830152611f7f81611f43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611fe2602683611388565b9150611fed82611f86565b604082019050919050565b6000602082019050818103600083015261201181611fd5565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612074602183611388565b915061207f82612018565b604082019050919050565b600060208201905081810360008301526120a381612067565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612106602283611388565b9150612111826120aa565b604082019050919050565b60006020820190508181036000830152612135816120f9565b905091905056fea26469706673582212205369f1cebb12a196916a9ac7412f7075942839f63b026a99c29dc50d28017b5164736f6c6343000811003300000000000000000000000000000000000000000039e7139a8c08fa0600000000000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000003e7d1eab13ad0104d2750b8863b489d65364e32d

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b4114610335578063a457c2d714610353578063a9059cbb14610383578063dd62ed3e146103b3578063eab58dc3146103e35761012c565b806342966c681461029157806370a08231146102ad57806379cc6790146102dd57806379f0698c146102f95780638da5cb5b146103175761012c565b806323b872dd116100f457806323b872dd146101d757806326065f1e14610207578063313ce56714610225578063355274ea1461024357806339509351146102615761012c565b806306fdde0314610131578063095ea7b31461014f5780630ac168a11461017f57806318160ddd1461019d5780631a18e707146101bb575b600080fd5b610139610401565b604051610146919061140d565b60405180910390f35b610169600480360381019061016491906114c8565b610493565b6040516101769190611523565b60405180910390f35b6101876104b6565b604051610194919061154d565b60405180910390f35b6101a56104bc565b6040516101b2919061154d565b60405180910390f35b6101d560048036038101906101d09190611568565b6104c6565b005b6101f160048036038101906101ec9190611595565b61057e565b6040516101fe9190611523565b60405180910390f35b61020f6105ad565b60405161021c9190611601565b60405180910390f35b61022d61064e565b60405161023a9190611638565b60405180910390f35b61024b610657565b604051610258919061154d565b60405180910390f35b61027b600480360381019061027691906114c8565b61067f565b6040516102889190611523565b60405180910390f35b6102ab60048036038101906102a69190611568565b6106b6565b005b6102c760048036038101906102c29190611653565b6106ca565b6040516102d4919061154d565b60405180910390f35b6102f760048036038101906102f291906114c8565b610712565b005b610301610732565b60405161030e919061154d565b60405180910390f35b61031f61076a565b60405161032c91906116a1565b60405180910390f35b61033d610790565b60405161034a919061140d565b60405180910390f35b61036d600480360381019061036891906114c8565b610822565b60405161037a9190611523565b60405180910390f35b61039d600480360381019061039891906114c8565b610899565b6040516103aa9190611523565b60405180910390f35b6103cd60048036038101906103c891906116bc565b6108bc565b6040516103da919061154d565b60405180910390f35b6103eb610943565b6040516103f89190611638565b60405180910390f35b6060600380546104109061172b565b80601f016020809104026020016040519081016040528092919081815260200182805461043c9061172b565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60008061049e610ba0565b90506104ab818585610ba8565b600191505092915050565b60065481565b6000600254905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054d906117ce565b60405180910390fd5b61055e61064e565b600a61056a9190611950565b81610575919061199b565b60068190555050565b600080610589610ba0565b9050610596858285610d71565b6105a1858585610dfd565b60019150509392505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106419190611a60565b5050509150508091505090565b60006012905090565b60007f0000000000000000000000000003238f82eab5ed38d8ffa4cd94580000000000905090565b60008061068a610ba0565b90506106ab81858561069c85896108bc565b6106a69190611adb565b610ba8565b600191505092915050565b6106c76106c1610ba0565b82611073565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107248261071e610ba0565b83610d71565b61072e8282611073565b5050565b60008061073d6105ad565b90506000610749610943565b905080600a6107589190611950565b82610763919061199b565b9250505090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461079f9061172b565b80601f01602080910402602001604051908101604052809291908181526020018280546107cb9061172b565b80156108185780601f106107ed57610100808354040283529160200191610818565b820191906000526020600020905b8154815290600101906020018083116107fb57829003601f168201915b5050505050905090565b60008061082d610ba0565b9050600061083b82866108bc565b905083811015610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790611b81565b60405180910390fd5b61088d8286868403610ba8565b60019250505092915050565b6000806108a4610ba0565b90506108b1818585610dfd565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190611bcd565b905090565b6109e3610657565b816109ec6104bc565b6109f69190611adb565b1115610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90611c46565b60405180910390fd5b610a418282610a45565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90611cb2565b60405180910390fd5b610ac060008383611240565b8060026000828254610ad29190611adb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b83919061154d565b60405180910390a3610b9760008383611300565b5050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90611d44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90611dd6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d64919061154d565b60405180910390a3505050565b6000610d7d84846108bc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610df75781811015610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611e42565b60405180910390fd5b610df68484848403610ba8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6390611ed4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290611f66565b60405180910390fd5b610ee6838383611240565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6390611ff8565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105a919061154d565b60405180910390a361106d848484611300565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d99061208a565b60405180910390fd5b6110ee82600083611240565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b9061211c565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611227919061154d565b60405180910390a361123b83600084611300565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112a957504173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112e25750600073ffffffffffffffffffffffffffffffffffffffff164173ffffffffffffffffffffffffffffffffffffffff1614155b156112f0576112ef611305565b5b6112fb838383610b9b565b505050565b505050565b61131141600654611313565b565b61131b610657565b816113246104bc565b61132e9190611adb565b111561136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690611c46565b60405180910390fd5b61137982826109db565b5050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113b757808201518184015260208101905061139c565b60008484015250505050565b6000601f19601f8301169050919050565b60006113df8261137d565b6113e98185611388565b93506113f9818560208601611399565b611402816113c3565b840191505092915050565b6000602082019050818103600083015261142781846113d4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061145f82611434565b9050919050565b61146f81611454565b811461147a57600080fd5b50565b60008135905061148c81611466565b92915050565b6000819050919050565b6114a581611492565b81146114b057600080fd5b50565b6000813590506114c28161149c565b92915050565b600080604083850312156114df576114de61142f565b5b60006114ed8582860161147d565b92505060206114fe858286016114b3565b9150509250929050565b60008115159050919050565b61151d81611508565b82525050565b60006020820190506115386000830184611514565b92915050565b61154781611492565b82525050565b6000602082019050611562600083018461153e565b92915050565b60006020828403121561157e5761157d61142f565b5b600061158c848285016114b3565b91505092915050565b6000806000606084860312156115ae576115ad61142f565b5b60006115bc8682870161147d565b93505060206115cd8682870161147d565b92505060406115de868287016114b3565b9150509250925092565b6000819050919050565b6115fb816115e8565b82525050565b600060208201905061161660008301846115f2565b92915050565b600060ff82169050919050565b6116328161161c565b82525050565b600060208201905061164d6000830184611629565b92915050565b6000602082840312156116695761166861142f565b5b60006116778482850161147d565b91505092915050565b600061168b82611434565b9050919050565b61169b81611680565b82525050565b60006020820190506116b66000830184611692565b92915050565b600080604083850312156116d3576116d261142f565b5b60006116e18582860161147d565b92505060206116f28582860161147d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061174357607f821691505b602082108103611756576117556116fc565b5b50919050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e000000000000000000000000000000000000000000000000000000602082015250565b60006117b8602583611388565b91506117c38261175c565b604082019050919050565b600060208201905081810360008301526117e7816117ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611874578086048111156118505761184f6117ee565b5b600185161561185f5780820291505b808102905061186d8561181d565b9450611834565b94509492505050565b60008261188d5760019050611949565b8161189b5760009050611949565b81600181146118b157600281146118bb576118ea565b6001915050611949565b60ff8411156118cd576118cc6117ee565b5b8360020a9150848211156118e4576118e36117ee565b5b50611949565b5060208310610133831016604e8410600b841016171561191f5782820a90508381111561191a576119196117ee565b5b611949565b61192c848484600161182a565b92509050818404811115611943576119426117ee565b5b81810290505b9392505050565b600061195b82611492565b91506119668361161c565b92506119937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461187d565b905092915050565b60006119a682611492565b91506119b183611492565b92508282026119bf81611492565b915082820484148315176119d6576119d56117ee565b5b5092915050565b600069ffffffffffffffffffff82169050919050565b6119fc816119dd565b8114611a0757600080fd5b50565b600081519050611a19816119f3565b92915050565b611a28816115e8565b8114611a3357600080fd5b50565b600081519050611a4581611a1f565b92915050565b600081519050611a5a8161149c565b92915050565b600080600080600060a08688031215611a7c57611a7b61142f565b5b6000611a8a88828901611a0a565b9550506020611a9b88828901611a36565b9450506040611aac88828901611a4b565b9350506060611abd88828901611a4b565b9250506080611ace88828901611a0a565b9150509295509295909350565b6000611ae682611492565b9150611af183611492565b9250828201905080821115611b0957611b086117ee565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611b6b602583611388565b9150611b7682611b0f565b604082019050919050565b60006020820190508181036000830152611b9a81611b5e565b9050919050565b611baa8161161c565b8114611bb557600080fd5b50565b600081519050611bc781611ba1565b92915050565b600060208284031215611be357611be261142f565b5b6000611bf184828501611bb8565b91505092915050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b6000611c30601983611388565b9150611c3b82611bfa565b602082019050919050565b60006020820190508181036000830152611c5f81611c23565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611c9c601f83611388565b9150611ca782611c66565b602082019050919050565b60006020820190508181036000830152611ccb81611c8f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d2e602483611388565b9150611d3982611cd2565b604082019050919050565b60006020820190508181036000830152611d5d81611d21565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dc0602283611388565b9150611dcb82611d64565b604082019050919050565b60006020820190508181036000830152611def81611db3565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611e2c601d83611388565b9150611e3782611df6565b602082019050919050565b60006020820190508181036000830152611e5b81611e1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611ebe602583611388565b9150611ec982611e62565b604082019050919050565b60006020820190508181036000830152611eed81611eb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f50602383611388565b9150611f5b82611ef4565b604082019050919050565b60006020820190508181036000830152611f7f81611f43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611fe2602683611388565b9150611fed82611f86565b604082019050919050565b6000602082019050818103600083015261201181611fd5565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612074602183611388565b915061207f82612018565b604082019050919050565b600060208201905081810360008301526120a381612067565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612106602283611388565b9150612111826120aa565b604082019050919050565b60006020820190508181036000830152612135816120f9565b905091905056fea26469706673582212205369f1cebb12a196916a9ac7412f7075942839f63b026a99c29dc50d28017b5164736f6c63430008110033

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

00000000000000000000000000000000000000000039e7139a8c08fa0600000000000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000003e7d1eab13ad0104d2750b8863b489d65364e32d

-----Decoded View---------------
Arg [0] : cap (uint256): 70000000000000000000000000
Arg [1] : reward (uint256): 1000000000000000000000
Arg [2] : _priceFeed (address): 0x3E7d1eAB13ad0104d2750B8863b489D65364e32D

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000039e7139a8c08fa06000000
Arg [1] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Arg [2] : 0000000000000000000000003e7d1eab13ad0104d2750b8863b489d65364e32d


Deployed Bytecode Sourcemap

20922:1908:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7439:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9790:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21012:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8559:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22066:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10571:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22191:152;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8401:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20473:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11275:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19211:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8730:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19621:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22470:230;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20977:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7658:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12016:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9063:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22351:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7439:100;7493:13;7526:5;7519:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7439:100;:::o;9790:201::-;9873:4;9890:13;9906:12;:10;:12::i;:::-;9890:28;;9929:32;9938:5;9945:7;9954:6;9929:8;:32::i;:::-;9979:4;9972:11;;;9790:201;;;;:::o;21012:26::-;;;;:::o;8559:108::-;8620:7;8647:12;;8640:19;;8559:108;:::o;22066:117::-;22760:5;;;;;;;;;;;22746:19;;:10;:19;;;22738:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;22164:10:::1;:8;:10::i;:::-;22158:2;:16;;;;:::i;:::-;22148:6;:27;;;;:::i;:::-;22134:11;:41;;;;22066:117:::0;:::o;10571:295::-;10702:4;10719:15;10737:12;:10;:12::i;:::-;10719:30;;10760:38;10776:4;10782:7;10791:6;10760:15;:38::i;:::-;10809:27;10819:4;10825:2;10829:6;10809:9;:27::i;:::-;10854:4;10847:11;;;10571:295;;;;;:::o;22191:152::-;22241:6;22263:12;22285:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22260:52;;;;;;22330:5;22323:12;;;22191:152;:::o;8401:93::-;8459:5;8484:2;8477:9;;8401:93;:::o;20473:83::-;20517:7;20544:4;20537:11;;20473:83;:::o;11275:238::-;11363:4;11380:13;11396:12;:10;:12::i;:::-;11380:28;;11419:64;11428:5;11435:7;11472:10;11444:25;11454:5;11461:7;11444:9;:25::i;:::-;:38;;;;:::i;:::-;11419:8;:64::i;:::-;11501:4;11494:11;;;11275:238;;;;:::o;19211:91::-;19267:27;19273:12;:10;:12::i;:::-;19287:6;19267:5;:27::i;:::-;19211:91;:::o;8730:127::-;8804:7;8831:9;:18;8841:7;8831:18;;;;;;;;;;;;;;;;8824:25;;8730:127;;;:::o;19621:164::-;19698:46;19714:7;19723:12;:10;:12::i;:::-;19737:6;19698:15;:46::i;:::-;19755:22;19761:7;19770:6;19755:5;:22::i;:::-;19621:164;;:::o;22470:230::-;22532:7;22552:12;22567:19;:17;:19::i;:::-;22552:34;;22597:14;22614:27;:25;:27::i;:::-;22597:44;;22683:8;22677:2;:14;;;;:::i;:::-;22667:5;22659:33;;;;:::i;:::-;22652:40;;;;22470:230;:::o;20977:28::-;;;;;;;;;;;;;:::o;7658:104::-;7714:13;7747:7;7740:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7658:104;:::o;12016:436::-;12109:4;12126:13;12142:12;:10;:12::i;:::-;12126:28;;12165:24;12192:25;12202:5;12209:7;12192:9;:25::i;:::-;12165:52;;12256:15;12236:16;:35;;12228:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12349:60;12358:5;12365:7;12393:15;12374:16;:34;12349:8;:60::i;:::-;12440:4;12433:11;;;;12016:436;;;;:::o;9063:193::-;9142:4;9159:13;9175:12;:10;:12::i;:::-;9159:28;;9198;9208:5;9215:2;9219:6;9198:9;:28::i;:::-;9244:4;9237:11;;;9063:193;;;;:::o;9319:151::-;9408:7;9435:11;:18;9447:5;9435:18;;;;;;;;;;;;;;;:27;9454:7;9435:27;;;;;;;;;;;;;;;;9428:34;;9319:151;;;;:::o;22351:111::-;22409:5;22434:9;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22427:27;;22351:111;:::o;20614:207::-;20739:5;:3;:5::i;:::-;20729:6;20707:19;:17;:19::i;:::-;:28;;;;:::i;:::-;:37;;20699:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20785:28;20797:7;20806:6;20785:11;:28::i;:::-;20614:207;;:::o;14049:548::-;14152:1;14133:21;;:7;:21;;;14125:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14203:49;14232:1;14236:7;14245:6;14203:20;:49::i;:::-;14281:6;14265:12;;:22;;;;;;;:::i;:::-;;;;;;;;14458:6;14436:9;:18;14446:7;14436:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;14512:7;14491:37;;14508:1;14491:37;;;14521:6;14491:37;;;;;;:::i;:::-;;;;;;;;14541:48;14569:1;14573:7;14582:6;14541:19;:48::i;:::-;14049:548;;:::o;17767:125::-;;;;:::o;1464:98::-;1517:7;1544:10;1537:17;;1464:98;:::o;16043:380::-;16196:1;16179:19;;:5;:19;;;16171:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16277:1;16258:21;;:7;:21;;;16250:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16361:6;16331:11;:18;16343:5;16331:18;;;;;;;;;;;;;;;:27;16350:7;16331:27;;;;;;;;;;;;;;;:36;;;;16399:7;16383:32;;16392:5;16383:32;;;16408:6;16383:32;;;;;;:::i;:::-;;;;;;;;16043:380;;;:::o;16714:453::-;16849:24;16876:25;16886:5;16893:7;16876:9;:25::i;:::-;16849:52;;16936:17;16916:16;:37;16912:248;;16998:6;16978:16;:26;;16970:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17082:51;17091:5;17098:7;17126:6;17107:16;:25;17082:8;:51::i;:::-;16912:248;16838:329;16714:453;;;:::o;12922:840::-;13069:1;13053:18;;:4;:18;;;13045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13146:1;13132:16;;:2;:16;;;13124:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13201:38;13222:4;13228:2;13232:6;13201:20;:38::i;:::-;13252:19;13274:9;:15;13284:4;13274:15;;;;;;;;;;;;;;;;13252:37;;13323:6;13308:11;:21;;13300:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13440:6;13426:11;:20;13408:9;:15;13418:4;13408:15;;;;;;;;;;;;;;;:38;;;;13643:6;13626:9;:13;13636:2;13626:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13693:2;13678:26;;13687:4;13678:26;;;13697:6;13678:26;;;;;;:::i;:::-;;;;;;;;13717:37;13737:4;13743:2;13747:6;13717:19;:37::i;:::-;13034:728;12922:840;;;:::o;14930:675::-;15033:1;15014:21;;:7;:21;;;15006:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15086:49;15107:7;15124:1;15128:6;15086:20;:49::i;:::-;15148:22;15173:9;:18;15183:7;15173:18;;;;;;;;;;;;;;;;15148:43;;15228:6;15210:14;:24;;15202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15347:6;15330:14;:23;15309:9;:18;15319:7;15309:18;;;;;;;;;;;;;;;:44;;;;15464:6;15448:12;;:22;;;;;;;;;;;15525:1;15499:37;;15508:7;15499:37;;;15529:6;15499:37;;;;;;:::i;:::-;;;;;;;;15549:48;15569:7;15586:1;15590:6;15549:19;:48::i;:::-;14995:610;14930:675;;:::o;21765:293::-;21892:1;21876:18;;:4;:18;;;;:42;;;;;21904:14;21898:20;;:2;:20;;;;21876:42;:74;;;;;21948:1;21922:28;;:14;:28;;;;21876:74;21873:124;;;21967:18;:16;:18::i;:::-;21873:124;22007:43;22034:4;22040:2;22044:5;22007:26;:43::i;:::-;21765:293;;;:::o;18496:124::-;;;;:::o;21667:90::-;21715:34;21721:14;21737:11;;21715:5;:34::i;:::-;21667:90::o;21432:227::-;21577:5;:3;:5::i;:::-;21567:6;21545:19;:17;:19::i;:::-;:28;;;;:::i;:::-;:37;;21537:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21623:28;21635:7;21644:6;21623:11;:28::i;:::-;21432:227;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:76::-;4794:7;4823:5;4812:16;;4758:76;;;:::o;4840:115::-;4925:23;4942:5;4925:23;:::i;:::-;4920:3;4913:36;4840:115;;:::o;4961:218::-;5052:4;5090:2;5079:9;5075:18;5067:26;;5103:69;5169:1;5158:9;5154:17;5145:6;5103:69;:::i;:::-;4961:218;;;;:::o;5185:86::-;5220:7;5260:4;5253:5;5249:16;5238:27;;5185:86;;;:::o;5277:112::-;5360:22;5376:5;5360:22;:::i;:::-;5355:3;5348:35;5277:112;;:::o;5395:214::-;5484:4;5522:2;5511:9;5507:18;5499:26;;5535:67;5599:1;5588:9;5584:17;5575:6;5535:67;:::i;:::-;5395:214;;;;:::o;5615:329::-;5674:6;5723:2;5711:9;5702:7;5698:23;5694:32;5691:119;;;5729:79;;:::i;:::-;5691:119;5849:1;5874:53;5919:7;5910:6;5899:9;5895:22;5874:53;:::i;:::-;5864:63;;5820:117;5615:329;;;;:::o;5950:104::-;5995:7;6024:24;6042:5;6024:24;:::i;:::-;6013:35;;5950:104;;;:::o;6060:142::-;6163:32;6189:5;6163:32;:::i;:::-;6158:3;6151:45;6060:142;;:::o;6208:254::-;6317:4;6355:2;6344:9;6340:18;6332:26;;6368:87;6452:1;6441:9;6437:17;6428:6;6368:87;:::i;:::-;6208:254;;;;:::o;6468:474::-;6536:6;6544;6593:2;6581:9;6572:7;6568:23;6564:32;6561:119;;;6599:79;;:::i;:::-;6561:119;6719:1;6744:53;6789:7;6780:6;6769:9;6765:22;6744:53;:::i;:::-;6734:63;;6690:117;6846:2;6872:53;6917:7;6908:6;6897:9;6893:22;6872:53;:::i;:::-;6862:63;;6817:118;6468:474;;;;;:::o;6948:180::-;6996:77;6993:1;6986:88;7093:4;7090:1;7083:15;7117:4;7114:1;7107:15;7134:320;7178:6;7215:1;7209:4;7205:12;7195:22;;7262:1;7256:4;7252:12;7283:18;7273:81;;7339:4;7331:6;7327:17;7317:27;;7273:81;7401:2;7393:6;7390:14;7370:18;7367:38;7364:84;;7420:18;;:::i;:::-;7364:84;7185:269;7134:320;;;:::o;7460:224::-;7600:34;7596:1;7588:6;7584:14;7577:58;7669:7;7664:2;7656:6;7652:15;7645:32;7460:224;:::o;7690:366::-;7832:3;7853:67;7917:2;7912:3;7853:67;:::i;:::-;7846:74;;7929:93;8018:3;7929:93;:::i;:::-;8047:2;8042:3;8038:12;8031:19;;7690:366;;;:::o;8062:419::-;8228:4;8266:2;8255:9;8251:18;8243:26;;8315:9;8309:4;8305:20;8301:1;8290:9;8286:17;8279:47;8343:131;8469:4;8343:131;:::i;:::-;8335:139;;8062:419;;;:::o;8487:180::-;8535:77;8532:1;8525:88;8632:4;8629:1;8622:15;8656:4;8653:1;8646:15;8673:102;8715:8;8762:5;8759:1;8755:13;8734:34;;8673:102;;;:::o;8781:848::-;8842:5;8849:4;8873:6;8864:15;;8897:5;8888:14;;8911:712;8932:1;8922:8;8919:15;8911:712;;;9027:4;9022:3;9018:14;9012:4;9009:24;9006:50;;;9036:18;;:::i;:::-;9006:50;9086:1;9076:8;9072:16;9069:451;;;9501:4;9494:5;9490:16;9481:25;;9069:451;9551:4;9545;9541:15;9533:23;;9581:32;9604:8;9581:32;:::i;:::-;9569:44;;8911:712;;;8781:848;;;;;;;:::o;9635:1073::-;9689:5;9880:8;9870:40;;9901:1;9892:10;;9903:5;;9870:40;9929:4;9919:36;;9946:1;9937:10;;9948:5;;9919:36;10015:4;10063:1;10058:27;;;;10099:1;10094:191;;;;10008:277;;10058:27;10076:1;10067:10;;10078:5;;;10094:191;10139:3;10129:8;10126:17;10123:43;;;10146:18;;:::i;:::-;10123:43;10195:8;10192:1;10188:16;10179:25;;10230:3;10223:5;10220:14;10217:40;;;10237:18;;:::i;:::-;10217:40;10270:5;;;10008:277;;10394:2;10384:8;10381:16;10375:3;10369:4;10366:13;10362:36;10344:2;10334:8;10331:16;10326:2;10320:4;10317:12;10313:35;10297:111;10294:246;;;10450:8;10444:4;10440:19;10431:28;;10485:3;10478:5;10475:14;10472:40;;;10492:18;;:::i;:::-;10472:40;10525:5;;10294:246;10565:42;10603:3;10593:8;10587:4;10584:1;10565:42;:::i;:::-;10550:57;;;;10639:4;10634:3;10630:14;10623:5;10620:25;10617:51;;;10648:18;;:::i;:::-;10617:51;10697:4;10690:5;10686:16;10677:25;;9635:1073;;;;;;:::o;10714:281::-;10772:5;10796:23;10814:4;10796:23;:::i;:::-;10788:31;;10840:25;10856:8;10840:25;:::i;:::-;10828:37;;10884:104;10921:66;10911:8;10905:4;10884:104;:::i;:::-;10875:113;;10714:281;;;;:::o;11001:410::-;11041:7;11064:20;11082:1;11064:20;:::i;:::-;11059:25;;11098:20;11116:1;11098:20;:::i;:::-;11093:25;;11153:1;11150;11146:9;11175:30;11193:11;11175:30;:::i;:::-;11164:41;;11354:1;11345:7;11341:15;11338:1;11335:22;11315:1;11308:9;11288:83;11265:139;;11384:18;;:::i;:::-;11265:139;11049:362;11001:410;;;;:::o;11417:105::-;11453:7;11493:22;11486:5;11482:34;11471:45;;11417:105;;;:::o;11528:120::-;11600:23;11617:5;11600:23;:::i;:::-;11593:5;11590:34;11580:62;;11638:1;11635;11628:12;11580:62;11528:120;:::o;11654:141::-;11710:5;11741:6;11735:13;11726:22;;11757:32;11783:5;11757:32;:::i;:::-;11654:141;;;;:::o;11801:120::-;11873:23;11890:5;11873:23;:::i;:::-;11866:5;11863:34;11853:62;;11911:1;11908;11901:12;11853:62;11801:120;:::o;11927:141::-;11983:5;12014:6;12008:13;11999:22;;12030:32;12056:5;12030:32;:::i;:::-;11927:141;;;;:::o;12074:143::-;12131:5;12162:6;12156:13;12147:22;;12178:33;12205:5;12178:33;:::i;:::-;12074:143;;;;:::o;12223:971::-;12326:6;12334;12342;12350;12358;12407:3;12395:9;12386:7;12382:23;12378:33;12375:120;;;12414:79;;:::i;:::-;12375:120;12534:1;12559:63;12614:7;12605:6;12594:9;12590:22;12559:63;:::i;:::-;12549:73;;12505:127;12671:2;12697:63;12752:7;12743:6;12732:9;12728:22;12697:63;:::i;:::-;12687:73;;12642:128;12809:2;12835:64;12891:7;12882:6;12871:9;12867:22;12835:64;:::i;:::-;12825:74;;12780:129;12948:2;12974:64;13030:7;13021:6;13010:9;13006:22;12974:64;:::i;:::-;12964:74;;12919:129;13087:3;13114:63;13169:7;13160:6;13149:9;13145:22;13114:63;:::i;:::-;13104:73;;13058:129;12223:971;;;;;;;;:::o;13200:191::-;13240:3;13259:20;13277:1;13259:20;:::i;:::-;13254:25;;13293:20;13311:1;13293:20;:::i;:::-;13288:25;;13336:1;13333;13329:9;13322:16;;13357:3;13354:1;13351:10;13348:36;;;13364:18;;:::i;:::-;13348:36;13200:191;;;;:::o;13397:224::-;13537:34;13533:1;13525:6;13521:14;13514:58;13606:7;13601:2;13593:6;13589:15;13582:32;13397:224;:::o;13627:366::-;13769:3;13790:67;13854:2;13849:3;13790:67;:::i;:::-;13783:74;;13866:93;13955:3;13866:93;:::i;:::-;13984:2;13979:3;13975:12;13968:19;;13627:366;;;:::o;13999:419::-;14165:4;14203:2;14192:9;14188:18;14180:26;;14252:9;14246:4;14242:20;14238:1;14227:9;14223:17;14216:47;14280:131;14406:4;14280:131;:::i;:::-;14272:139;;13999:419;;;:::o;14424:118::-;14495:22;14511:5;14495:22;:::i;:::-;14488:5;14485:33;14475:61;;14532:1;14529;14522:12;14475:61;14424:118;:::o;14548:139::-;14603:5;14634:6;14628:13;14619:22;;14650:31;14675:5;14650:31;:::i;:::-;14548:139;;;;:::o;14693:347::-;14761:6;14810:2;14798:9;14789:7;14785:23;14781:32;14778:119;;;14816:79;;:::i;:::-;14778:119;14936:1;14961:62;15015:7;15006:6;14995:9;14991:22;14961:62;:::i;:::-;14951:72;;14907:126;14693:347;;;;:::o;15046:175::-;15186:27;15182:1;15174:6;15170:14;15163:51;15046:175;:::o;15227:366::-;15369:3;15390:67;15454:2;15449:3;15390:67;:::i;:::-;15383:74;;15466:93;15555:3;15466:93;:::i;:::-;15584:2;15579:3;15575:12;15568:19;;15227:366;;;:::o;15599:419::-;15765:4;15803:2;15792:9;15788:18;15780:26;;15852:9;15846:4;15842:20;15838:1;15827:9;15823:17;15816:47;15880:131;16006:4;15880:131;:::i;:::-;15872:139;;15599:419;;;:::o;16024:181::-;16164:33;16160:1;16152:6;16148:14;16141:57;16024:181;:::o;16211:366::-;16353:3;16374:67;16438:2;16433:3;16374:67;:::i;:::-;16367:74;;16450:93;16539:3;16450:93;:::i;:::-;16568:2;16563:3;16559:12;16552:19;;16211:366;;;:::o;16583:419::-;16749:4;16787:2;16776:9;16772:18;16764:26;;16836:9;16830:4;16826:20;16822:1;16811:9;16807:17;16800:47;16864:131;16990:4;16864:131;:::i;:::-;16856:139;;16583:419;;;:::o;17008:223::-;17148:34;17144:1;17136:6;17132:14;17125:58;17217:6;17212:2;17204:6;17200:15;17193:31;17008:223;:::o;17237:366::-;17379:3;17400:67;17464:2;17459:3;17400:67;:::i;:::-;17393:74;;17476:93;17565:3;17476:93;:::i;:::-;17594:2;17589:3;17585:12;17578:19;;17237:366;;;:::o;17609:419::-;17775:4;17813:2;17802:9;17798:18;17790:26;;17862:9;17856:4;17852:20;17848:1;17837:9;17833:17;17826:47;17890:131;18016:4;17890:131;:::i;:::-;17882:139;;17609:419;;;:::o;18034:221::-;18174:34;18170:1;18162:6;18158:14;18151:58;18243:4;18238:2;18230:6;18226:15;18219:29;18034:221;:::o;18261:366::-;18403:3;18424:67;18488:2;18483:3;18424:67;:::i;:::-;18417:74;;18500:93;18589:3;18500:93;:::i;:::-;18618:2;18613:3;18609:12;18602:19;;18261:366;;;:::o;18633:419::-;18799:4;18837:2;18826:9;18822:18;18814:26;;18886:9;18880:4;18876:20;18872:1;18861:9;18857:17;18850:47;18914:131;19040:4;18914:131;:::i;:::-;18906:139;;18633:419;;;:::o;19058:179::-;19198:31;19194:1;19186:6;19182:14;19175:55;19058:179;:::o;19243:366::-;19385:3;19406:67;19470:2;19465:3;19406:67;:::i;:::-;19399:74;;19482:93;19571:3;19482:93;:::i;:::-;19600:2;19595:3;19591:12;19584:19;;19243:366;;;:::o;19615:419::-;19781:4;19819:2;19808:9;19804:18;19796:26;;19868:9;19862:4;19858:20;19854:1;19843:9;19839:17;19832:47;19896:131;20022:4;19896:131;:::i;:::-;19888:139;;19615:419;;;:::o;20040:224::-;20180:34;20176:1;20168:6;20164:14;20157:58;20249:7;20244:2;20236:6;20232:15;20225:32;20040:224;:::o;20270:366::-;20412:3;20433:67;20497:2;20492:3;20433:67;:::i;:::-;20426:74;;20509:93;20598:3;20509:93;:::i;:::-;20627:2;20622:3;20618:12;20611:19;;20270:366;;;:::o;20642:419::-;20808:4;20846:2;20835:9;20831:18;20823:26;;20895:9;20889:4;20885:20;20881:1;20870:9;20866:17;20859:47;20923:131;21049:4;20923:131;:::i;:::-;20915:139;;20642:419;;;:::o;21067:222::-;21207:34;21203:1;21195:6;21191:14;21184:58;21276:5;21271:2;21263:6;21259:15;21252:30;21067:222;:::o;21295:366::-;21437:3;21458:67;21522:2;21517:3;21458:67;:::i;:::-;21451:74;;21534:93;21623:3;21534:93;:::i;:::-;21652:2;21647:3;21643:12;21636:19;;21295:366;;;:::o;21667:419::-;21833:4;21871:2;21860:9;21856:18;21848:26;;21920:9;21914:4;21910:20;21906:1;21895:9;21891:17;21884:47;21948:131;22074:4;21948:131;:::i;:::-;21940:139;;21667:419;;;:::o;22092:225::-;22232:34;22228:1;22220:6;22216:14;22209:58;22301:8;22296:2;22288:6;22284:15;22277:33;22092:225;:::o;22323:366::-;22465:3;22486:67;22550:2;22545:3;22486:67;:::i;:::-;22479:74;;22562:93;22651:3;22562:93;:::i;:::-;22680:2;22675:3;22671:12;22664:19;;22323:366;;;:::o;22695:419::-;22861:4;22899:2;22888:9;22884:18;22876:26;;22948:9;22942:4;22938:20;22934:1;22923:9;22919:17;22912:47;22976:131;23102:4;22976:131;:::i;:::-;22968:139;;22695:419;;;:::o;23120:220::-;23260:34;23256:1;23248:6;23244:14;23237:58;23329:3;23324:2;23316:6;23312:15;23305:28;23120:220;:::o;23346:366::-;23488:3;23509:67;23573:2;23568:3;23509:67;:::i;:::-;23502:74;;23585:93;23674:3;23585:93;:::i;:::-;23703:2;23698:3;23694:12;23687:19;;23346:366;;;:::o;23718:419::-;23884:4;23922:2;23911:9;23907:18;23899:26;;23971:9;23965:4;23961:20;23957:1;23946:9;23942:17;23935:47;23999:131;24125:4;23999:131;:::i;:::-;23991:139;;23718:419;;;:::o;24143:221::-;24283:34;24279:1;24271:6;24267:14;24260:58;24352:4;24347:2;24339:6;24335:15;24328:29;24143:221;:::o;24370:366::-;24512:3;24533:67;24597:2;24592:3;24533:67;:::i;:::-;24526:74;;24609:93;24698:3;24609:93;:::i;:::-;24727:2;24722:3;24718:12;24711:19;;24370:366;;;:::o;24742:419::-;24908:4;24946:2;24935:9;24931:18;24923:26;;24995:9;24989:4;24985:20;24981:1;24970:9;24966:17;24959:47;25023:131;25149:4;25023:131;:::i;:::-;25015:139;;24742:419;;;:::o

Swarm Source

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