ETH Price: $3,454.86 (+1.65%)

Token

LGO Token (LGO)
 

Overview

Max Total Supply

216,957,463.84772916 LGO

Holders

5,290 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
646.48764959 LGO

Value
$0.00
0xa586a3b8939e9c0dc72d88166f6f6bb7558eedce
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Exchange with decentralized ledgers

ICO Information

ICO Start Date : Feb 01, 2018   
ICO End Date : Feb 15, 2018
Total Raised : $18,856,000
ICO Price  : $0.32 | 0.0003094 ETH
Country : France 

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NewLGO

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 100000 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-07-10
*/

pragma solidity ^0.5.0;

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}




contract MinterRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender));
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}






/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // 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-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 * Originally based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 *
 * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
 * all accounts just by listening to said events. Note that this isn't required by the specification, and other
 * compliant implementations may not do it.
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    /**
    * @dev Total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param owner The address to query the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    /**
    * @dev Transfer token for a specified address
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * 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
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
    * @dev Transfer token for a specified addresses
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
        emit Approval(account, msg.sender, _allowed[account][msg.sender]);
    }
}





/**
 * @title ERC20Detailed token
 * @dev The decimals are only for visualization purposes.
 * All the operations are done using the smallest and indivisible token unit,
 * just as on Ethereum all the operations are done in wei.
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

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

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}






/**
 * @title ERC20Mintable
 * @dev ERC20 minting logic
 */
contract ERC20Mintable is ERC20, MinterRole {
    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param value The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address to, uint256 value) public onlyMinter returns (bool) {
        _mint(to, value);
        return true;
    }
}





/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract ERC20Burnable is ERC20 {
    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance
     * @param from address The address which you want to send tokens from
     * @param value uint256 The amount of token to be burned
     */
    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
}



