ETH Price: $3,623.55 (-0.08%)
 

Overview

Max Total Supply

1,000,000,000 HAT

Holders

225

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
15 HAT

Value
$0.00
0xd7d68213f244517ee0d83400ba0f2f0cf670ca19
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:
HatToken

Compiler Version
v0.5.9+commit.e560f70d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-25
*/

pragma solidity 0.5.9;

/**
 * @title SafeMath 
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {
    /**
     * @dev Multiplie two unsigned integers, revert 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, revert 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 Subtract two unsigned integers, revert on underflow (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 Add two unsigned integers, revert on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
}

/**
 * @title ERC20 interface
 * @dev See https://eips.ethereum.org/EIPS/eip-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 Standard ERC20 token
 * @dev Implementation of the basic standard token.
 */
contract StandardToken is IERC20, Context {
    using SafeMath for uint256; 
    
    mapping (address => uint256) internal _balances; 
    mapping (address => mapping (address => uint256)) internal _allowed; 
    
    uint256 internal _totalSupply; 
    
    /**
     * @dev Total number of tokens in existence.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply; 
    }

    /**
     * @dev Get the balance of the specified address.
     * @param owner The address to query the balance of.
     * @return A 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 The address which owns the funds.
     * @param spender 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 tokens to 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(_msgSender(), 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) {
        _approve(_msgSender(), 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 The address which you want to send tokens from.
     * @param to The address which you want to transfer to.
     * @param value The amount of tokens to be transferred.
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value); 
        _approve(from, _msgSender(), _allowed[from][_msgSender()].sub(value)); 
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][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) {
        _approve(_msgSender(), spender, _allowed[_msgSender()][spender].add(addedValue)); 
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][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) {
        _approve(_msgSender(), spender, _allowed[_msgSender()][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Transfer tokens for a specified address.
     * @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), "Cannot transfer to the zero address"); 
        _balances[from] = _balances[from].sub(value); 
        _balances[to] = _balances[to].add(value); 
        emit Transfer(from, to, value); 
    }

    /**
     * @dev Approve an address to spend another addresses' tokens.
     * @param owner The address that owns the tokens.
     * @param spender The address that will spend the tokens.
     * @param value The number of tokens that can be spent.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(spender != address(0), "Cannot approve to the zero address"); 
        require(owner != address(0), "Setter cannot be the zero address"); 
	    _allowed[owner][spender] = value;
        emit Approval(owner, spender, value); 
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");
        _balances[account] = _balances[account].sub(amount);
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See {_burn} and {_approve}.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowed[account][_msgSender()].sub(amount));
    }

}

/**
 * @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.
 *
 * 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.
 */
contract Ownable is Context {
    address internal _owner;

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

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

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

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract HatToken is StandardToken, Ownable {
    string public constant name = "Health Alliance Token";
    string public constant symbol = "HAT";
    uint8 public constant decimals = 18;
    
    uint256 internal constant INITIAL_SUPPLY = 1000000000 ether;
    uint256 internal constant lock_total = 50000000 ether;            
    uint256 private start_time;
    uint256 private one_year = 31536000;   

    uint256 private release_value = 6000000 ether;

    address private constant tokenWallet = 0x7637aF16615D3B994e96C704713d9b40Baac6771;
    address private constant team_address =0x836F93846DA00edacD4C48426D26AB6953E02a36;
    address private constant foundation_address = 0xBa2b3f062104b5b9325cFA3d2D31f7A5f3981F52;
    event Lock(address account, uint lock_total);
    
    /**
     * @dev Constructor, initialize the basic information of contract.
     */
    constructor() public {
        _totalSupply = INITIAL_SUPPLY;
        _owner = tokenWallet;
        _balances[_owner] = 900000000 * 10 ** uint(decimals);
        start_time = now.add(one_year*2);
        _lock(team_address);
        _lock(foundation_address);
        emit Transfer(address(0), _owner, 900000000 * 10 ** uint(decimals));
    }
    function _lock(address account) internal {
        _balances[account] = _balances[account].add(lock_total);
        emit Transfer(address(0), account, lock_total);
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        if (msg.sender == team_address || msg.sender == foundation_address) {
            uint256 extra = getLockBalance();
            require(_balances[_msgSender()].sub(_value) >= extra);
        }
        return super.transfer(_to, _value);
        
    }
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        if (_from == team_address || _from == foundation_address) {
        uint256 extra = getLockBalance();
        require(_balances[_from].sub(_value) >= extra);
        }
        return super.transferFrom(_from, _to, _value);
    }
     function getLockBalance() public view returns(uint) {
         if (now < start_time) {
             return lock_total;
         }

        uint256 value = release_value.mul(((now.sub(start_time)).div(31536000)).add(1));

        if (value >= lock_total) {
            return 0;
        } 
        return lock_total.sub(value);   
    }

    function burn(uint256 amount) public onlyOwner {
        _burn(msg.sender, amount); 
    }

    /**
     * @dev See {ERC20-_burnFrom}.
     */
    function burnFrom(address account, uint256 amount) public onlyOwner {
        _burnFrom(account, amount); 
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLockBalance","outputs":[{"name":"","type":"uint256"}],"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":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":"amount","type":"uint256"}],"name":"burn","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":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","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":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"lock_total","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

60806040526301e133806005556a04f68ca6d8cd91c60000006006553480156200002857600080fd5b506b033b2e3c9fd0803ce8000000600281905550737637af16615d3b994e96c704713d9b40baac6771600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a6335a4e90002600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000122600260055402426200020d60201b62000ea91790919060201c565b6004819055506200014d73836f93846da00edacd4c48426d26ab6953e02a366200022d60201b60201c565b6200017273ba2b3f062104b5b9325cfa3d2d31f7a5f3981f526200022d60201b60201c565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a6335a4e900026040518082815260200191505060405180910390a362000346565b6000808284019050838110156200022357600080fd5b8091505092915050565b620002906a295be96e640669720000006000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200020d60201b62000ea91790919060201c565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a295be96e640669720000006040518082815260200191505060405180910390a350565b61186f80620003566000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b4114610485578063a457c2d714610508578063a9059cbb1461056e578063dd62ed3e146105d4578063f2fde38b1461064c5761010b565b806370a082311461037357806379cc6790146103cb5780638da5cb5b146104195780638f32d59b146104635761010b565b806323b872dd116100de57806323b872dd14610235578063313ce567146102bb57806339509351146102df57806342966c68146103455761010b565b806306fdde0314610110578063080a6f9214610193578063095ea7b3146101b157806318160ddd14610217575b600080fd5b610118610690565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015857808201518184015260208101905061013d565b50505050905090810190601f1680156101855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b6106c9565b6040518082815260200191505060405180910390f35b6101fd600480360360408110156101c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061077f565b604051808215151515815260200191505060405180910390f35b61021f61079d565b6040518082815260200191505060405180910390f35b6102a16004803603606081101561024b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107a7565b604051808215151515815260200191505060405180910390f35b6102c36108ba565b604051808260ff1660ff16815260200191505060405180910390f35b61032b600480360360408110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108bf565b604051808215151515815260200191505060405180910390f35b6103716004803603602081101561035b57600080fd5b8101908080359060200190929190505050610972565b005b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f9565b6040518082815260200191505060405180910390f35b610417600480360360408110156103e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a41565b005b610421610ac9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046b610af3565b604051808215151515815260200191505060405180910390f35b61048d610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cd5780820151818401526020810190506104b2565b50505050905090810190601f1680156104fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105546004803603604081101561051e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b6105ba6004803603604081101561058457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3e565b604051808215151515815260200191505060405180910390f35b610636600480360360408110156105ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d56565b6040518082815260200191505060405180910390f35b61068e6004803603602081101561066257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddd565b005b6040518060400160405280601581526020017f4865616c746820416c6c69616e636520546f6b656e000000000000000000000081525081565b60006004544210156106e8576a295be96e64066972000000905061077c565b600061073c61072b600161071d6301e1338061070f60045442610e6390919063ffffffff16565b610e8390919063ffffffff16565b610ea990919063ffffffff16565b600654610ec890919063ffffffff16565b90506a295be96e64066972000000811061075a57600091505061077c565b610778816a295be96e64066972000000610e6390919063ffffffff16565b9150505b90565b600061079361078c610f02565b8484610f0a565b6001905092915050565b6000600254905090565b600073836f93846da00edacd4c48426d26ab6953e02a3673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610836575073ba2b3f062104b5b9325cfa3d2d31f7a5f3981f5273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156108a65760006108456106c9565b905080610899846000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b10156108a457600080fd5b505b6108b1848484611101565b90509392505050565b601281565b60006109686108cc610f02565b8461096385600160006108dd610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea990919063ffffffff16565b610f0a565b6001905092915050565b61097a610af3565b6109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6109f633826111c0565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a49610af3565b610abb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610ac5828261135e565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b36610f02565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f484154000000000000000000000000000000000000000000000000000000000081525081565b6000610c34610b98610f02565b84610c2f8560016000610ba9610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b610f0a565b6001905092915050565b600073836f93846da00edacd4c48426d26ab6953e02a3673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ccd575073ba2b3f062104b5b9325cfa3d2d31f7a5f3981f5273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610d44576000610cdc6106c9565b905080610d3784600080610cee610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b1015610d4257600080fd5b505b610d4e8383611413565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610de5610af3565b610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610e6081611431565b50565b600082821115610e7257600080fd5b600082840390508091505092915050565b6000808211610e9157600080fd5b6000828481610e9c57fe5b0490508091505092915050565b600080828401905083811015610ebe57600080fd5b8091505092915050565b600080831415610edb5760009050610efc565b6000828402905082848281610eec57fe5b0414610ef757600080fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061178e6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611016576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117d66021913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600061110e848484611577565b6111b58461111a610f02565b6111b085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611167610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b610f0a565b600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611246576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117f76021913960400191505060405180910390fd5b611297816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112ee81600254610e6390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61136882826111c0565b61140f82611374610f02565b61140a84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113c1610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b610f0a565b5050565b6000611427611420610f02565b8484611577565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806117b06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806118186023913960400191505060405180910390fd5b61164e816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe43616e6e6f7420617070726f766520746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373a265627a7a72305820e681d5f1f2b8901c0e8d56a33721d8d7e9eeb566757040aed91e99ea4750514464736f6c63430005090032

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b4114610485578063a457c2d714610508578063a9059cbb1461056e578063dd62ed3e146105d4578063f2fde38b1461064c5761010b565b806370a082311461037357806379cc6790146103cb5780638da5cb5b146104195780638f32d59b146104635761010b565b806323b872dd116100de57806323b872dd14610235578063313ce567146102bb57806339509351146102df57806342966c68146103455761010b565b806306fdde0314610110578063080a6f9214610193578063095ea7b3146101b157806318160ddd14610217575b600080fd5b610118610690565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015857808201518184015260208101905061013d565b50505050905090810190601f1680156101855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b6106c9565b6040518082815260200191505060405180910390f35b6101fd600480360360408110156101c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061077f565b604051808215151515815260200191505060405180910390f35b61021f61079d565b6040518082815260200191505060405180910390f35b6102a16004803603606081101561024b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107a7565b604051808215151515815260200191505060405180910390f35b6102c36108ba565b604051808260ff1660ff16815260200191505060405180910390f35b61032b600480360360408110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108bf565b604051808215151515815260200191505060405180910390f35b6103716004803603602081101561035b57600080fd5b8101908080359060200190929190505050610972565b005b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f9565b6040518082815260200191505060405180910390f35b610417600480360360408110156103e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a41565b005b610421610ac9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046b610af3565b604051808215151515815260200191505060405180910390f35b61048d610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cd5780820151818401526020810190506104b2565b50505050905090810190601f1680156104fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105546004803603604081101561051e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b6105ba6004803603604081101561058457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3e565b604051808215151515815260200191505060405180910390f35b610636600480360360408110156105ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d56565b6040518082815260200191505060405180910390f35b61068e6004803603602081101561066257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddd565b005b6040518060400160405280601581526020017f4865616c746820416c6c69616e636520546f6b656e000000000000000000000081525081565b60006004544210156106e8576a295be96e64066972000000905061077c565b600061073c61072b600161071d6301e1338061070f60045442610e6390919063ffffffff16565b610e8390919063ffffffff16565b610ea990919063ffffffff16565b600654610ec890919063ffffffff16565b90506a295be96e64066972000000811061075a57600091505061077c565b610778816a295be96e64066972000000610e6390919063ffffffff16565b9150505b90565b600061079361078c610f02565b8484610f0a565b6001905092915050565b6000600254905090565b600073836f93846da00edacd4c48426d26ab6953e02a3673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610836575073ba2b3f062104b5b9325cfa3d2d31f7a5f3981f5273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156108a65760006108456106c9565b905080610899846000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b10156108a457600080fd5b505b6108b1848484611101565b90509392505050565b601281565b60006109686108cc610f02565b8461096385600160006108dd610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea990919063ffffffff16565b610f0a565b6001905092915050565b61097a610af3565b6109ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6109f633826111c0565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a49610af3565b610abb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610ac5828261135e565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b36610f02565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f484154000000000000000000000000000000000000000000000000000000000081525081565b6000610c34610b98610f02565b84610c2f8560016000610ba9610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b610f0a565b6001905092915050565b600073836f93846da00edacd4c48426d26ab6953e02a3673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ccd575073ba2b3f062104b5b9325cfa3d2d31f7a5f3981f5273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610d44576000610cdc6106c9565b905080610d3784600080610cee610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b1015610d4257600080fd5b505b610d4e8383611413565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610de5610af3565b610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610e6081611431565b50565b600082821115610e7257600080fd5b600082840390508091505092915050565b6000808211610e9157600080fd5b6000828481610e9c57fe5b0490508091505092915050565b600080828401905083811015610ebe57600080fd5b8091505092915050565b600080831415610edb5760009050610efc565b6000828402905082848281610eec57fe5b0414610ef757600080fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061178e6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611016576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117d66021913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600061110e848484611577565b6111b58461111a610f02565b6111b085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611167610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b610f0a565b600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611246576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117f76021913960400191505060405180910390fd5b611297816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112ee81600254610e6390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61136882826111c0565b61140f82611374610f02565b61140a84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113c1610f02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b610f0a565b5050565b6000611427611420610f02565b8484611577565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806117b06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806118186023913960400191505060405180910390fd5b61164e816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e6390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116e1816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ea990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe43616e6e6f7420617070726f766520746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735365747465722063616e6e6f7420626520746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737343616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373a265627a7a72305820e681d5f1f2b8901c0e8d56a33721d8d7e9eeb566757040aed91e99ea4750514464736f6c63430005090032

Deployed Bytecode Sourcemap

11643:2736:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11643:2736:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11694:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11694:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13754:346;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5502:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5502:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3666:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13415:332;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13415:332:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11798:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6865:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6865:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14108:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14108:92:0;;;;;;;;;;;;;;;;;:::i;:::-;;3976:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3976:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14262:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14262:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10577:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10943:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11754:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11754:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7604:217;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7604:217:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13072:337;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13072:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4406:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4406:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11192:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11192:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11694:53;;;;;;;;;;;;;;;;;;;:::o;13754:346::-;13800:4;13828:10;;13822:3;:16;13818:68;;;11951:14;13856:17;;;;13818:68;13898:13;13914:63;13932:44;13974:1;13933:35;13959:8;13934:19;13942:10;;13934:3;:7;;:19;;;;:::i;:::-;13933:25;;:35;;;;:::i;:::-;13932:41;;:44;;;;:::i;:::-;13914:13;;:17;;:63;;;;:::i;:::-;13898:79;;11951:14;13994:5;:19;13990:60;;14037:1;14030:8;;;;;13990:60;14068:21;14083:5;11951:14;14068;;:21;;;;:::i;:::-;14061:28;;;13754:346;;:::o;5502:151::-;5567:4;5584:38;5593:12;:10;:12::i;:::-;5607:7;5616:5;5584:8;:38::i;:::-;5641:4;5634:11;;5502:151;;;;:::o;3666:92::-;3710:7;3737:12;;3730:19;;3666:92;:::o;13415:332::-;13497:4;12245:42;13518:21;;:5;:21;;;:52;;;;12340:42;13543:27;;:5;:27;;;13518:52;13514:170;;;13583:13;13599:16;:14;:16::i;:::-;13583:32;;13666:5;13634:28;13655:6;13634:9;:16;13644:5;13634:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;:37;;13626:46;;;;;;13514:170;;13701:38;13720:5;13727:3;13732:6;13701:18;:38::i;:::-;13694:45;;13415:332;;;;;:::o;11798:35::-;11831:2;11798:35;:::o;6865:208::-;6945:4;6962:80;6971:12;:10;:12::i;:::-;6985:7;6994:47;7030:10;6994:8;:22;7003:12;:10;:12::i;:::-;6994:22;;;;;;;;;;;;;;;:31;7017:7;6994:31;;;;;;;;;;;;;;;;:35;;:47;;;;:::i;:::-;6962:8;:80::i;:::-;7061:4;7054:11;;6865:208;;;;:::o;14108:92::-;10789:9;:7;:9::i;:::-;10781:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14166:25;14172:10;14184:6;14166:5;:25::i;:::-;14108:92;:::o;3976:107::-;4032:7;4059:9;:16;4069:5;4059:16;;;;;;;;;;;;;;;;4052:23;;3976:107;;;:::o;14262:114::-;10789:9;:7;:9::i;:::-;10781:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14341:26;14351:7;14360:6;14341:9;:26::i;:::-;14262:114;;:::o;10577:79::-;10615:7;10642:6;;;;;;;;;;;10635:13;;10577:79;:::o;10943:94::-;10983:4;11023:6;;;;;;;;;;;11007:22;;:12;:10;:12::i;:::-;:22;;;11000:29;;10943:94;:::o;11754:37::-;;;;;;;;;;;;;;;;;;;:::o;7604:217::-;7689:4;7706:85;7715:12;:10;:12::i;:::-;7729:7;7738:52;7774:15;7738:8;:22;7747:12;:10;:12::i;:::-;7738:22;;;;;;;;;;;;;;;:31;7761:7;7738:31;;;;;;;;;;;;;;;;:35;;:52;;;;:::i;:::-;7706:8;:85::i;:::-;7809:4;7802:11;;7604:217;;;;:::o;13072:337::-;13135:4;12245:42;13156:26;;:10;:26;;;:62;;;;12340:42;13186:32;;:10;:32;;;13156:62;13152:195;;;13235:13;13251:16;:14;:16::i;:::-;13235:32;;13329:5;13290:35;13318:6;13290:9;:23;13300:12;:10;:12::i;:::-;13290:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;:44;;13282:53;;;;;;13152:195;;13364:27;13379:3;13384:6;13364:14;:27::i;:::-;13357:34;;13072:337;;;;:::o;4406:131::-;4478:7;4505:8;:15;4514:5;4505:15;;;;;;;;;;;;;;;:24;4521:7;4505:24;;;;;;;;;;;;;;;;4498:31;;4406:131;;;;:::o;11192:109::-;10789:9;:7;:9::i;:::-;10781:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11265:28;11284:8;11265:18;:28::i;:::-;11192:109;:::o;1247:150::-;1305:7;1338:1;1333;:6;;1325:15;;;;;;1351:9;1367:1;1363;:5;1351:17;;1388:1;1381:8;;;1247:150;;;;:::o;807:303::-;865:7;964:1;960;:5;952:14;;;;;;977:9;993:1;989;:5;;;;;;977:17;;1101:1;1094:8;;;807:303;;;;:::o;1483:150::-;1541:7;1561:9;1577:1;1573;:5;1561:17;;1602:1;1597;:6;;1589:15;;;;;;1624:1;1617:8;;;1483:150;;;;:::o;240:433::-;298:7;547:1;542;:6;538:47;;;572:1;565:8;;;;538:47;597:9;613:1;609;:5;597:17;;642:1;637;633;:5;;;;;;:10;625:19;;;;;;664:1;657:8;;;240:433;;;;;:::o;2365:98::-;2410:15;2445:10;2438:17;;2365:98;:::o;8624:327::-;8736:1;8717:21;;:7;:21;;;;8709:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8814:1;8797:19;;:5;:19;;;;8789:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8890:5;8863:8;:15;8872:5;8863:15;;;;;;;;;;;;;;;:24;8879:7;8863:24;;;;;;;;;;;;;;;:32;;;;8927:7;8911:31;;8920:5;8911:31;;;8936:5;8911:31;;;;;;;;;;;;;;;;;;8624:327;;;:::o;6105:234::-;6184:4;6201:26;6211:4;6217:2;6221:5;6201:9;:26::i;:::-;6239:69;6248:4;6254:12;:10;:12::i;:::-;6268:39;6301:5;6268:8;:14;6277:4;6268:14;;;;;;;;;;;;;;;:28;6283:12;:10;:12::i;:::-;6268:28;;;;;;;;;;;;;;;;:32;;:39;;;;:::i;:::-;6239:8;:69::i;:::-;6327:4;6320:11;;6105:234;;;;;:::o;9283:308::-;9378:1;9359:21;;:7;:21;;;;9351:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9450:30;9473:6;9450:9;:18;9460:7;9450:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;9429:9;:18;9439:7;9429:18;;;;;;;;;;;;;;;:51;;;;9506:24;9523:6;9506:12;;:16;;:24;;;;:::i;:::-;9491:12;:39;;;;9572:1;9546:37;;9555:7;9546:37;;;9576:6;9546:37;;;;;;;;;;;;;;;;;;9283:308;;:::o;9777:189::-;9849:22;9855:7;9864:6;9849:5;:22::i;:::-;9882:76;9891:7;9900:12;:10;:12::i;:::-;9914:43;9950:6;9914:8;:17;9923:7;9914:17;;;;;;;;;;;;;;;:31;9932:12;:10;:12::i;:::-;9914:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;9882:8;:76::i;:::-;9777:189;;:::o;4713:142::-;4774:4;4791:34;4801:12;:10;:12::i;:::-;4815:2;4819:5;4791:9;:34::i;:::-;4843:4;4836:11;;4713:142;;;;:::o;11407:229::-;11501:1;11481:22;;:8;:22;;;;11473:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11591:8;11562:38;;11583:6;;;;;;;;;;;11562:38;;;;;;;;;;;;11620:8;11611:6;;:17;;;;;;;;;;;;;;;;;;11407:229;:::o;8048:303::-;8150:1;8136:16;;:2;:16;;;;8128:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8222:26;8242:5;8222:9;:15;8232:4;8222:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;8204:9;:15;8214:4;8204:15;;;;;;;;;;;;;;;:44;;;;8276:24;8294:5;8276:9;:13;8286:2;8276:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;8260:9;:13;8270:2;8260:13;;;;;;;;;;;;;;;:40;;;;8332:2;8317:25;;8326:4;8317:25;;;8336:5;8317:25;;;;;;;;;;;;;;;;;;8048:303;;;:::o

Swarm Source

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