ETH Price: $2,502.83 (-5.77%)

Token

Time (TIME)
 

Overview

Max Total Supply

36,529,041 TIME

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,440 TIME

Value
$0.00
0x5701d6915Df60d756c8C77597Fe5d61E0819728c
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:
Time

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
byzantium EvmVersion
File 1 of 5 : Time.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Time is ERC20 {

    uint256 constant DAY_IN_SECONDS = 86400;
    
    uint256 lastTimeClaim;
    uint256 timeFrequency;
    address timeGuardian;
    address timeBank; // exchange address
    event RewardSent(
        address timeMiner,
        uint256 reward,
        uint256 timeReleased,
        uint256 timestamp
    );
    event TimeFrequencyEvent(uint256 timeFrequency);
    event TimeBankEvent(address timeBank);

    constructor() ERC20("Time", "TIME") {
        lastTimeClaim = block.timestamp;
        timeGuardian = msg.sender;
        timeFrequency = DAY_IN_SECONDS;
        _mint(
            address(this),
            (block.timestamp - 1230940800) * 10**uint256(decimals())
        ); // the starting time anniversary
        _burn(
            address(this),
            (block.timestamp - 1230940800) * 10**uint256(decimals())
        );
    }

    function mineTime() public {
        require(
            (block.timestamp - lastTimeClaim) >= timeFrequency,
            "TIME is released one day every day"
        );
        uint256 reward =
            (block.timestamp - lastTimeClaim - timeFrequency) *
                10**uint256(decimals());
        uint256 timeReleased = timeFrequency * 10**uint256(decimals());
        _mint(timeBank, timeReleased); // Time Contract recieves a day - 5 sec ideally
        _mint(msg.sender, reward); // Time Distributor recieves 5 seconds
        lastTimeClaim = block.timestamp;
        emit RewardSent(
            msg.sender,
            reward,
            timeReleased,
            lastTimeClaim
        );
    }

    function setTimeBank(address Bank) public {
        require(msg.sender == timeGuardian, "you are not the Time guardian");
        timeBank = Bank;
        emit TimeBankEvent(timeBank);
    }

    function setTimeFrequency(uint256 frequency) public {
        require(msg.sender == timeGuardian, "you are not the Time guardian");
        timeFrequency = frequency;
        emit TimeFrequencyEvent(timeFrequency);
    }

    function getLastTimeClaim() public view returns (uint256) {
        return lastTimeClaim;
    }

    function getTimeBankAddress() public view returns (address) {
        return timeBank;
    }

}

