ETH Price: $3,208.02 (+0.53%)
Gas: 14 Gwei

Token

Modefi (MOD)
 

Overview

Max Total Supply

21,999,999.999999999999 MOD

Holders

6,336 ( 0.016%)

Total Transfers

-

Market

Price

$0.09 @ 0.000029 ETH (-2.64%)

Onchain Market Cap

$2,022,350.00

Circulating Supply Market Cap

$1,468,560.00

Other Info

Token Contract (WITH 18 Decimals)

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

OVERVIEW

Building Oracle blockchain solutions that empower true decentralization of data on-chain for integration via Smart Contracts. Modefi’s suite of Oracle solutions will provide higher level transparency, precise data, and a fully trustless ecosystem.

Market

Volume (24H):$2,313.37
Market Capitalization:$1,468,560.00
Circulating Supply:16,076,765.00 MOD
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ModefiToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-15
*/

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


/**
 * @dev Wrappers over Solidity's arithmetic operations.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}


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


/**
 * @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 {
    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 three 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 returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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
     * overloaded;
     *
     * 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 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 this function is for batched transfers with emphasis placed on gas savings
     * 
     * Requirements:
     * 
     * - `recipients` and `values` arguments must have same length. 
     * - the caller must have a balance of at least `values`.
     */ 
    function transferBatched(address[] calldata _recipients, uint[] calldata _values) external returns (bool) {
        require(_recipients.length == _values.length);
        
        uint256 senderBalance = _balances[msg.sender];
        
        for (uint256 i = 0; i < _values.length; i++) {
            
            uint256 value = _values[i];
            address to = _recipients[i];
            
            require(senderBalance >= value);
            
            if(msg.sender != _recipients[i]){
                senderBalance = senderBalance - value;
                _balances[to] += value;
            }
			emit Transfer(msg.sender, to, value);
        }
        _balances[msg.sender] = senderBalance;
        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 { }
}

/**
 * @dev Implementation of the Modefi token.
 * This token adheres to the ERC-20 token standard based on OpenZeppelin guidelines.  
 */