/**
* @title New LGO contract
* @dev ERC20 with bulk minting function restricted to minter role, bulk transferring and burn function
*/
contract NewLGO is ERC20, ERC20Detailed, ERC20Mintable, ERC20Burnable {

  /**
  * [LGO Token CONSTRUCTOR]
  * @dev Deploy contract with name, symbol and decimal
  */
  constructor()
  ERC20Detailed("LGO Token", "LGO", 8)
  public { }

  /**
  * @dev Public function that mints amounts of token and assigns it to
  * respective accounts
  * @param accounts The accounts that will receive the created tokens.
  * @param values The amounts that will be created (in the same order).
  */
  function bulkMint(address[] memory accounts, uint256[] memory values)
    public
  {
    require(accounts.length == values.length, "Accounts array and values array don't have the same length");

    for (uint i = 0; i<accounts.length; i++) {
      mint(accounts[i], values[i]);
    }

  }

  /**
  * @dev Public function that transfers amounts of token to
  * respective accounts
  * @param accounts The accounts that will receive the tokens.
  * @param values The amounts that will be sent (in the same order).
  */
  function bulkTransfer(address[] memory accounts, uint256[] memory values)
    public
  {
    require(accounts.length == values.length, "Accounts array and values array don't have the same length");

    for (uint i = 0; i<accounts.length; i++) {
      transfer(accounts[i], values[i]);
    }

  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"accounts","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"accounts","type":"address[]"},{"name":"values","type":"uint256[]"}],"name":"bulkMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040523480156200001157600080fd5b506040518060400160405280600981526020017f4c474f20546f6b656e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4c474f00000000000000000000000000000000000000000000000000000000008152506008826003908051906020019062000098929190620001b8565b508151620000ae906004906020850190620001b8565b506005805460ff191660ff9290921691909117905550620000d1905033620000d7565b6200025d565b620000f28160066200012960201b620011e61790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6001600160a01b0381166200013d57600080fd5b6200015282826001600160e01b036200018216565b156200015d57600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200019857600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001fb57805160ff19168380011785556200022b565b828001600101855582156200022b579182015b828111156200022b5782518255916020019190600101906200020e565b50620002399291506200023d565b5090565b6200025a91905b8082111562000239576000815560010162000244565b90565b611359806200026d6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80636ae459bd116100cd5780639865027511610081578063a9059cbb11610066578063a9059cbb14610662578063aa271e1a1461069b578063dd62ed3e146106ce57610151565b80639865027514610621578063a457c2d71461062957610151565b806379cc6790116100b257806379cc6790146105ad57806395d89b41146105e6578063983b2d56146105ee57610151565b80636ae459bd1461045357806370a082311461057a57610151565b806323b872dd11610124578063395093511161010957806339509351146103c457806340c10f19146103fd57806342966c681461043657610151565b806323b872dd14610363578063313ce567146103a657610151565b806306fdde0314610156578063095ea7b3146101d3578063153a1f3e1461022057806318160ddd14610349575b600080fd5b61015e610709565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020c600480360360408110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107bd565b604080519115158252519081900360200190f35b6103476004803603604081101561023657600080fd5b81019060208101813564010000000081111561025157600080fd5b82018360208201111561026357600080fd5b8035906020019184602083028401116401000000008311171561028557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102d557600080fd5b8201836020820111156102e757600080fd5b8035906020019184602083028401116401000000008311171561030957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610853945050505050565b005b6103516108f7565b60408051918252519081900360200190f35b61020c6004803603606081101561037957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356108fd565b6103ae6109ed565b6040805160ff9092168252519081900360200190f35b61020c600480360360408110156103da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109f6565b61020c6004803603604081101561041357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610acb565b6103476004803603602081101561044c57600080fd5b5035610af2565b6103476004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460208302840111640100000000831117156104b857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184602083028401116401000000008311171561053c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610aff945050505050565b6103516004803603602081101561059057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b9e565b610347600480360360408110156105c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bc6565b61015e610bd4565b6103476004803603602081101561060457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c53565b610347610c6e565b61020c6004803603604081101561063f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c79565b61020c6004803603604081101561067857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610cdc565b61020c600480360360208110156106b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ce9565b610351600480360360408110156106e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d02565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107b35780601f10610788576101008083540402835291602001916107b3565b820191906000526020600020905b81548152906001019060200180831161079657829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff83166107df57600080fd5b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b80518251146108ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806112eb603a913960400191505060405180910390fd5b60005b82518110156108f2576108e98382815181106108c857fe5b60200260200101518383815181106108dc57fe5b6020026020010151610cdc565b506001016108b0565b505050565b60025490565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020908152604080832033845290915281205461093e908363ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832033845290915290205561097a848484610d4f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60055460ff1690565b600073ffffffffffffffffffffffffffffffffffffffff8316610a1857600080fd5b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902054610a59908363ffffffff610e4e16565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000610ad633610ce9565b610adf57600080fd5b610ae98383610e67565b50600192915050565b610afc3382610f36565b50565b8051825114610b59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806112eb603a913960400191505060405180910390fd5b60005b82518110156108f257610b95838281518110610b7457fe5b6020026020010151838381518110610b8857fe5b6020026020010151610acb565b50600101610b5c565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610bd08282611004565b5050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107b35780601f10610788576101008083540402835291602001916107b3565b610c5c33610ce9565b610c6557600080fd5b610afc816110ed565b610c7733611142565b565b600073ffffffffffffffffffffffffffffffffffffffff8316610c9b57600080fd5b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902054610a59908363ffffffff610d3a16565b6000610ae9338484610d4f565b6000610cfc60068363ffffffff61119716565b92915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600082821115610d4957600080fd5b50900390565b73ffffffffffffffffffffffffffffffffffffffff8216610d6f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054610da5908263ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054610de7908263ffffffff610e4e16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610e6057600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610e8757600080fd5b600254610e9a908263ffffffff610e4e16565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610ed3908263ffffffff610e4e16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610f5657600080fd5b600254610f69908263ffffffff610d3a16565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610fa2908263ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160209081526040808320338452909152902054611045908263ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602090815260408083203384529091529020556110808282610f36565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35050565b6110fe60068263ffffffff6111e616565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61115360068263ffffffff61126a16565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600073ffffffffffffffffffffffffffffffffffffffff82166111b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff811661120657600080fd5b6112108282611197565b1561121a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff811661128a57600080fd5b6112948282611197565b61129d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905556fe4163636f756e747320617272617920616e642076616c75657320617272617920646f6e27742068617665207468652073616d65206c656e677468a265627a7a72305820898281510f2540b52fce958a581aeacd93c6b6f21930cacd4bb07c7f113e4b1264736f6c634300050a0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101515760003560e01c80636ae459bd116100cd5780639865027511610081578063a9059cbb11610066578063a9059cbb14610662578063aa271e1a1461069b578063dd62ed3e146106ce57610151565b80639865027514610621578063a457c2d71461062957610151565b806379cc6790116100b257806379cc6790146105ad57806395d89b41146105e6578063983b2d56146105ee57610151565b80636ae459bd1461045357806370a082311461057a57610151565b806323b872dd11610124578063395093511161010957806339509351146103c457806340c10f19146103fd57806342966c681461043657610151565b806323b872dd14610363578063313ce567146103a657610151565b806306fdde0314610156578063095ea7b3146101d3578063153a1f3e1461022057806318160ddd14610349575b600080fd5b61015e610709565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610198578181015183820152602001610180565b50505050905090810190601f1680156101c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020c600480360360408110156101e957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107bd565b604080519115158252519081900360200190f35b6103476004803603604081101561023657600080fd5b81019060208101813564010000000081111561025157600080fd5b82018360208201111561026357600080fd5b8035906020019184602083028401116401000000008311171561028557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102d557600080fd5b8201836020820111156102e757600080fd5b8035906020019184602083028401116401000000008311171561030957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610853945050505050565b005b6103516108f7565b60408051918252519081900360200190f35b61020c6004803603606081101561037957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356108fd565b6103ae6109ed565b6040805160ff9092168252519081900360200190f35b61020c600480360360408110156103da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109f6565b61020c6004803603604081101561041357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610acb565b6103476004803603602081101561044c57600080fd5b5035610af2565b6103476004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460208302840111640100000000831117156104b857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184602083028401116401000000008311171561053c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610aff945050505050565b6103516004803603602081101561059057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b9e565b610347600480360360408110156105c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bc6565b61015e610bd4565b6103476004803603602081101561060457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c53565b610347610c6e565b61020c6004803603604081101561063f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c79565b61020c6004803603604081101561067857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610cdc565b61020c600480360360208110156106b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ce9565b610351600480360360408110156106e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610d02565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107b35780601f10610788576101008083540402835291602001916107b3565b820191906000526020600020905b81548152906001019060200180831161079657829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff83166107df57600080fd5b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b80518251146108ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806112eb603a913960400191505060405180910390fd5b60005b82518110156108f2576108e98382815181106108c857fe5b60200260200101518383815181106108dc57fe5b6020026020010151610cdc565b506001016108b0565b505050565b60025490565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020908152604080832033845290915281205461093e908363ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832033845290915290205561097a848484610d4f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60055460ff1690565b600073ffffffffffffffffffffffffffffffffffffffff8316610a1857600080fd5b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902054610a59908363ffffffff610e4e16565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6000610ad633610ce9565b610adf57600080fd5b610ae98383610e67565b50600192915050565b610afc3382610f36565b50565b8051825114610b59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806112eb603a913960400191505060405180910390fd5b60005b82518110156108f257610b95838281518110610b7457fe5b6020026020010151838381518110610b8857fe5b6020026020010151610acb565b50600101610b5c565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610bd08282611004565b5050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107b35780601f10610788576101008083540402835291602001916107b3565b610c5c33610ce9565b610c6557600080fd5b610afc816110ed565b610c7733611142565b565b600073ffffffffffffffffffffffffffffffffffffffff8316610c9b57600080fd5b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902054610a59908363ffffffff610d3a16565b6000610ae9338484610d4f565b6000610cfc60068363ffffffff61119716565b92915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b600082821115610d4957600080fd5b50900390565b73ffffffffffffffffffffffffffffffffffffffff8216610d6f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054610da5908263ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054610de7908263ffffffff610e4e16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082820183811015610e6057600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610e8757600080fd5b600254610e9a908263ffffffff610e4e16565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610ed3908263ffffffff610e4e16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610f5657600080fd5b600254610f69908263ffffffff610d3a16565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610fa2908263ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160209081526040808320338452909152902054611045908263ffffffff610d3a16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602090815260408083203384529091529020556110808282610f36565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35050565b6110fe60068263ffffffff6111e616565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61115360068263ffffffff61126a16565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600073ffffffffffffffffffffffffffffffffffffffff82166111b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff811661120657600080fd5b6112108282611197565b1561121a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b73ffffffffffffffffffffffffffffffffffffffff811661128a57600080fd5b6112948282611197565b61129d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff1660009081526020919091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905556fe4163636f756e747320617272617920616e642076616c75657320617272617920646f6e27742068617665207468652073616d65206c656e677468a265627a7a72305820898281510f2540b52fce958a581aeacd93c6b6f21930cacd4bb07c7f113e4b1264736f6c634300050a0032

Deployed Bytecode Sourcemap

14667:1349:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14667:1349:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12903:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12903:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7316:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7316:244:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;15706:305;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15706:305:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15706:305:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15706:305:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15706:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15706:305:0;;;;;;;;-1:-1:-1;15706:305:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;15706:305:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15706:305:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15706:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15706:305:0;;-1:-1:-1;15706:305:0;;-1:-1:-1;;;;;15706:305:0:i;:::-;;5475:91;;;:::i;:::-;;;;;;;;;;;;;;;;8033:299;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8033:299:0;;;;;;;;;;;;;;;;;;:::i;13219:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8847:323;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8847:323:0;;;;;;;;;:::i;13681:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13681:131:0;;;;;;;;;:::i;14083:79::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14083:79:0;;:::i;15170:297::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15170:297:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15170:297:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15170:297:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15170:297:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15170:297:0;;;;;;;;-1:-1:-1;15170:297:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;15170:297:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15170:297:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;15170:297:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15170:297:0;;-1:-1:-1;15170:297:0;;-1:-1:-1;;;;;15170:297:0:i;5782:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5782:106:0;;;;:::i;14421:95::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14421:95:0;;;;;;;;;:::i;13053:87::-;;;:::i;1479:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1479:92:0;;;;:::i;1579:77::-;;;:::i;9690:333::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9690:333:0;;;;;;;;;:::i;6529:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6529:140:0;;;;;;;;;:::i;1362:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1362:109:0;;;;:::i;6227:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6227:131:0;;;;;;;;;;;:::i;12903:83::-;12973:5;12966:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12940:13;;12966:12;;12973:5;;12966:12;;12973:5;12966:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12903:83;:::o;7316:244::-;7381:4;7406:21;;;7398:30;;;;;;7450:10;7441:20;;;;:8;:20;;;;;;;;;:29;;;;;;;;;;;;:37;;;7494:36;;;;;;;7441:29;;7450:10;7494:36;;;;;;;;;;;-1:-1:-1;7548:4:0;7316:244;;;;:::o;15706:305::-;15829:6;:13;15810:8;:15;:32;15802:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15919:6;15914:90;15933:8;:15;15931:1;:17;15914:90;;;15964:32;15973:8;15982:1;15973:11;;;;;;;;;;;;;;15986:6;15993:1;15986:9;;;;;;;;;;;;;;15964:8;:32::i;:::-;-1:-1:-1;15950:3:0;;15914:90;;;;15706:305;;:::o;5475:91::-;5546:12;;5475:91;:::o;8033:299::-;8158:14;;;8112:4;8158:14;;;:8;:14;;;;;;;;8173:10;8158:26;;;;;;;;:37;;8189:5;8158:37;:30;:37;:::i;:::-;8129:14;;;;;;;:8;:14;;;;;;;;8144:10;8129:26;;;;;;;:66;8206:26;8138:4;8222:2;8226:5;8206:9;:26::i;:::-;8248:54;;;8275:14;;;;:8;:14;;;;;;;;8263:10;8275:26;;;;;;;;;;;8248:54;;;;;;;8263:10;;8248:54;;;;;;;;;;;;-1:-1:-1;8320:4:0;8033:299;;;;;:::o;13219:83::-;13285:9;;;;13219:83;:::o;8847:323::-;8927:4;8952:21;;;8944:30;;;;;;9028:10;9019:20;;;;:8;:20;;;;;;;;;:29;;;;;;;;;;:45;;9053:10;9019:45;:33;:45;:::i;:::-;8996:10;8987:20;;;;:8;:20;;;;;;;;;:29;;;;;;;;;;;;:77;;;9080:60;;;;;;8987:29;;9080:60;;;;;;;;;;;-1:-1:-1;9158:4:0;8847:323;;;;:::o;13681:131::-;13749:4;1313:20;1322:10;1313:8;:20::i;:::-;1305:29;;;;;;13766:16;13772:2;13776:5;13766;:16::i;:::-;-1:-1:-1;13800:4:0;13681:131;;;;:::o;14083:79::-;14130:24;14136:10;14148:5;14130;:24::i;:::-;14083:79;:::o;15170:297::-;15289:6;:13;15270:8;:15;:32;15262:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15379:6;15374:86;15393:8;:15;15391:1;:17;15374:86;;;15424:28;15429:8;15438:1;15429:11;;;;;;;;;;;;;;15442:6;15449:1;15442:9;;;;;;;;;;;;;;15424:4;:28::i;:::-;-1:-1:-1;15410:3:0;;15374:86;;5782:106;5864:16;;5837:7;5864:16;;;;;;;;;;;;5782:106::o;14421:95::-;14486:22;14496:4;14502:5;14486:9;:22::i;:::-;14421:95;;:::o;13053:87::-;13125:7;13118:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13092:13;;13118:14;;13125:7;;13118:14;;13125:7;13118:14;;;;;;;;;;;;;;;;;;;;;;;;1479:92;1313:20;1322:10;1313:8;:20::i;:::-;1305:29;;;;;;1544:19;1555:7;1544:10;:19::i;1579:77::-;1623:25;1637:10;1623:13;:25::i;:::-;1579:77::o;9690:333::-;9775:4;9800:21;;;9792:30;;;;;;9876:10;9867:20;;;;:8;:20;;;;;;;;;:29;;;;;;;;;;:50;;9901:15;9867:50;:33;:50;:::i;6529:140::-;6590:4;6607:32;6617:10;6629:2;6633:5;6607:9;:32::i;1362:109::-;1418:4;1442:21;:8;1455:7;1442:21;:12;:21;:::i;:::-;1435:28;1362:109;-1:-1:-1;;1362:109:0:o;6227:131::-;6326:15;;;;6299:7;6326:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;6227:131::o;3921:150::-;3979:7;4012:1;4007;:6;;3999:15;;;;;;-1:-1:-1;4037:5:0;;;3921:150::o;10245:262::-;10333:16;;;10325:25;;;;;;10381:15;;;:9;:15;;;;;;;;;;;:26;;10401:5;10381:26;:19;:26;:::i;:::-;10363:15;;;;:9;:15;;;;;;;;;;;:44;;;;10434:13;;;;;;;:24;;10452:5;10434:24;:17;:24;:::i;:::-;10418:13;;;;:9;:13;;;;;;;;;;;;:40;;;;10474:25;;;;;;;10418:13;;10474:25;;;;;;;;;;;;;10245:262;;;:::o;4157:150::-;4215:7;4247:5;;;4271:6;;;;4263:15;;;;;;4298:1;4157:150;-1:-1:-1;;;4157:150:0:o;10859:269::-;10934:21;;;10926:30;;;;;;10984:12;;:23;;11001:5;10984:23;:16;:23;:::i;:::-;10969:12;:38;11039:18;;;:9;:18;;;;;;;;;;;:29;;11062:5;11039:29;:22;:29;:::i;:::-;11018:18;;;:9;:18;;;;;;;;;;;:50;;;;11084:36;;;;;;;11018:18;;:9;;11084:36;;;;;;;;;;10859:269;;:::o;11362:::-;11437:21;;;11429:30;;;;;;11487:12;;:23;;11504:5;11487:23;:16;:23;:::i;:::-;11472:12;:38;11542:18;;;:9;:18;;;;;;;;;;;:29;;11565:5;11542:29;:22;:29;:::i;:::-;11521:18;;;:9;:18;;;;;;;;;;;:50;;;;11587:36;;;;;;;11521:9;;11587:36;;;;;;;;;;;11362:269;;:::o;12030:259::-;12133:17;;;;;;;:8;:17;;;;;;;;12151:10;12133:29;;;;;;;;:40;;12167:5;12133:40;:33;:40;:::i;:::-;12101:17;;;;;;;:8;:17;;;;;;;;12119:10;12101:29;;;;;;;:72;12184:21;12110:7;12199:5;12184;:21::i;:::-;12221:60;;;12251:17;;;;:8;:17;;;;;;;;12239:10;12251:29;;;;;;;;;;;12221:60;;;;;;;12239:10;;12221:60;;;;;;;;;;;;12030:259;;:::o;1664:122::-;1721:21;:8;1734:7;1721:21;:12;:21;:::i;:::-;1758:20;;;;;;;;;;;1664:122;:::o;1794:130::-;1854:24;:8;1870:7;1854:24;:15;:24;:::i;:::-;1894:22;;;;;;;;;;;1794:130;:::o;821:165::-;893:4;918:21;;;910:30;;;;;;-1:-1:-1;958:20:0;;:11;:20;;;;;;;;;;;;;;;821:165::o;273:186::-;350:21;;;342:30;;;;;;392:18;396:4;402:7;392:3;:18::i;:::-;391:19;383:28;;;;;;424:20;;:11;:20;;;;;;;;;;;:27;;;;447:4;424:27;;;273:186::o;538:189::-;618:21;;;610:30;;;;;;659:18;663:4;669:7;659:3;:18::i;:::-;651:27;;;;;;691:20;;714:5;691:20;;;;;;;;;;;:28;;;;;;538:189::o

Swarm Source

bzzr://898281510f2540b52fce958a581aeacd93c6b6f21930cacd4bb07c7f113e4b12
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.