File 2 of 5 : ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of 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 defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

    /**
     * @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 {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` 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);
    }

    /**
     * @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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

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

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to 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 { }
}

File 3 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

File 4 of 5 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @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 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT

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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"timeMiner","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeReleased","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"RewardSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"timeBank","type":"address"}],"name":"TimeBankEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timeFrequency","type":"uint256"}],"name":"TimeFrequencyEvent","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":"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":"getLastTimeClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeBankAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"mineTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Bank","type":"address"}],"name":"setTimeBank","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frequency","type":"uint256"}],"name":"setTimeFrequency","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600481526020017f54696d65000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f54494d45000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200053b565b508060049080519060200190620000af9291906200053b565b5050504260058190555033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062015180600681905550620001663062000122620001ce640100000000026401000000009004565b60ff16600a6200013391906200085a565b63495eaa8042620001459190620009f8565b62000151919062000997565b620001d7640100000000026401000000009004565b620001c83062000184620001ce640100000000026401000000009004565b60ff16600a6200019591906200085a565b63495eaa8042620001a79190620009f8565b620001b3919062000997565b62000345640100000000026401000000009004565b62000ade565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002419062000752565b60405180910390fd5b620002676000838362000536640100000000026401000000009004565b80600260008282546200027b9190620007a2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002d29190620007a2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000339919062000774565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003af9062000730565b60405180910390fd5b620003d58260008362000536640100000000026401000000009004565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156200045e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000455906200070e565b60405180910390fd5b81816200046c9190620009f8565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254620004c29190620009f8565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000529919062000774565b60405180910390a3505050565b505050565b828054620005499062000a3d565b90600052602060002090601f0160209004810192826200056d5760008555620005b9565b82601f106200058857805160ff1916838001178555620005b9565b82800160010185558215620005b9579182015b82811115620005b85782518255916020019190600101906200059b565b5b509050620005c89190620005cc565b5090565b5b80821115620005e7576000816000905550600101620005cd565b5090565b6000620005fa60228362000791565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200066260218362000791565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620006ca601f8362000791565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620007088162000a33565b82525050565b600060208201905081810360008301526200072981620005eb565b9050919050565b600060208201905081810360008301526200074b8162000653565b9050919050565b600060208201905081810360008301526200076d81620006bb565b9050919050565b60006020820190506200078b6000830184620006fd565b92915050565b600082825260208201905092915050565b6000620007af8262000a33565b9150620007bc8362000a33565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007f457620007f362000a73565b5b828201905092915050565b6000808291508390505b6001851115620008515780860481111562000829576200082862000a73565b5b6001851615620008395780820291505b8081029050620008498562000ad1565b945062000809565b94509492505050565b6000620008678262000a33565b9150620008748362000a33565b9250620008a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008ab565b905092915050565b600082620008bd576001905062000990565b81620008cd576000905062000990565b8160018114620008e65760028114620008f15762000927565b600191505062000990565b60ff84111562000906576200090562000a73565b5b8360020a91508482111562000920576200091f62000a73565b5b5062000990565b5060208310610133831016604e8410600b8410161715620009615782820a9050838111156200095b576200095a62000a73565b5b62000990565b620009708484846001620007ff565b925090508184048111156200098a576200098962000a73565b5b81810290505b9392505050565b6000620009a48262000a33565b9150620009b18362000a33565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009ed57620009ec62000a73565b5b828202905092915050565b600062000a058262000a33565b915062000a128362000a33565b92508282101562000a285762000a2762000a73565b5b828203905092915050565b6000819050919050565b6000600282049050600182168062000a5657607f821691505b6020821081141562000a6d5762000a6c62000aa2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050919050565b611cea8062000aee6000396000f3fe608060405234801561001057600080fd5b506004361061011d576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100b4578063cce6923111610083578063cce69231146102e2578063da192258146102fe578063dd62ed3e1461031c578063ee353f6d1461034c5761011d565b806395d89b4114610246578063a457c2d714610264578063a9059cbb14610294578063c9f0f6f1146102c45761011d565b8063313ce567116100f0578063313ce567146101be57806339509351146101dc57806370a082311461020c578063870280641461023c5761011d565b806306fdde0314610122578063095ea7b31461014057806318160ddd1461017057806323b872dd1461018e575b600080fd5b61012a610368565b6040516101379190611747565b60405180910390f35b61015a60048036038101906101559190611242565b6103fa565b604051610167919061172c565b60405180910390f35b610178610418565b60405161018591906118a9565b60405180910390f35b6101a860048036038101906101a391906111f3565b610422565b6040516101b5919061172c565b60405180910390f35b6101c6610523565b6040516101d391906118c4565b60405180910390f35b6101f660048036038101906101f19190611242565b61052c565b604051610203919061172c565b60405180910390f35b6102266004803603810190610221919061118e565b6105d8565b60405161023391906118a9565b60405180910390f35b610244610620565b005b61024e61075a565b60405161025b9190611747565b60405180910390f35b61027e60048036038101906102799190611242565b6107ec565b60405161028b919061172c565b60405180910390f35b6102ae60048036038101906102a99190611242565b6108e0565b6040516102bb919061172c565b60405180910390f35b6102cc6108fe565b6040516102d991906118a9565b60405180910390f35b6102fc60048036038101906102f7919061127e565b610908565b005b6103066109db565b60405161031391906116cc565b60405180910390f35b610336600480360381019061033191906111b7565b610a05565b60405161034391906118a9565b60405180910390f35b6103666004803603810190610361919061118e565b610a8c565b005b60606003805461037790611bd8565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390611bd8565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b5050505050905090565b600061040e610407610bb9565b8484610bc1565b6001905092915050565b6000600254905090565b600061042f848484610d8c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061047a610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190611809565b60405180910390fd5b61051785610506610bb9565b85846105129190611b1c565b610bc1565b60019150509392505050565b60006012905090565b60006105ce610539610bb9565b848460016000610547610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c991906118fb565b610bc1565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600654600554426106319190611b1c565b1015610672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610669906117a9565b60405180910390fd5b600061067c610523565b60ff16600a61068b91906119a4565b6006546005544261069c9190611b1c565b6106a69190611b1c565b6106b09190611ac2565b905060006106bc610523565b60ff16600a6106cb91906119a4565b6006546106d89190611ac2565b9050610706600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261100b565b610710338361100b565b426005819055507f09526129f7eb903d2806162d5d3698343558d013232900c37ca478100892e47833838360055460405161074e94939291906116e7565b60405180910390a15050565b60606004805461076990611bd8565b80601f016020809104026020016040519081016040528092919081815260200182805461079590611bd8565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b600080600160006107fb610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90611869565b60405180910390fd5b6108d56108c3610bb9565b8585846108d09190611b1c565b610bc1565b600191505092915050565b60006108f46108ed610bb9565b8484610d8c565b6001905092915050565b6000600554905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f906117e9565b60405180910390fd5b806006819055507f8964407bec6e24c8f775bed968642e1ea5faa50b01d41776a3c24418af7d7a3e6006546040516109d091906118a9565b60405180910390a150565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b13906117e9565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f42e5a2a88939f1e7aa3cc74f4bf00698f8c686bc3068d06a2026a72ad67f6612600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610bae91906116cc565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890611849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890611789565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d7f91906118a9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611829565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6390611769565b60405180910390fd5b610e7783838361115f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906117c9565b60405180910390fd5b8181610f099190611b1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f9991906118fb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ffd91906118a9565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290611889565b60405180910390fd5b6110876000838361115f565b806002600082825461109991906118fb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110ee91906118fb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115391906118a9565b60405180910390a35050565b505050565b60008135905061117381611c86565b92915050565b60008135905061118881611c9d565b92915050565b6000602082840312156111a057600080fd5b60006111ae84828501611164565b91505092915050565b600080604083850312156111ca57600080fd5b60006111d885828601611164565b92505060206111e985828601611164565b9150509250929050565b60008060006060848603121561120857600080fd5b600061121686828701611164565b935050602061122786828701611164565b925050604061123886828701611179565b9150509250925092565b6000806040838503121561125557600080fd5b600061126385828601611164565b925050602061127485828601611179565b9150509250929050565b60006020828403121561129057600080fd5b600061129e84828501611179565b91505092915050565b6112b081611b50565b82525050565b6112bf81611b62565b82525050565b60006112d0826118df565b6112da81856118ea565b93506112ea818560208601611ba5565b6112f381611c68565b840191505092915050565b600061130b6023836118ea565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113716022836118ea565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113d76022836118ea565b91507f54494d452069732072656c6561736564206f6e6520646179206576657279206460008301527f61790000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061143d6026836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a3601d836118ea565b91507f796f7520617265206e6f74207468652054696d6520677561726469616e0000006000830152602082019050919050565b60006114e36028836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115496025836118ea565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115af6024836118ea565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116156025836118ea565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061167b601f836118ea565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6116b781611b8e565b82525050565b6116c681611b98565b82525050565b60006020820190506116e160008301846112a7565b92915050565b60006080820190506116fc60008301876112a7565b61170960208301866116ae565b61171660408301856116ae565b61172360608301846116ae565b95945050505050565b600060208201905061174160008301846112b6565b92915050565b6000602082019050818103600083015261176181846112c5565b905092915050565b60006020820190508181036000830152611782816112fe565b9050919050565b600060208201905081810360008301526117a281611364565b9050919050565b600060208201905081810360008301526117c2816113ca565b9050919050565b600060208201905081810360008301526117e281611430565b9050919050565b6000602082019050818103600083015261180281611496565b9050919050565b60006020820190508181036000830152611822816114d6565b9050919050565b600060208201905081810360008301526118428161153c565b9050919050565b60006020820190508181036000830152611862816115a2565b9050919050565b6000602082019050818103600083015261188281611608565b9050919050565b600060208201905081810360008301526118a28161166e565b9050919050565b60006020820190506118be60008301846116ae565b92915050565b60006020820190506118d960008301846116bd565b92915050565b600081519050919050565b600082825260208201905092915050565b600061190682611b8e565b915061191183611b8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561194657611945611c0a565b5b828201905092915050565b6000808291508390505b600185111561199b5780860481111561197757611976611c0a565b5b60018516156119865780820291505b808102905061199485611c79565b945061195b565b94509492505050565b60006119af82611b8e565b91506119ba83611b8e565b92506119e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846119ef565b905092915050565b6000826119ff5760019050611abb565b81611a0d5760009050611abb565b8160018114611a235760028114611a2d57611a5c565b6001915050611abb565b60ff841115611a3f57611a3e611c0a565b5b8360020a915084821115611a5657611a55611c0a565b5b50611abb565b5060208310610133831016604e8410600b8410161715611a915782820a905083811115611a8c57611a8b611c0a565b5b611abb565b611a9e8484846001611951565b92509050818404811115611ab557611ab4611c0a565b5b81810290505b9392505050565b6000611acd82611b8e565b9150611ad883611b8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1157611b10611c0a565b5b828202905092915050565b6000611b2782611b8e565b9150611b3283611b8e565b925082821015611b4557611b44611c0a565b5b828203905092915050565b6000611b5b82611b6e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bc3578082015181840152602081019050611ba8565b83811115611bd2576000848401525b50505050565b60006002820490506001821680611bf057607f821691505b60208210811415611c0457611c03611c39565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6000600282049050919050565b611c8f81611b50565b8114611c9a57600080fd5b50565b611ca681611b8e565b8114611cb157600080fd5b5056fea2646970667358221220afc836af15900d8b4d37e55f516a8701721ddd7c6eb96d1f1d9e04d57308fcd964736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061011d576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100b4578063cce6923111610083578063cce69231146102e2578063da192258146102fe578063dd62ed3e1461031c578063ee353f6d1461034c5761011d565b806395d89b4114610246578063a457c2d714610264578063a9059cbb14610294578063c9f0f6f1146102c45761011d565b8063313ce567116100f0578063313ce567146101be57806339509351146101dc57806370a082311461020c578063870280641461023c5761011d565b806306fdde0314610122578063095ea7b31461014057806318160ddd1461017057806323b872dd1461018e575b600080fd5b61012a610368565b6040516101379190611747565b60405180910390f35b61015a60048036038101906101559190611242565b6103fa565b604051610167919061172c565b60405180910390f35b610178610418565b60405161018591906118a9565b60405180910390f35b6101a860048036038101906101a391906111f3565b610422565b6040516101b5919061172c565b60405180910390f35b6101c6610523565b6040516101d391906118c4565b60405180910390f35b6101f660048036038101906101f19190611242565b61052c565b604051610203919061172c565b60405180910390f35b6102266004803603810190610221919061118e565b6105d8565b60405161023391906118a9565b60405180910390f35b610244610620565b005b61024e61075a565b60405161025b9190611747565b60405180910390f35b61027e60048036038101906102799190611242565b6107ec565b60405161028b919061172c565b60405180910390f35b6102ae60048036038101906102a99190611242565b6108e0565b6040516102bb919061172c565b60405180910390f35b6102cc6108fe565b6040516102d991906118a9565b60405180910390f35b6102fc60048036038101906102f7919061127e565b610908565b005b6103066109db565b60405161031391906116cc565b60405180910390f35b610336600480360381019061033191906111b7565b610a05565b60405161034391906118a9565b60405180910390f35b6103666004803603810190610361919061118e565b610a8c565b005b60606003805461037790611bd8565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390611bd8565b80156103f05780601f106103c5576101008083540402835291602001916103f0565b820191906000526020600020905b8154815290600101906020018083116103d357829003601f168201915b5050505050905090565b600061040e610407610bb9565b8484610bc1565b6001905092915050565b6000600254905090565b600061042f848484610d8c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061047a610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f190611809565b60405180910390fd5b61051785610506610bb9565b85846105129190611b1c565b610bc1565b60019150509392505050565b60006012905090565b60006105ce610539610bb9565b848460016000610547610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105c991906118fb565b610bc1565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600654600554426106319190611b1c565b1015610672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610669906117a9565b60405180910390fd5b600061067c610523565b60ff16600a61068b91906119a4565b6006546005544261069c9190611b1c565b6106a69190611b1c565b6106b09190611ac2565b905060006106bc610523565b60ff16600a6106cb91906119a4565b6006546106d89190611ac2565b9050610706600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261100b565b610710338361100b565b426005819055507f09526129f7eb903d2806162d5d3698343558d013232900c37ca478100892e47833838360055460405161074e94939291906116e7565b60405180910390a15050565b60606004805461076990611bd8565b80601f016020809104026020016040519081016040528092919081815260200182805461079590611bd8565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b600080600160006107fb610bb9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90611869565b60405180910390fd5b6108d56108c3610bb9565b8585846108d09190611b1c565b610bc1565b600191505092915050565b60006108f46108ed610bb9565b8484610d8c565b6001905092915050565b6000600554905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f906117e9565b60405180910390fd5b806006819055507f8964407bec6e24c8f775bed968642e1ea5faa50b01d41776a3c24418af7d7a3e6006546040516109d091906118a9565b60405180910390a150565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b13906117e9565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f42e5a2a88939f1e7aa3cc74f4bf00698f8c686bc3068d06a2026a72ad67f6612600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610bae91906116cc565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890611849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890611789565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d7f91906118a9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611829565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6390611769565b60405180910390fd5b610e7783838361115f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906117c9565b60405180910390fd5b8181610f099190611b1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f9991906118fb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ffd91906118a9565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290611889565b60405180910390fd5b6110876000838361115f565b806002600082825461109991906118fb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110ee91906118fb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161115391906118a9565b60405180910390a35050565b505050565b60008135905061117381611c86565b92915050565b60008135905061118881611c9d565b92915050565b6000602082840312156111a057600080fd5b60006111ae84828501611164565b91505092915050565b600080604083850312156111ca57600080fd5b60006111d885828601611164565b92505060206111e985828601611164565b9150509250929050565b60008060006060848603121561120857600080fd5b600061121686828701611164565b935050602061122786828701611164565b925050604061123886828701611179565b9150509250925092565b6000806040838503121561125557600080fd5b600061126385828601611164565b925050602061127485828601611179565b9150509250929050565b60006020828403121561129057600080fd5b600061129e84828501611179565b91505092915050565b6112b081611b50565b82525050565b6112bf81611b62565b82525050565b60006112d0826118df565b6112da81856118ea565b93506112ea818560208601611ba5565b6112f381611c68565b840191505092915050565b600061130b6023836118ea565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113716022836118ea565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113d76022836118ea565b91507f54494d452069732072656c6561736564206f6e6520646179206576657279206460008301527f61790000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061143d6026836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a3601d836118ea565b91507f796f7520617265206e6f74207468652054696d6520677561726469616e0000006000830152602082019050919050565b60006114e36028836118ea565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115496025836118ea565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115af6024836118ea565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116156025836118ea565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061167b601f836118ea565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6116b781611b8e565b82525050565b6116c681611b98565b82525050565b60006020820190506116e160008301846112a7565b92915050565b60006080820190506116fc60008301876112a7565b61170960208301866116ae565b61171660408301856116ae565b61172360608301846116ae565b95945050505050565b600060208201905061174160008301846112b6565b92915050565b6000602082019050818103600083015261176181846112c5565b905092915050565b60006020820190508181036000830152611782816112fe565b9050919050565b600060208201905081810360008301526117a281611364565b9050919050565b600060208201905081810360008301526117c2816113ca565b9050919050565b600060208201905081810360008301526117e281611430565b9050919050565b6000602082019050818103600083015261180281611496565b9050919050565b60006020820190508181036000830152611822816114d6565b9050919050565b600060208201905081810360008301526118428161153c565b9050919050565b60006020820190508181036000830152611862816115a2565b9050919050565b6000602082019050818103600083015261188281611608565b9050919050565b600060208201905081810360008301526118a28161166e565b9050919050565b60006020820190506118be60008301846116ae565b92915050565b60006020820190506118d960008301846116bd565b92915050565b600081519050919050565b600082825260208201905092915050565b600061190682611b8e565b915061191183611b8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561194657611945611c0a565b5b828201905092915050565b6000808291508390505b600185111561199b5780860481111561197757611976611c0a565b5b60018516156119865780820291505b808102905061199485611c79565b945061195b565b94509492505050565b60006119af82611b8e565b91506119ba83611b8e565b92506119e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846119ef565b905092915050565b6000826119ff5760019050611abb565b81611a0d5760009050611abb565b8160018114611a235760028114611a2d57611a5c565b6001915050611abb565b60ff841115611a3f57611a3e611c0a565b5b8360020a915084821115611a5657611a55611c0a565b5b50611abb565b5060208310610133831016604e8410600b8410161715611a915782820a905083811115611a8c57611a8b611c0a565b5b611abb565b611a9e8484846001611951565b92509050818404811115611ab557611ab4611c0a565b5b81810290505b9392505050565b6000611acd82611b8e565b9150611ad883611b8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1157611b10611c0a565b5b828202905092915050565b6000611b2782611b8e565b9150611b3283611b8e565b925082821015611b4557611b44611c0a565b5b828203905092915050565b6000611b5b82611b6e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bc3578082015181840152602081019050611ba8565b83811115611bd2576000848401525b50505050565b60006002820490506001821680611bf057607f821691505b60208210811415611c0457611c03611c39565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6000600282049050919050565b611c8f81611b50565b8114611c9a57600080fd5b50565b611ca681611b8e565b8114611cb157600080fd5b5056fea2646970667358221220afc836af15900d8b4d37e55f516a8701721ddd7c6eb96d1f1d9e04d57308fcd964736f6c63430008000033

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.