contract ModefiToken is ERC20 {

    /**
     * @dev Sets the values for {name}, {symbol}, {initialAccount}, and {initialBalance}.
     *
     * The defaut value of {decimals} is 18. 
     * To select a different value for {decimals} you should overload it.
     *
     * The value of {initialBalance} is the total supply.
     * The value of {initialAccount} will be minted the value of {initialBalance}.
     */    
    constructor (
        string memory name,
        string memory symbol,
        address initialAccount,
        uint256 initialBalance
    ) payable ERC20(name, symbol) {
        _mint(initialAccount, initialBalance);
    }

    /**
     * @dev Wrapper function which externally exposes the internal _burn() function.
     */
    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"initialAccount","type":"address"},{"internalType":"uint256","name":"initialBalance","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"transferBatched","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"}]

6080604052604051620021c6380380620021c6833981810160405281019062000029919062000335565b8383816003908051906020019062000043929190620001e5565b5080600490805190602001906200005c929190620001e5565b5050506200007182826200007b60201b60201c565b50505050620006a5565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620000ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000e59062000426565b60405180910390fd5b6200010260008383620001e060201b60201c565b8060026000828254620001169190620004dd565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200016d9190620004dd565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001d4919062000448565b60405180910390a35050565b505050565b828054620001f390620005ae565b90600052602060002090601f01602090048101928262000217576000855562000263565b82601f106200023257805160ff191683800117855562000263565b8280016001018555821562000263579182015b828111156200026257825182559160200191906001019062000245565b5b50905062000272919062000276565b5090565b5b808211156200029157600081600090555060010162000277565b5090565b6000620002ac620002a68462000499565b62000465565b905082815260208101848484011115620002c557600080fd5b620002d284828562000578565b509392505050565b600081519050620002eb8162000671565b92915050565b600082601f8301126200030357600080fd5b81516200031584826020860162000295565b91505092915050565b6000815190506200032f816200068b565b92915050565b600080600080608085870312156200034c57600080fd5b600085015167ffffffffffffffff8111156200036757600080fd5b6200037587828801620002f1565b945050602085015167ffffffffffffffff8111156200039357600080fd5b620003a187828801620002f1565b9350506040620003b487828801620002da565b9250506060620003c7878288016200031e565b91505092959194509250565b6000620003e2601f83620004cc565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b62000420816200056e565b82525050565b600060208201905081810360008301526200044181620003d3565b9050919050565b60006020820190506200045f600083018462000415565b92915050565b6000604051905081810181811067ffffffffffffffff821117156200048f576200048e62000642565b5b8060405250919050565b600067ffffffffffffffff821115620004b757620004b662000642565b5b601f19601f8301169050602081019050919050565b600082825260208201905092915050565b6000620004ea826200056e565b9150620004f7836200056e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200052f576200052e620005e4565b5b828201905092915050565b600062000547826200054e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620005985780820151818401526020810190506200057b565b83811115620005a8576000848401525b50505050565b60006002820490506001821680620005c757607f821691505b60208210811415620005de57620005dd62000613565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200067c816200053a565b81146200068857600080fd5b50565b62000696816200056e565b8114620006a257600080fd5b50565b611b1180620006b56000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c578063a457c2d711610066578063a457c2d714610228578063a9059cbb14610258578063d302cae614610288578063dd62ed3e146102b8576100cf565b806342966c68146101be57806370a08231146101da57806395d89b411461020a576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102e8565b6040516100e9919061171d565b60405180910390f35b61010c6004803603810190610107919061122c565b61037a565b6040516101199190611702565b60405180910390f35b61012a610398565b604051610137919061185f565b60405180910390f35b61015a600480360381019061015591906111dd565b6103a2565b6040516101679190611702565b60405180910390f35b6101786104a3565b604051610185919061187a565b60405180910390f35b6101a860048036038101906101a3919061122c565b6104ac565b6040516101b59190611702565b60405180910390f35b6101d860048036038101906101d391906112dd565b610558565b005b6101f460048036038101906101ef9190611178565b610565565b604051610201919061185f565b60405180910390f35b6102126105ad565b60405161021f919061171d565b60405180910390f35b610242600480360381019061023d919061122c565b61063f565b60405161024f9190611702565b60405180910390f35b610272600480360381019061026d919061122c565b610733565b60405161027f9190611702565b60405180910390f35b6102a2600480360381019061029d9190611268565b610751565b6040516102af9190611702565b60405180910390f35b6102d260048036038101906102cd91906111a1565b610a08565b6040516102df919061185f565b60405180910390f35b6060600380546102f7906119c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610323906119c3565b80156103705780601f1061034557610100808354040283529160200191610370565b820191906000526020600020905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b600061038e610387610a8f565b8484610a97565b6001905092915050565b6000600254905090565b60006103af848484610c62565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103fa610a8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561047a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610471906117bf565b60405180910390fd5b61049785610486610a8f565b85846104929190611907565b610a97565b60019150509392505050565b60006012905090565b600061054e6104b9610a8f565b8484600160006104c7610a8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461054991906118b1565b610a97565b6001905092915050565b6105623382610ee1565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546105bc906119c3565b80601f01602080910402602001604051908101604052809291908181526020018280546105e8906119c3565b80156106355780601f1061060a57610100808354040283529160200191610635565b820191906000526020600020905b81548152906001019060200180831161061857829003601f168201915b5050505050905090565b6000806001600061064e610a8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561070b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107029061183f565b60405180910390fd5b610728610716610a8f565b8585846107239190611907565b610a97565b600191505092915050565b6000610747610740610a8f565b8484610c62565b6001905092915050565b600082829050858590501461076557600080fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060005b848490508110156109b75760008585838181106107f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013590506000888884818110610835577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061084a9190611178565b90508184101561085957600080fd5b888884818110610892577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906108a79190611178565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093d5781846108e59190611907565b9350816000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461093591906118b1565b925050819055505b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161099a919061185f565b60405180910390a3505080806109af906119f5565b9150506107ab565b50806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001915050949350505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe9061181f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e9061177f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c55919061185f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc9906117ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d399061173f565b60405180910390fd5b610d4d8383836110b5565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca9061179f565b60405180910390fd5b8181610ddf9190611907565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e6f91906118b1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ed3919061185f565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f48906117df565b60405180910390fd5b610f5d826000836110b5565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda9061175f565b60405180910390fd5b8181610fef9190611907565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110439190611907565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110a8919061185f565b60405180910390a3505050565b505050565b6000813590506110c981611aad565b92915050565b60008083601f8401126110e157600080fd5b8235905067ffffffffffffffff8111156110fa57600080fd5b60208301915083602082028301111561111257600080fd5b9250929050565b60008083601f84011261112b57600080fd5b8235905067ffffffffffffffff81111561114457600080fd5b60208301915083602082028301111561115c57600080fd5b9250929050565b60008135905061117281611ac4565b92915050565b60006020828403121561118a57600080fd5b6000611198848285016110ba565b91505092915050565b600080604083850312156111b457600080fd5b60006111c2858286016110ba565b92505060206111d3858286016110ba565b9150509250929050565b6000806000606084860312156111f257600080fd5b6000611200868287016110ba565b9350506020611211868287016110ba565b925050604061122286828701611163565b9150509250925092565b6000806040838503121561123f57600080fd5b600061124d858286016110ba565b925050602061125e85828601611163565b9150509250929050565b6000806000806040858703121561127e57600080fd5b600085013567ffffffffffffffff81111561129857600080fd5b6112a4878288016110cf565b9450945050602085013567ffffffffffffffff8111156112c357600080fd5b6112cf87828801611119565b925092505092959194509250565b6000602082840312156112ef57600080fd5b60006112fd84828501611163565b91505092915050565b61130f8161194d565b82525050565b600061132082611895565b61132a81856118a0565b935061133a818560208601611990565b61134381611a9c565b840191505092915050565b600061135b6023836118a0565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113c16022836118a0565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114276022836118a0565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061148d6026836118a0565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114f36028836118a0565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115596021836118a0565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115bf6025836118a0565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116256024836118a0565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061168b6025836118a0565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6116ed81611979565b82525050565b6116fc81611983565b82525050565b60006020820190506117176000830184611306565b92915050565b600060208201905081810360008301526117378184611315565b905092915050565b600060208201905081810360008301526117588161134e565b9050919050565b60006020820190508181036000830152611778816113b4565b9050919050565b600060208201905081810360008301526117988161141a565b9050919050565b600060208201905081810360008301526117b881611480565b9050919050565b600060208201905081810360008301526117d8816114e6565b9050919050565b600060208201905081810360008301526117f88161154c565b9050919050565b60006020820190508181036000830152611818816115b2565b9050919050565b6000602082019050818103600083015261183881611618565b9050919050565b600060208201905081810360008301526118588161167e565b9050919050565b600060208201905061187460008301846116e4565b92915050565b600060208201905061188f60008301846116f3565b92915050565b600081519050919050565b600082825260208201905092915050565b60006118bc82611979565b91506118c783611979565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156118fc576118fb611a3e565b5b828201905092915050565b600061191282611979565b915061191d83611979565b9250828210156119305761192f611a3e565b5b828203905092915050565b600061194682611959565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156119ae578082015181840152602081019050611993565b838111156119bd576000848401525b50505050565b600060028204905060018216806119db57607f821691505b602082108114156119ef576119ee611a6d565b5b50919050565b6000611a0082611979565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a3357611a32611a3e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611ab68161193b565b8114611ac157600080fd5b50565b611acd81611979565b8114611ad857600080fd5b5056fea2646970667358221220cb374d165f7511de287df16e6182ab4865460f7ff615d4a8c45125a896e8c9da64736f6c63430008000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000009488f7fdb710c6e87514024b170819c32bccd3710000000000000000000000000000000000000000001232ae63c59c6bd600000000000000000000000000000000000000000000000000000000000000000000064d6f64656669000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d4f440000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c578063a457c2d711610066578063a457c2d714610228578063a9059cbb14610258578063d302cae614610288578063dd62ed3e146102b8576100cf565b806342966c68146101be57806370a08231146101da57806395d89b411461020a576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102e8565b6040516100e9919061171d565b60405180910390f35b61010c6004803603810190610107919061122c565b61037a565b6040516101199190611702565b60405180910390f35b61012a610398565b604051610137919061185f565b60405180910390f35b61015a600480360381019061015591906111dd565b6103a2565b6040516101679190611702565b60405180910390f35b6101786104a3565b604051610185919061187a565b60405180910390f35b6101a860048036038101906101a3919061122c565b6104ac565b6040516101b59190611702565b60405180910390f35b6101d860048036038101906101d391906112dd565b610558565b005b6101f460048036038101906101ef9190611178565b610565565b604051610201919061185f565b60405180910390f35b6102126105ad565b60405161021f919061171d565b60405180910390f35b610242600480360381019061023d919061122c565b61063f565b60405161024f9190611702565b60405180910390f35b610272600480360381019061026d919061122c565b610733565b60405161027f9190611702565b60405180910390f35b6102a2600480360381019061029d9190611268565b610751565b6040516102af9190611702565b60405180910390f35b6102d260048036038101906102cd91906111a1565b610a08565b6040516102df919061185f565b60405180910390f35b6060600380546102f7906119c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610323906119c3565b80156103705780601f1061034557610100808354040283529160200191610370565b820191906000526020600020905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b600061038e610387610a8f565b8484610a97565b6001905092915050565b6000600254905090565b60006103af848484610c62565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103fa610a8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561047a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610471906117bf565b60405180910390fd5b61049785610486610a8f565b85846104929190611907565b610a97565b60019150509392505050565b60006012905090565b600061054e6104b9610a8f565b8484600160006104c7610a8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461054991906118b1565b610a97565b6001905092915050565b6105623382610ee1565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546105bc906119c3565b80601f01602080910402602001604051908101604052809291908181526020018280546105e8906119c3565b80156106355780601f1061060a57610100808354040283529160200191610635565b820191906000526020600020905b81548152906001019060200180831161061857829003601f168201915b5050505050905090565b6000806001600061064e610a8f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561070b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107029061183f565b60405180910390fd5b610728610716610a8f565b8585846107239190611907565b610a97565b600191505092915050565b6000610747610740610a8f565b8484610c62565b6001905092915050565b600082829050858590501461076557600080fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060005b848490508110156109b75760008585838181106107f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013590506000888884818110610835577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061084a9190611178565b90508184101561085957600080fd5b888884818110610892577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906108a79190611178565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093d5781846108e59190611907565b9350816000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461093591906118b1565b925050819055505b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161099a919061185f565b60405180910390a3505080806109af906119f5565b9150506107ab565b50806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001915050949350505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe9061181f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e9061177f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c55919061185f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc9906117ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d399061173f565b60405180910390fd5b610d4d8383836110b5565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca9061179f565b60405180910390fd5b8181610ddf9190611907565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e6f91906118b1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ed3919061185f565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f48906117df565b60405180910390fd5b610f5d826000836110b5565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda9061175f565b60405180910390fd5b8181610fef9190611907565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110439190611907565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110a8919061185f565b60405180910390a3505050565b505050565b6000813590506110c981611aad565b92915050565b60008083601f8401126110e157600080fd5b8235905067ffffffffffffffff8111156110fa57600080fd5b60208301915083602082028301111561111257600080fd5b9250929050565b60008083601f84011261112b57600080fd5b8235905067ffffffffffffffff81111561114457600080fd5b60208301915083602082028301111561115c57600080fd5b9250929050565b60008135905061117281611ac4565b92915050565b60006020828403121561118a57600080fd5b6000611198848285016110ba565b91505092915050565b600080604083850312156111b457600080fd5b60006111c2858286016110ba565b92505060206111d3858286016110ba565b9150509250929050565b6000806000606084860312156111f257600080fd5b6000611200868287016110ba565b9350506020611211868287016110ba565b925050604061122286828701611163565b9150509250925092565b6000806040838503121561123f57600080fd5b600061124d858286016110ba565b925050602061125e85828601611163565b9150509250929050565b6000806000806040858703121561127e57600080fd5b600085013567ffffffffffffffff81111561129857600080fd5b6112a4878288016110cf565b9450945050602085013567ffffffffffffffff8111156112c357600080fd5b6112cf87828801611119565b925092505092959194509250565b6000602082840312156112ef57600080fd5b60006112fd84828501611163565b91505092915050565b61130f8161194d565b82525050565b600061132082611895565b61132a81856118a0565b935061133a818560208601611990565b61134381611a9c565b840191505092915050565b600061135b6023836118a0565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113c16022836118a0565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114276022836118a0565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061148d6026836118a0565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114f36028836118a0565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115596021836118a0565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115bf6025836118a0565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116256024836118a0565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061168b6025836118a0565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6116ed81611979565b82525050565b6116fc81611983565b82525050565b60006020820190506117176000830184611306565b92915050565b600060208201905081810360008301526117378184611315565b905092915050565b600060208201905081810360008301526117588161134e565b9050919050565b60006020820190508181036000830152611778816113b4565b9050919050565b600060208201905081810360008301526117988161141a565b9050919050565b600060208201905081810360008301526117b881611480565b9050919050565b600060208201905081810360008301526117d8816114e6565b9050919050565b600060208201905081810360008301526117f88161154c565b9050919050565b60006020820190508181036000830152611818816115b2565b9050919050565b6000602082019050818103600083015261183881611618565b9050919050565b600060208201905081810360008301526118588161167e565b9050919050565b600060208201905061187460008301846116e4565b92915050565b600060208201905061188f60008301846116f3565b92915050565b600081519050919050565b600082825260208201905092915050565b60006118bc82611979565b91506118c783611979565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156118fc576118fb611a3e565b5b828201905092915050565b600061191282611979565b915061191d83611979565b9250828210156119305761192f611a3e565b5b828203905092915050565b600061194682611959565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156119ae578082015181840152602081019050611993565b838111156119bd576000848401525b50505050565b600060028204905060018216806119db57607f821691505b602082108114156119ef576119ee611a6d565b5b50919050565b6000611a0082611979565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611a3357611a32611a3e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611ab68161193b565b8114611ac157600080fd5b50565b611acd81611979565b8114611ad857600080fd5b5056fea2646970667358221220cb374d165f7511de287df16e6182ab4865460f7ff615d4a8c45125a896e8c9da64736f6c63430008000033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000009488f7fdb710c6e87514024b170819c32bccd3710000000000000000000000000000000000000000001232ae63c59c6bd600000000000000000000000000000000000000000000000000000000000000000000064d6f64656669000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d4f440000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Modefi
Arg [1] : symbol (string): MOD
Arg [2] : initialAccount (address): 0x9488F7FDb710c6E87514024B170819c32BCCD371
Arg [3] : initialBalance (uint256): 22000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000009488f7fdb710c6e87514024b170819c32bccd371
Arg [3] : 0000000000000000000000000000000000000000001232ae63c59c6bd6000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 4d6f646566690000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4d4f440000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22231:867:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12301:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15484:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13394:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16135:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13245:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16966:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23006:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13565:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12511:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17684:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13905:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14372:751;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15186:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12301:91;12346:13;12379:5;12372:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12301:91;:::o;15484:169::-;15567:4;15584:39;15593:12;:10;:12::i;:::-;15607:7;15616:6;15584:8;:39::i;:::-;15641:4;15634:11;;15484:169;;;;:::o;13394:108::-;13455:7;13482:12;;13475:19;;13394:108;:::o;16135:422::-;16241:4;16258:36;16268:6;16276:9;16287:6;16258:9;:36::i;:::-;16307:24;16334:11;:19;16346:6;16334:19;;;;;;;;;;;;;;;:33;16354:12;:10;:12::i;:::-;16334:33;;;;;;;;;;;;;;;;16307:60;;16406:6;16386:16;:26;;16378:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16468:57;16477:6;16485:12;:10;:12::i;:::-;16518:6;16499:16;:25;;;;:::i;:::-;16468:8;:57::i;:::-;16545:4;16538:11;;;16135:422;;;;;:::o;13245:84::-;13294:5;13319:2;13312:9;;13245:84;:::o;16966:215::-;17054:4;17071:80;17080:12;:10;:12::i;:::-;17094:7;17140:10;17103:11;:25;17115:12;:10;:12::i;:::-;17103:25;;;;;;;;;;;;;;;:34;17129:7;17103:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;17071:8;:80::i;:::-;17169:4;17162:11;;16966:215;;;;:::o;23006:83::-;23056:25;23062:10;23074:6;23056:5;:25::i;:::-;23006:83;:::o;13565:127::-;13639:7;13666:9;:18;13676:7;13666:18;;;;;;;;;;;;;;;;13659:25;;13565:127;;;:::o;12511:95::-;12558:13;12591:7;12584:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12511:95;:::o;17684:377::-;17777:4;17794:24;17821:11;:25;17833:12;:10;:12::i;:::-;17821:25;;;;;;;;;;;;;;;:34;17847:7;17821:34;;;;;;;;;;;;;;;;17794:61;;17894:15;17874:16;:35;;17866:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17962:67;17971:12;:10;:12::i;:::-;17985:7;18013:15;17994:16;:34;;;;:::i;:::-;17962:8;:67::i;:::-;18049:4;18042:11;;;17684:377;;;;:::o;13905:175::-;13991:4;14008:42;14018:12;:10;:12::i;:::-;14032:9;14043:6;14008:9;:42::i;:::-;14068:4;14061:11;;13905:175;;;;:::o;14372:751::-;14472:4;14519:7;;:14;;14497:11;;:18;;:36;14489:45;;;;;;14555:21;14579:9;:21;14589:10;14579:21;;;;;;;;;;;;;;;;14555:45;;14626:9;14621:429;14645:7;;:14;;14641:1;:18;14621:429;;;14695:13;14711:7;;14719:1;14711:10;;;;;;;;;;;;;;;;;;;;;14695:26;;14736:10;14749:11;;14761:1;14749:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14736:27;;14817:5;14800:13;:22;;14792:31;;;;;;14869:11;;14881:1;14869:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14855:28;;:10;:28;;;14852:145;;14935:5;14919:13;:21;;;;:::i;:::-;14903:37;;14976:5;14959:9;:13;14969:2;14959:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;14852:145;15028:2;15007:31;;15016:10;15007:31;;;15032:5;15007:31;;;;;;:::i;:::-;;;;;;;;14621:429;;14661:3;;;;;:::i;:::-;;;;14621:429;;;;15084:13;15060:9;:21;15070:10;15060:21;;;;;;;;;;;;;;;:37;;;;15115:4;15108:11;;;14372:751;;;;;;:::o;15186:151::-;15275:7;15302:11;:18;15314:5;15302:18;;;;;;;;;;;;;;;:27;15321:7;15302:27;;;;;;;;;;;;;;;;15295:34;;15186:151;;;;:::o;9995:98::-;10048:7;10075:10;10068:17;;9995:98;:::o;21040:346::-;21159:1;21142:19;;:5;:19;;;;21134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21240:1;21221:21;;:7;:21;;;;21213:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21324:6;21294:11;:18;21306:5;21294:18;;;;;;;;;;;;;;;:27;21313:7;21294:27;;;;;;;;;;;;;;;:36;;;;21362:7;21346:32;;21355:5;21346:32;;;21371:6;21346:32;;;;;;:::i;:::-;;;;;;;;21040:346;;;:::o;18551:604::-;18675:1;18657:20;;:6;:20;;;;18649:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18759:1;18738:23;;:9;:23;;;;18730:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18814:47;18835:6;18843:9;18854:6;18814:20;:47::i;:::-;18874:21;18898:9;:17;18908:6;18898:17;;;;;;;;;;;;;;;;18874:41;;18951:6;18934:13;:23;;18926:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19047:6;19031:13;:22;;;;:::i;:::-;19011:9;:17;19021:6;19011:17;;;;;;;;;;;;;;;:42;;;;19088:6;19064:9;:20;19074:9;19064:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;19129:9;19112:35;;19121:6;19112:35;;;19140:6;19112:35;;;;;;:::i;:::-;;;;;;;;18551:604;;;;:::o;20108:494::-;20211:1;20192:21;;:7;:21;;;;20184:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20264:49;20285:7;20302:1;20306:6;20264:20;:49::i;:::-;20326:22;20351:9;:18;20361:7;20351:18;;;;;;;;;;;;;;;;20326:43;;20406:6;20388:14;:24;;20380:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20500:6;20483:14;:23;;;;:::i;:::-;20462:9;:18;20472:7;20462:18;;;;;;;;;;;;;;;:44;;;;20533:6;20517:12;;:22;;;;;;;:::i;:::-;;;;;;;;20583:1;20557:37;;20566:7;20557:37;;;20587:6;20557:37;;;;;;:::i;:::-;;;;;;;;20108:494;;;:::o;21989:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;;;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;559:367::-;;;692:3;685:4;677:6;673:17;669:27;659:2;;710:1;707;700:12;659:2;746:6;733:20;723:30;;776:18;768:6;765:30;762:2;;;808:1;805;798:12;762:2;845:4;837:6;833:17;821:29;;899:3;891:4;883:6;879:17;869:8;865:32;862:41;859:2;;;916:1;913;906:12;859:2;649:277;;;;;:::o;932:139::-;;1016:6;1003:20;994:29;;1032:33;1059:5;1032:33;:::i;:::-;984:87;;;;:::o;1077:262::-;;1185:2;1173:9;1164:7;1160:23;1156:32;1153:2;;;1201:1;1198;1191:12;1153:2;1244:1;1269:53;1314:7;1305:6;1294:9;1290:22;1269:53;:::i;:::-;1259:63;;1215:117;1143:196;;;;:::o;1345:407::-;;;1470:2;1458:9;1449:7;1445:23;1441:32;1438:2;;;1486:1;1483;1476:12;1438:2;1529:1;1554:53;1599:7;1590:6;1579:9;1575:22;1554:53;:::i;:::-;1544:63;;1500:117;1656:2;1682:53;1727:7;1718:6;1707:9;1703:22;1682:53;:::i;:::-;1672:63;;1627:118;1428:324;;;;;:::o;1758:552::-;;;;1900:2;1888:9;1879:7;1875:23;1871:32;1868:2;;;1916:1;1913;1906:12;1868:2;1959:1;1984:53;2029:7;2020:6;2009:9;2005:22;1984:53;:::i;:::-;1974:63;;1930:117;2086:2;2112:53;2157:7;2148:6;2137:9;2133:22;2112:53;:::i;:::-;2102:63;;2057:118;2214:2;2240:53;2285:7;2276:6;2265:9;2261:22;2240:53;:::i;:::-;2230:63;;2185:118;1858:452;;;;;:::o;2316:407::-;;;2441:2;2429:9;2420:7;2416:23;2412:32;2409:2;;;2457:1;2454;2447:12;2409:2;2500:1;2525:53;2570:7;2561:6;2550:9;2546:22;2525:53;:::i;:::-;2515:63;;2471:117;2627:2;2653:53;2698:7;2689:6;2678:9;2674:22;2653:53;:::i;:::-;2643:63;;2598:118;2399:324;;;;;:::o;2729:733::-;;;;;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;3011:1;3000:9;2996:17;2983:31;3041:18;3033:6;3030:30;3027:2;;;3073:1;3070;3063:12;3027:2;3109:80;3181:7;3172:6;3161:9;3157:22;3109:80;:::i;:::-;3091:98;;;;2954:245;3266:2;3255:9;3251:18;3238:32;3297:18;3289:6;3286:30;3283:2;;;3329:1;3326;3319:12;3283:2;3365:80;3437:7;3428:6;3417:9;3413:22;3365:80;:::i;:::-;3347:98;;;;3209:246;2882:580;;;;;;;:::o;3468:262::-;;3576:2;3564:9;3555:7;3551:23;3547:32;3544:2;;;3592:1;3589;3582:12;3544:2;3635:1;3660:53;3705:7;3696:6;3685:9;3681:22;3660:53;:::i;:::-;3650:63;;3606:117;3534:196;;;;:::o;3736:109::-;3817:21;3832:5;3817:21;:::i;:::-;3812:3;3805:34;3795:50;;:::o;3851:364::-;;3967:39;4000:5;3967:39;:::i;:::-;4022:71;4086:6;4081:3;4022:71;:::i;:::-;4015:78;;4102:52;4147:6;4142:3;4135:4;4128:5;4124:16;4102:52;:::i;:::-;4179:29;4201:6;4179:29;:::i;:::-;4174:3;4170:39;4163:46;;3943:272;;;;;:::o;4221:367::-;;4384:67;4448:2;4443:3;4384:67;:::i;:::-;4377:74;;4481:34;4477:1;4472:3;4468:11;4461:55;4547:5;4542:2;4537:3;4533:12;4526:27;4579:2;4574:3;4570:12;4563:19;;4367:221;;;:::o;4594:366::-;;4757:67;4821:2;4816:3;4757:67;:::i;:::-;4750:74;;4854:34;4850:1;4845:3;4841:11;4834:55;4920:4;4915:2;4910:3;4906:12;4899:26;4951:2;4946:3;4942:12;4935:19;;4740:220;;;:::o;4966:366::-;;5129:67;5193:2;5188:3;5129:67;:::i;:::-;5122:74;;5226:34;5222:1;5217:3;5213:11;5206:55;5292:4;5287:2;5282:3;5278:12;5271:26;5323:2;5318:3;5314:12;5307:19;;5112:220;;;:::o;5338:370::-;;5501:67;5565:2;5560:3;5501:67;:::i;:::-;5494:74;;5598:34;5594:1;5589:3;5585:11;5578:55;5664:8;5659:2;5654:3;5650:12;5643:30;5699:2;5694:3;5690:12;5683:19;;5484:224;;;:::o;5714:372::-;;5877:67;5941:2;5936:3;5877:67;:::i;:::-;5870:74;;5974:34;5970:1;5965:3;5961:11;5954:55;6040:10;6035:2;6030:3;6026:12;6019:32;6077:2;6072:3;6068:12;6061:19;;5860:226;;;:::o;6092:365::-;;6255:67;6319:2;6314:3;6255:67;:::i;:::-;6248:74;;6352:34;6348:1;6343:3;6339:11;6332:55;6418:3;6413:2;6408:3;6404:12;6397:25;6448:2;6443:3;6439:12;6432:19;;6238:219;;;:::o;6463:369::-;;6626:67;6690:2;6685:3;6626:67;:::i;:::-;6619:74;;6723:34;6719:1;6714:3;6710:11;6703:55;6789:7;6784:2;6779:3;6775:12;6768:29;6823:2;6818:3;6814:12;6807:19;;6609:223;;;:::o;6838:368::-;;7001:67;7065:2;7060:3;7001:67;:::i;:::-;6994:74;;7098:34;7094:1;7089:3;7085:11;7078:55;7164:6;7159:2;7154:3;7150:12;7143:28;7197:2;7192:3;7188:12;7181:19;;6984:222;;;:::o;7212:369::-;;7375:67;7439:2;7434:3;7375:67;:::i;:::-;7368:74;;7472:34;7468:1;7463:3;7459:11;7452:55;7538:7;7533:2;7528:3;7524:12;7517:29;7572:2;7567:3;7563:12;7556:19;;7358:223;;;:::o;7587:118::-;7674:24;7692:5;7674:24;:::i;:::-;7669:3;7662:37;7652:53;;:::o;7711:112::-;7794:22;7810:5;7794:22;:::i;:::-;7789:3;7782:35;7772:51;;:::o;7829:210::-;;7954:2;7943:9;7939:18;7931:26;;7967:65;8029:1;8018:9;8014:17;8005:6;7967:65;:::i;:::-;7921:118;;;;:::o;8045:313::-;;8196:2;8185:9;8181:18;8173:26;;8245:9;8239:4;8235:20;8231:1;8220:9;8216:17;8209:47;8273:78;8346:4;8337:6;8273:78;:::i;:::-;8265:86;;8163:195;;;;:::o;8364:419::-;;8568:2;8557:9;8553:18;8545:26;;8617:9;8611:4;8607:20;8603:1;8592:9;8588:17;8581:47;8645:131;8771:4;8645:131;:::i;:::-;8637:139;;8535:248;;;:::o;8789:419::-;;8993:2;8982:9;8978:18;8970:26;;9042:9;9036:4;9032:20;9028:1;9017:9;9013:17;9006:47;9070:131;9196:4;9070:131;:::i;:::-;9062:139;;8960:248;;;:::o;9214:419::-;;9418:2;9407:9;9403:18;9395:26;;9467:9;9461:4;9457:20;9453:1;9442:9;9438:17;9431:47;9495:131;9621:4;9495:131;:::i;:::-;9487:139;;9385:248;;;:::o;9639:419::-;;9843:2;9832:9;9828:18;9820:26;;9892:9;9886:4;9882:20;9878:1;9867:9;9863:17;9856:47;9920:131;10046:4;9920:131;:::i;:::-;9912:139;;9810:248;;;:::o;10064:419::-;;10268:2;10257:9;10253:18;10245:26;;10317:9;10311:4;10307:20;10303:1;10292:9;10288:17;10281:47;10345:131;10471:4;10345:131;:::i;:::-;10337:139;;10235:248;;;:::o;10489:419::-;;10693:2;10682:9;10678:18;10670:26;;10742:9;10736:4;10732:20;10728:1;10717:9;10713:17;10706:47;10770:131;10896:4;10770:131;:::i;:::-;10762:139;;10660:248;;;:::o;10914:419::-;;11118:2;11107:9;11103:18;11095:26;;11167:9;11161:4;11157:20;11153:1;11142:9;11138:17;11131:47;11195:131;11321:4;11195:131;:::i;:::-;11187:139;;11085:248;;;:::o;11339:419::-;;11543:2;11532:9;11528:18;11520:26;;11592:9;11586:4;11582:20;11578:1;11567:9;11563:17;11556:47;11620:131;11746:4;11620:131;:::i;:::-;11612:139;;11510:248;;;:::o;11764:419::-;;11968:2;11957:9;11953:18;11945:26;;12017:9;12011:4;12007:20;12003:1;11992:9;11988:17;11981:47;12045:131;12171:4;12045:131;:::i;:::-;12037:139;;11935:248;;;:::o;12189:222::-;;12320:2;12309:9;12305:18;12297:26;;12333:71;12401:1;12390:9;12386:17;12377:6;12333:71;:::i;:::-;12287:124;;;;:::o;12417:214::-;;12544:2;12533:9;12529:18;12521:26;;12557:67;12621:1;12610:9;12606:17;12597:6;12557:67;:::i;:::-;12511:120;;;;:::o;12637:99::-;;12723:5;12717:12;12707:22;;12696:40;;;:::o;12742:169::-;;12860:6;12855:3;12848:19;12900:4;12895:3;12891:14;12876:29;;12838:73;;;;:::o;12917:305::-;;12976:20;12994:1;12976:20;:::i;:::-;12971:25;;13010:20;13028:1;13010:20;:::i;:::-;13005:25;;13164:1;13096:66;13092:74;13089:1;13086:81;13083:2;;;13170:18;;:::i;:::-;13083:2;13214:1;13211;13207:9;13200:16;;12961:261;;;;:::o;13228:191::-;;13288:20;13306:1;13288:20;:::i;:::-;13283:25;;13322:20;13340:1;13322:20;:::i;:::-;13317:25;;13361:1;13358;13355:8;13352:2;;;13366:18;;:::i;:::-;13352:2;13411:1;13408;13404:9;13396:17;;13273:146;;;;:::o;13425:96::-;;13491:24;13509:5;13491:24;:::i;:::-;13480:35;;13470:51;;;:::o;13527:90::-;;13604:5;13597:13;13590:21;13579:32;;13569:48;;;:::o;13623:126::-;;13700:42;13693:5;13689:54;13678:65;;13668:81;;;:::o;13755:77::-;;13821:5;13810:16;;13800:32;;;:::o;13838:86::-;;13913:4;13906:5;13902:16;13891:27;;13881:43;;;:::o;13930:307::-;13998:1;14008:113;14022:6;14019:1;14016:13;14008:113;;;14107:1;14102:3;14098:11;14092:18;14088:1;14083:3;14079:11;14072:39;14044:2;14041:1;14037:10;14032:15;;14008:113;;;14139:6;14136:1;14133:13;14130:2;;;14219:1;14210:6;14205:3;14201:16;14194:27;14130:2;13979:258;;;;:::o;14243:320::-;;14324:1;14318:4;14314:12;14304:22;;14371:1;14365:4;14361:12;14392:18;14382:2;;14448:4;14440:6;14436:17;14426:27;;14382:2;14510;14502:6;14499:14;14479:18;14476:38;14473:2;;;14529:18;;:::i;:::-;14473:2;14294:269;;;;:::o;14569:233::-;;14631:24;14649:5;14631:24;:::i;:::-;14622:33;;14677:66;14670:5;14667:77;14664:2;;;14747:18;;:::i;:::-;14664:2;14794:1;14787:5;14783:13;14776:20;;14612:190;;;:::o;14808:180::-;14856:77;14853:1;14846:88;14953:4;14950:1;14943:15;14977:4;14974:1;14967:15;14994:180;15042:77;15039:1;15032:88;15139:4;15136:1;15129:15;15163:4;15160:1;15153:15;15180:102;;15272:2;15268:7;15263:2;15256:5;15252:14;15248:28;15238:38;;15228:54;;;:::o;15288:122::-;15361:24;15379:5;15361:24;:::i;:::-;15354:5;15351:35;15341:2;;15400:1;15397;15390:12;15341:2;15331:79;:::o;15416:122::-;15489:24;15507:5;15489:24;:::i;:::-;15482:5;15479:35;15469:2;;15528:1;15525;15518:12;15469:2;15459:79;:::o

Swarm Source

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