ETH Price: $3,103.35 (-0.59%)

Token

UXB Token (UXB)
 

Overview

Max Total Supply

1,346,000,000 UXB

Holders

127

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
44.103149479999995904 UXB

Value
$0.00
0x2E6b8587040120D13C19cF75837aDe683EBf1A9B
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:
UXBToken

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-08
*/

pragma solidity ^0.5.2;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     * @notice Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


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


contract PauserRole {
    using Roles for Roles.Role;

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

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

    modifier onlyPauser() {
        require(isPauser(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    /**
     * @return true if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}


/**
 * @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 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.
 * https://eips.ethereum.org/EIPS/eip-20
 * 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;

    // map for lock
    mapping (address => uint) public lockedAccount;
    
    // event for lock
    event Lock(address target, uint amount);
    event UnLock(address target, uint amount);

    /**
     * @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 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 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 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(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) {
        _approve(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) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].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(msg.sender, spender, _allowed[msg.sender][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(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Function to lock tokens of address
     * @param amount The amount of tokens that is locked.
     */
    function lockAccount(uint amount) public returns (bool) {
        _lockAccount(msg.sender, amount);
        return true;
    }

    /**
     * @dev Function to unlock tokens of address
     * @param amount The amount of tokens that is unlocked.
     */
    function unLockAccount(uint amount) public returns (bool) {
        _unLockAccount(msg.sender, amount);
        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 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));
        require(owner != address(0));

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, 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 {
        _burn(account, value);
        _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
    }
    
    /**
     * @dev Function to lock tokens of address
     * @param amount The amount of tokens that is locked.
     */
    function _lockAccount(address account, uint amount) public returns (bool) {
        require(account != address(0));
        require(_balances[account] >= amount);
        _balances[account] = _balances[account].sub(amount);
        lockedAccount[account] = lockedAccount[account].add(amount);
        emit Lock(account, lockedAccount[account]);

        return true;
    }

    /**
     * @dev Function to unlock tokens of address
     * @param amount The amount of tokens that is unlocked.
     */
    function _unLockAccount(address account, uint amount) public returns (bool) {
        require(account != address(0));
        require(lockedAccount[account] >= amount);
        lockedAccount[account] = lockedAccount[account].sub(amount);
        _balances[account] = _balances[account].add(amount);
        emit UnLock(account, lockedAccount[account]);
        
        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 account whose tokens will be burned.
     * @param value uint256 The amount of token to be burned.
     */
    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
}


/**
 * @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 Pausable token
 * @dev ERC20 modified with pausable transfers.
 */
contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool success) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseAllowance(spender, subtractedValue);
    }
}


/**
 * @title UXB token
 *
 * @dev Implementation of the UXB token 
 */
contract UXBToken is Ownable, ERC20Burnable, ERC20Mintable, ERC20Pausable {

    string public name = "UXB Token";
    string public symbol = "UXB";
    uint8 public decimals = 18;
    uint public INITIAL_SUPPLY = 2000000000000000000000000000;

    // map for freeze
    mapping (address => bool) public frozenAccount;

    // event for freeze
    event Freeze(address target);
    event UnFreeze(address target);

    /**
     * @dev constructor for UXBToken
     */
    constructor() public {
        _mint(msg.sender, INITIAL_SUPPLY);
    }

    /**
     * @dev fallback function ***DO NOT OVERRIDE***
     */
    function () external payable {
        revert();
    }

    /**
     * @dev Function to freeze address
     * @param _target The address that will be freezed.
     */
    function freezeAccount(address _target) onlyOwner public {
        require(_target != address(0));
        require(frozenAccount[_target] != true);
        frozenAccount[_target] = true;
        emit Freeze(_target);
    }

    /**
     * @dev Function to unfreeze address
     * @param _target The address that will be unfreezed.
     */
    function unFreezeAccount(address _target) onlyOwner public {
        require(_target != address(0));
        require(frozenAccount[_target] != false);
        frozenAccount[_target] = false;
        emit UnFreeze(_target);
    }

    /**
     * @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) {
        require(!frozenAccount[msg.sender]);        // Check if sender is frozen
        require(!frozenAccount[_to]);               // Check if recipient is frozen
        return super.transfer(_to,_value);
    }

    /**
     * @dev Transfer tokens from one address to another
     * @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) {
        require(!frozenAccount[msg.sender]);        // Check if approved is frozen
        require(!frozenAccount[_from]);             // Check if sender is frozen
        require(!frozenAccount[_to]);               // Check if recipient is frozen
        return super.transferFrom(_from, _to, _value);
    }
}

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":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":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"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":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"unFreezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedAccount","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":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","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":"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":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"_unLockAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"success","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":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"_lockAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"unLockAccount","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":"amount","type":"uint256"}],"name":"lockAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","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"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"}],"name":"UnFreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"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":false,"name":"target","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"UnLock","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526040805190810160405280600981526020017f55584220546f6b656e00000000000000000000000000000000000000000000008152506008908051906020019062000051929190620005cd565b506040805190810160405280600381526020017f5558420000000000000000000000000000000000000000000000000000000000815250600990805190602001906200009f929190620005cd565b506012600a60006101000a81548160ff021916908360ff1602179055506b06765c793fa10079d0000000600b55348015620000d957600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620001b03362000208640100000000026401000000009004565b620001ca3362000272640100000000026401000000009004565b6000600760006101000a81548160ff0219169083151502179055506200020233600b54620002dc640100000000026401000000009004565b6200067c565b6200022c816005620004536401000000000262002997179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b62000296816006620004536401000000000262002997179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200031957600080fd5b6200033e816003546200051664010000000002620024e4179091906401000000009004565b600381905550620003a681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200051664010000000002620024e4179091906401000000009004565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200049057600080fd5b620004ab828262000538640100000000026401000000009004565b151515620004b857600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082840190508381101515156200052e57600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200057657600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200061057805160ff191683800117855562000641565b8280016001018555821562000641579182015b828111156200064057825182559160200191906001019062000623565b5b50905062000650919062000654565b5090565b6200067991905b80821115620006755760008160009055506001016200065b565b5090565b90565b612c5a806200068c6000396000f3fe60806040526004361061022c576000357c01000000000000000000000000000000000000000000000000000000009004806382dc1ec411610135578063a9059cbb116100bd578063dd41f3511161008c578063dd41f35114610c46578063dd62ed3e14610c99578063e8d1e96114610d1e578063f26c159f14610d71578063f2fde38b14610dc25761022c565b8063a9059cbb14610a8e578063aa271e1a14610b01578063b414d4b614610b6a578063c0a4550b14610bd35761022c565b806395d89b411161010457806395d89b41146108b0578063983b2d56146109405780639865027514610991578063a02be1aa146109a8578063a457c2d714610a1b5761022c565b806382dc1ec4146107c25780638456cb59146108135780638da5cb5b1461082a5780638f32d59b146108815761022c565b806342966c68116101b85780636ef8d66d116101875780636ef8d66d1461066f57806370a0823114610686578063715018a6146106eb578063718ccce91461070257806379cc6790146107675761022c565b806342966c681461054b57806346fbf68e1461058657806353cc2fae146105ef5780635c975abb146106405761022c565b80632ff2e9dc116101ff5780632ff2e9dc146103f2578063313ce5671461041d578063395093511461044e5780633f4ba83a146104c157806340c10f19146104d85761022c565b806306fdde0314610231578063095ea7b3146102c157806318160ddd1461033457806323b872dd1461035f575b600080fd5b34801561023d57600080fd5b50610246610e13565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028657808201518184015260208101905061026b565b50505050905090810190601f1680156102b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cd57600080fd5b5061031a600480360360408110156102e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb1565b604051808215151515815260200191505060405180910390f35b34801561034057600080fd5b50610349610ee1565b6040518082815260200191505060405180910390f35b34801561036b57600080fd5b506103d86004803603606081101561038257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eeb565b604051808215151515815260200191505060405180910390f35b3480156103fe57600080fd5b5061040761100c565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610432611012565b604051808260ff1660ff16815260200191505060405180910390f35b34801561045a57600080fd5b506104a76004803603604081101561047157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611025565b604051808215151515815260200191505060405180910390f35b3480156104cd57600080fd5b506104d6611055565b005b3480156104e457600080fd5b50610531600480360360408110156104fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611104565b604051808215151515815260200191505060405180910390f35b34801561055757600080fd5b506105846004803603602081101561056e57600080fd5b810190808035906020019092919050505061112e565b005b34801561059257600080fd5b506105d5600480360360208110156105a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113b565b604051808215151515815260200191505060405180910390f35b3480156105fb57600080fd5b5061063e6004803603602081101561061257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611158565b005b34801561064c57600080fd5b506106556112c5565b604051808215151515815260200191505060405180910390f35b34801561067b57600080fd5b506106846112dc565b005b34801561069257600080fd5b506106d5600480360360208110156106a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e7565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b50610700611330565b005b34801561070e57600080fd5b506107516004803603602081101561072557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611402565b6040518082815260200191505060405180910390f35b34801561077357600080fd5b506107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141a565b005b3480156107ce57600080fd5b50610811600480360360208110156107e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611428565b005b34801561081f57600080fd5b50610828611448565b005b34801561083657600080fd5b5061083f6114f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088d57600080fd5b50610896611521565b604051808215151515815260200191505060405180910390f35b3480156108bc57600080fd5b506108c5611578565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109055780820151818401526020810190506108ea565b50505050905090810190601f1680156109325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094c57600080fd5b5061098f6004803603602081101561096357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611616565b005b34801561099d57600080fd5b506109a6611636565b005b3480156109b457600080fd5b50610a01600480360360408110156109cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611641565b604051808215151515815260200191505060405180910390f35b348015610a2757600080fd5b50610a7460048036036040811015610a3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118aa565b604051808215151515815260200191505060405180910390f35b348015610a9a57600080fd5b50610ae760048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118da565b604051808215151515815260200191505060405180910390f35b348015610b0d57600080fd5b50610b5060048036036020811015610b2457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a0565b604051808215151515815260200191505060405180910390f35b348015610b7657600080fd5b50610bb960048036036020811015610b8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119bd565b604051808215151515815260200191505060405180910390f35b348015610bdf57600080fd5b50610c2c60048036036040811015610bf657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119dd565b604051808215151515815260200191505060405180910390f35b348015610c5257600080fd5b50610c7f60048036036020811015610c6957600080fd5b8101908080359060200190929190505050611c46565b604051808215151515815260200191505060405180910390f35b348015610ca557600080fd5b50610d0860048036036040811015610cbc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b6040518082815260200191505060405180910390f35b348015610d2a57600080fd5b50610d5760048036036020811015610d4157600080fd5b8101908080359060200190929190505050611ce3565b604051808215151515815260200191505060405180910390f35b348015610d7d57600080fd5b50610dc060048036036020811015610d9457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf9565b005b348015610dce57600080fd5b50610e1160048036036020811015610de557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b005b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050505081565b6000600760009054906101000a900460ff16151515610ecf57600080fd5b610ed98383611e85565b905092915050565b6000600354905090565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f4657600080fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f9f57600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610ff857600080fd5b611003848484611e9c565b90509392505050565b600b5481565b600a60009054906101000a900460ff1681565b6000600760009054906101000a900460ff1615151561104357600080fd5b61104d8383611ece565b905092915050565b61105e3361113b565b151561106957600080fd5b600760009054906101000a900460ff16151561108457600080fd5b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061110f336119a0565b151561111a57600080fd5b6111248383611f73565b6001905092915050565b61113833826120c9565b50565b600061115182600661221f90919063ffffffff16565b9050919050565b611160611521565b151561116b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111a757600080fd5b60001515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415151561120757600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8a56897dfce8680cbcfd8a39fc9a77d55677650ea50712197f14b6fbc7e0677b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600760009054906101000a900460ff16905090565b6112e5336122b3565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611338611521565b151561134357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915090505481565b611424828261230d565b5050565b6114313361113b565b151561143c57600080fd5b611445816123b4565b50565b6114513361113b565b151561145c57600080fd5b600760009054906101000a900460ff1615151561147857600080fd5b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561160e5780601f106115e35761010080835404028352916020019161160e565b820191906000526020600020905b8154815290600101906020018083116115f157829003601f168201915b505050505081565b61161f336119a0565b151561162a57600080fd5b6116338161240e565b50565b61163f33612468565b565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561167e57600080fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116cc57600080fd5b61171e82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fb371d42b3715509a27f3109f6ac1ef6b7d7e7f8e9232b738ed17338be6cf958083600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000600760009054906101000a900460ff161515156118c857600080fd5b6118d28383612505565b905092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561193557600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561198e57600080fd5b61199883836125aa565b905092915050565b60006119b682600561221f90919063ffffffff16565b9050919050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a1a57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a6857600080fd5b611aba82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4f82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d42783600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000611c523383611641565b5060019050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611cef33836119dd565b5060019050919050565b611d01611521565b1515611d0c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611d4857600080fd5b60011515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151515611da857600080fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611e6e611521565b1515611e7957600080fd5b611e82816125da565b50565b6000611e923384846126d4565b6001905092915050565b6000600760009054906101000a900460ff16151515611eba57600080fd5b611ec5848484612837565b90509392505050565b6000611f693384611f6485600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b6126d4565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611faf57600080fd5b611fc4816003546124e490919063ffffffff16565b60038190555061201c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561210557600080fd5b61211a816003546124c290919063ffffffff16565b60038190555061217281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561225c57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6122c78160066128e890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61231782826120c9565b6123b082336123ab84600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b5050565b6123c881600661299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b61242281600561299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61247c8160056128e890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008282111515156124d357600080fd5b600082840390508091505092915050565b60008082840190508381101515156124fb57600080fd5b8091505092915050565b60006125a0338461259b85600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b6001905092915050565b6000600760009054906101000a900460ff161515156125c857600080fd5b6125d28383612a47565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561261657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561271057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561274c57600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000612844848484612a5e565b6128dd84336128d885600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561292457600080fd5b61292e828261221f565b151561293957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156129d357600080fd5b6129dd828261221f565b1515156129e957600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612a54338484612a5e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612a9a57600080fd5b612aec81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fea165627a7a723058204f58975f71b789f9f69443e6b9622ee71cfe616b189ed2d25554d66be69157cc0029

Deployed Bytecode

0x60806040526004361061022c576000357c01000000000000000000000000000000000000000000000000000000009004806382dc1ec411610135578063a9059cbb116100bd578063dd41f3511161008c578063dd41f35114610c46578063dd62ed3e14610c99578063e8d1e96114610d1e578063f26c159f14610d71578063f2fde38b14610dc25761022c565b8063a9059cbb14610a8e578063aa271e1a14610b01578063b414d4b614610b6a578063c0a4550b14610bd35761022c565b806395d89b411161010457806395d89b41146108b0578063983b2d56146109405780639865027514610991578063a02be1aa146109a8578063a457c2d714610a1b5761022c565b806382dc1ec4146107c25780638456cb59146108135780638da5cb5b1461082a5780638f32d59b146108815761022c565b806342966c68116101b85780636ef8d66d116101875780636ef8d66d1461066f57806370a0823114610686578063715018a6146106eb578063718ccce91461070257806379cc6790146107675761022c565b806342966c681461054b57806346fbf68e1461058657806353cc2fae146105ef5780635c975abb146106405761022c565b80632ff2e9dc116101ff5780632ff2e9dc146103f2578063313ce5671461041d578063395093511461044e5780633f4ba83a146104c157806340c10f19146104d85761022c565b806306fdde0314610231578063095ea7b3146102c157806318160ddd1461033457806323b872dd1461035f575b600080fd5b34801561023d57600080fd5b50610246610e13565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028657808201518184015260208101905061026b565b50505050905090810190601f1680156102b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cd57600080fd5b5061031a600480360360408110156102e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb1565b604051808215151515815260200191505060405180910390f35b34801561034057600080fd5b50610349610ee1565b6040518082815260200191505060405180910390f35b34801561036b57600080fd5b506103d86004803603606081101561038257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eeb565b604051808215151515815260200191505060405180910390f35b3480156103fe57600080fd5b5061040761100c565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610432611012565b604051808260ff1660ff16815260200191505060405180910390f35b34801561045a57600080fd5b506104a76004803603604081101561047157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611025565b604051808215151515815260200191505060405180910390f35b3480156104cd57600080fd5b506104d6611055565b005b3480156104e457600080fd5b50610531600480360360408110156104fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611104565b604051808215151515815260200191505060405180910390f35b34801561055757600080fd5b506105846004803603602081101561056e57600080fd5b810190808035906020019092919050505061112e565b005b34801561059257600080fd5b506105d5600480360360208110156105a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113b565b604051808215151515815260200191505060405180910390f35b3480156105fb57600080fd5b5061063e6004803603602081101561061257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611158565b005b34801561064c57600080fd5b506106556112c5565b604051808215151515815260200191505060405180910390f35b34801561067b57600080fd5b506106846112dc565b005b34801561069257600080fd5b506106d5600480360360208110156106a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e7565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b50610700611330565b005b34801561070e57600080fd5b506107516004803603602081101561072557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611402565b6040518082815260200191505060405180910390f35b34801561077357600080fd5b506107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141a565b005b3480156107ce57600080fd5b50610811600480360360208110156107e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611428565b005b34801561081f57600080fd5b50610828611448565b005b34801561083657600080fd5b5061083f6114f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088d57600080fd5b50610896611521565b604051808215151515815260200191505060405180910390f35b3480156108bc57600080fd5b506108c5611578565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109055780820151818401526020810190506108ea565b50505050905090810190601f1680156109325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094c57600080fd5b5061098f6004803603602081101561096357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611616565b005b34801561099d57600080fd5b506109a6611636565b005b3480156109b457600080fd5b50610a01600480360360408110156109cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611641565b604051808215151515815260200191505060405180910390f35b348015610a2757600080fd5b50610a7460048036036040811015610a3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118aa565b604051808215151515815260200191505060405180910390f35b348015610a9a57600080fd5b50610ae760048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118da565b604051808215151515815260200191505060405180910390f35b348015610b0d57600080fd5b50610b5060048036036020811015610b2457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a0565b604051808215151515815260200191505060405180910390f35b348015610b7657600080fd5b50610bb960048036036020811015610b8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119bd565b604051808215151515815260200191505060405180910390f35b348015610bdf57600080fd5b50610c2c60048036036040811015610bf657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119dd565b604051808215151515815260200191505060405180910390f35b348015610c5257600080fd5b50610c7f60048036036020811015610c6957600080fd5b8101908080359060200190929190505050611c46565b604051808215151515815260200191505060405180910390f35b348015610ca557600080fd5b50610d0860048036036040811015610cbc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b6040518082815260200191505060405180910390f35b348015610d2a57600080fd5b50610d5760048036036020811015610d4157600080fd5b8101908080359060200190929190505050611ce3565b604051808215151515815260200191505060405180910390f35b348015610d7d57600080fd5b50610dc060048036036020811015610d9457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf9565b005b348015610dce57600080fd5b50610e1160048036036020811015610de557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b005b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050505081565b6000600760009054906101000a900460ff16151515610ecf57600080fd5b610ed98383611e85565b905092915050565b6000600354905090565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f4657600080fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f9f57600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610ff857600080fd5b611003848484611e9c565b90509392505050565b600b5481565b600a60009054906101000a900460ff1681565b6000600760009054906101000a900460ff1615151561104357600080fd5b61104d8383611ece565b905092915050565b61105e3361113b565b151561106957600080fd5b600760009054906101000a900460ff16151561108457600080fd5b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061110f336119a0565b151561111a57600080fd5b6111248383611f73565b6001905092915050565b61113833826120c9565b50565b600061115182600661221f90919063ffffffff16565b9050919050565b611160611521565b151561116b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111a757600080fd5b60001515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415151561120757600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8a56897dfce8680cbcfd8a39fc9a77d55677650ea50712197f14b6fbc7e0677b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600760009054906101000a900460ff16905090565b6112e5336122b3565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611338611521565b151561134357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915090505481565b611424828261230d565b5050565b6114313361113b565b151561143c57600080fd5b611445816123b4565b50565b6114513361113b565b151561145c57600080fd5b600760009054906101000a900460ff1615151561147857600080fd5b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561160e5780601f106115e35761010080835404028352916020019161160e565b820191906000526020600020905b8154815290600101906020018083116115f157829003601f168201915b505050505081565b61161f336119a0565b151561162a57600080fd5b6116338161240e565b50565b61163f33612468565b565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561167e57600080fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116cc57600080fd5b61171e82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fb371d42b3715509a27f3109f6ac1ef6b7d7e7f8e9232b738ed17338be6cf958083600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000600760009054906101000a900460ff161515156118c857600080fd5b6118d28383612505565b905092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561193557600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561198e57600080fd5b61199883836125aa565b905092915050565b60006119b682600561221f90919063ffffffff16565b9050919050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a1a57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a6857600080fd5b611aba82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4f82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d42783600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000611c523383611641565b5060019050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611cef33836119dd565b5060019050919050565b611d01611521565b1515611d0c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611d4857600080fd5b60011515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151515611da857600080fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611e6e611521565b1515611e7957600080fd5b611e82816125da565b50565b6000611e923384846126d4565b6001905092915050565b6000600760009054906101000a900460ff16151515611eba57600080fd5b611ec5848484612837565b90509392505050565b6000611f693384611f6485600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b6126d4565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611faf57600080fd5b611fc4816003546124e490919063ffffffff16565b60038190555061201c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561210557600080fd5b61211a816003546124c290919063ffffffff16565b60038190555061217281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561225c57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6122c78160066128e890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61231782826120c9565b6123b082336123ab84600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b5050565b6123c881600661299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b61242281600561299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61247c8160056128e890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008282111515156124d357600080fd5b600082840390508091505092915050565b60008082840190508381101515156124fb57600080fd5b8091505092915050565b60006125a0338461259b85600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b6001905092915050565b6000600760009054906101000a900460ff161515156125c857600080fd5b6125d28383612a47565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561261657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561271057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561274c57600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000612844848484612a5e565b6128dd84336128d885600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561292457600080fd5b61292e828261221f565b151561293957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156129d357600080fd5b6129dd828261221f565b1515156129e957600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612a54338484612a5e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612a9a57600080fd5b612aec81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fea165627a7a723058204f58975f71b789f9f69443e6b9622ee71cfe616b189ed2d25554d66be69157cc0029

Deployed Bytecode Sourcemap

20804:2575:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21485:8;;;20887:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20887:32:0;;;:::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;20887:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20202:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20202:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20202:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10084:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10084:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22973:403;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22973:403:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22973:403:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20994:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20994:57:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20961:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20961:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20350:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20350:175:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20350:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6238:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6238:118:0;;;:::i;:::-;;19620:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19620:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19620:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18821:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18821:79:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18821:79:0;;;;;;;;;;;;;;;;;:::i;:::-;;4510:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4510:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4510:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21978:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21978:233:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21978:233:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5491:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5491:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4727:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4727:77:0;;;:::i;:::-;;10394:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10394:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10394:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1473:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1473:140:0;;;:::i;:::-;;9839:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9839:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9839:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19154:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19154:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19154:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4627:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4627:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4627:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6027:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6027:116:0;;;:::i;:::-;;683:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;683:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1018:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1018:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20926:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20926:28:0;;;:::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;20926:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3693:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3693:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3693:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3793:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3793:77:0;;;:::i;:::-;;18160:396;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18160:396:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18160:396:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20533:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20533:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20533:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22388:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22388:288:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22388:288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3576:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3576:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3576:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21083:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21083:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21083:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17643:380;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17643:380:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17643:380:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14652:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14652:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14652:133:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10839:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10839:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10839:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14386:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14386:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14386:129:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21624:227;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21624:227:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21624:227:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1790:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1790:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1790:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;20887:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20202:140::-;20281:4;5728:7;;;;;;;;;;;5727:8;5719:17;;;;;;;;20305:29;20319:7;20328:5;20305:13;:29::i;:::-;20298:36;;20202:140;;;;:::o;10084:91::-;10128:7;10155:12;;10148:19;;10084:91;:::o;22973:403::-;23055:4;23081:13;:25;23095:10;23081:25;;;;;;;;;;;;;;;;;;;;;;;;;23080:26;23072:35;;;;;;;;23165:13;:20;23179:5;23165:20;;;;;;;;;;;;;;;;;;;;;;;;;23164:21;23156:30;;;;;;;;23247:13;:18;23261:3;23247:18;;;;;;;;;;;;;;;;;;;;;;;;;23246:19;23238:28;;;;;;;;23330:38;23349:5;23356:3;23361:6;23330:18;:38::i;:::-;23323:45;;22973:403;;;;;:::o;20994:57::-;;;;:::o;20961:26::-;;;;;;;;;;;;;:::o;20350:175::-;20441:12;5728:7;;;;;;;;;;;5727:8;5719:17;;;;;;;;20473:44;20497:7;20506:10;20473:23;:44::i;:::-;20466:51;;20350:175;;;;:::o;6238:118::-;4461:20;4470:10;4461:8;:20::i;:::-;4453:29;;;;;;;;5907:7;;;;;;;;;;;5899:16;;;;;;;;6307:5;6297:7;;:15;;;;;;;;;;;;;;;;;;6328:20;6337:10;6328:20;;;;;;;;;;;;;;;;;;;;;;6238:118::o;19620:131::-;19688:4;3527:20;3536:10;3527:8;:20::i;:::-;3519:29;;;;;;;;19705:16;19711:2;19715:5;19705;:16::i;:::-;19739:4;19732:11;;19620:131;;;;:::o;18821:79::-;18868:24;18874:10;18886:5;18868;:24::i;:::-;18821:79;:::o;4510:109::-;4566:4;4590:21;4603:7;4590:8;:12;;:21;;;;:::i;:::-;4583:28;;4510:109;;;:::o;21978:233::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;22075:1;22056:21;;:7;:21;;;;22048:30;;;;;;;;22123:5;22097:31;;:13;:22;22111:7;22097:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;22089:40;;;;;;;;22165:5;22140:13;:22;22154:7;22140:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;22186:17;22195:7;22186:17;;;;;;;;;;;;;;;;;;;;;;21978:233;:::o;5491:78::-;5530:4;5554:7;;;;;;;;;;;5547:14;;5491:78;:::o;4727:77::-;4771:25;4785:10;4771:13;:25::i;:::-;4727:77::o;10394:106::-;10449:7;10476:9;:16;10486:5;10476:16;;;;;;;;;;;;;;;;10469:23;;10394:106;;;:::o;1473:140::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;1572:1;1535:40;;1556:6;;;;;;;;;;;1535:40;;;;;;;;;;;;1603:1;1586:6;;:19;;;;;;;;;;;;;;;;;;1473:140::o;9839:46::-;;;;;;;;;;;;;;;;;:::o;19154:95::-;19219:22;19229:4;19235:5;19219:9;:22::i;:::-;19154:95;;:::o;4627:92::-;4461:20;4470:10;4461:8;:20::i;:::-;4453:29;;;;;;;;4692:19;4703:7;4692:10;:19::i;:::-;4627:92;:::o;6027:116::-;4461:20;4470:10;4461:8;:20::i;:::-;4453:29;;;;;;;;5728:7;;;;;;;;;;;5727:8;5719:17;;;;;;;;6097:4;6087:7;;:14;;;;;;;;;;;;;;;;;;6117:18;6124:10;6117:18;;;;;;;;;;;;;;;;;;;;;;6027:116::o;683:79::-;721:7;748:6;;;;;;;;;;;741:13;;683:79;:::o;1018:92::-;1058:4;1096:6;;;;;;;;;;;1082:20;;:10;:20;;;1075:27;;1018:92;:::o;20926:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3693:92::-;3527:20;3536:10;3527:8;:20::i;:::-;3519:29;;;;;;;;3758:19;3769:7;3758:10;:19::i;:::-;3693:92;:::o;3793:77::-;3837:25;3851:10;3837:13;:25::i;:::-;3793:77::o;18160:396::-;18230:4;18274:1;18255:21;;:7;:21;;;;18247:30;;;;;;;;18322:6;18296:13;:22;18310:7;18296:22;;;;;;;;;;;;;;;;:32;;18288:41;;;;;;;;18365:34;18392:6;18365:13;:22;18379:7;18365:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;18340:13;:22;18354:7;18340:22;;;;;;;;;;;;;;;:59;;;;18431:30;18454:6;18431:9;:18;18441:7;18431:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;18410:9;:18;18420:7;18410:18;;;;;;;;;;;;;;;:51;;;;18477:39;18484:7;18493:13;:22;18507:7;18493:22;;;;;;;;;;;;;;;;18477:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;18544:4;18537:11;;18160:396;;;;:::o;20533:185::-;20629:12;5728:7;;;;;;;;;;;5727:8;5719:17;;;;;;;;20661:49;20685:7;20694:15;20661:23;:49::i;:::-;20654:56;;20533:185;;;;:::o;22388:288::-;22451:4;22477:13;:25;22491:10;22477:25;;;;;;;;;;;;;;;;;;;;;;;;;22476:26;22468:35;;;;;;;;22559:13;:18;22573:3;22559:18;;;;;;;;;;;;;;;;;;;;;;;;;22558:19;22550:28;;;;;;;;22642:26;22657:3;22661:6;22642:14;:26::i;:::-;22635:33;;22388:288;;;;:::o;3576:109::-;3632:4;3656:21;3669:7;3656:8;:12;;:21;;;;:::i;:::-;3649:28;;3576:109;;;:::o;21083:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;17643:380::-;17711:4;17755:1;17736:21;;:7;:21;;;;17728:30;;;;;;;;17799:6;17777:9;:18;17787:7;17777:18;;;;;;;;;;;;;;;;:28;;17769:37;;;;;;;;17838:30;17861:6;17838:9;:18;17848:7;17838:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;17817:9;:18;17827:7;17817:18;;;;;;;;;;;;;;;:51;;;;17904:34;17931:6;17904:13;:22;17918:7;17904:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;17879:13;:22;17893:7;17879:22;;;;;;;;;;;;;;;:59;;;;17954:37;17959:7;17968:13;:22;17982:7;17968:22;;;;;;;;;;;;;;;;17954:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;18011:4;18004:11;;17643:380;;;;:::o;14652:133::-;14704:4;14721:34;14736:10;14748:6;14721:14;:34::i;:::-;;14773:4;14766:11;;14652:133;;;:::o;10839:131::-;10911:7;10938:8;:15;10947:5;10938:15;;;;;;;;;;;;;;;:24;10954:7;10938:24;;;;;;;;;;;;;;;;10931:31;;10839:131;;;;:::o;14386:129::-;14436:4;14453:32;14466:10;14478:6;14453:12;:32::i;:::-;;14503:4;14496:11;;14386:129;;;:::o;21624:227::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;21719:1;21700:21;;:7;:21;;;;21692:30;;;;;;;;21767:4;21741:30;;:13;:22;21755:7;21741:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;21733:39;;;;;;;;21808:4;21783:13;:22;21797:7;21783:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21828:15;21835:7;21828:15;;;;;;;;;;;;;;;;;;;;;;21624:227;:::o;1790:109::-;895:9;:7;:9::i;:::-;887:18;;;;;;;;1863:28;1882:8;1863:18;:28::i;:::-;1790:109;:::o;11931:148::-;11996:4;12013:36;12022:10;12034:7;12043:5;12013:8;:36::i;:::-;12067:4;12060:11;;11931:148;;;;:::o;20034:160::-;20127:4;5728:7;;;;;;;;;;;5727:8;5719:17;;;;;;;;20151:35;20170:4;20176:2;20180:5;20151:18;:35::i;:::-;20144:42;;20034:160;;;;;:::o;13306:203::-;13386:4;13403:76;13412:10;13424:7;13433:45;13467:10;13433:8;:20;13442:10;13433:20;;;;;;;;;;;;;;;:29;13454:7;13433:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;13403:8;:76::i;:::-;13497:4;13490:11;;13306:203;;;;:::o;15626:269::-;15720:1;15701:21;;:7;:21;;;;15693:30;;;;;;;;15751:23;15768:5;15751:12;;:16;;:23;;;;:::i;:::-;15736:12;:38;;;;15806:29;15829:5;15806:9;:18;15816:7;15806:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;15785:9;:18;15795:7;15785:18;;;;;;;;;;;;;;;:50;;;;15872:7;15851:36;;15868:1;15851:36;;;15881:5;15851:36;;;;;;;;;;;;;;;;;;15626:269;;:::o;16129:::-;16223:1;16204:21;;:7;:21;;;;16196:30;;;;;;;;16254:23;16271:5;16254:12;;:16;;:23;;;;:::i;:::-;16239:12;:38;;;;16309:29;16332:5;16309:9;:18;16319:7;16309:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;16288:9;:18;16298:7;16288:18;;;;;;;;;;;;;;;:50;;;;16380:1;16354:36;;16363:7;16354:36;;;16384:5;16354:36;;;;;;;;;;;;;;;;;;16129:269;;:::o;3039:165::-;3111:4;3155:1;3136:21;;:7;:21;;;;3128:30;;;;;;;;3176:4;:11;;:20;3188:7;3176:20;;;;;;;;;;;;;;;;;;;;;;;;;3169:27;;3039:165;;;;:::o;4942:130::-;5002:24;5018:7;5002:8;:15;;:24;;;;:::i;:::-;5056:7;5042:22;;;;;;;;;;;;4942:130;:::o;17324:182::-;17395:21;17401:7;17410:5;17395;:21::i;:::-;17427:71;17436:7;17445:10;17457:40;17491:5;17457:8;:17;17466:7;17457:17;;;;;;;;;;;;;;;:29;17475:10;17457:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;17427:8;:71::i;:::-;17324:182;;:::o;4812:122::-;4869:21;4882:7;4869:8;:12;;:21;;;;:::i;:::-;4918:7;4906:20;;;;;;;;;;;;4812:122;:::o;3878:::-;3935:21;3948:7;3935:8;:12;;:21;;;;:::i;:::-;3984:7;3972:20;;;;;;;;;;;;3878:122;:::o;4008:130::-;4068:24;4084:7;4068:8;:15;;:24;;;;:::i;:::-;4122:7;4108:22;;;;;;;;;;;;4008:130;:::o;7588:150::-;7646:7;7679:1;7674;:6;;7666:15;;;;;;;;7692:9;7708:1;7704;:5;7692:17;;7729:1;7722:8;;;7588:150;;;;:::o;7826:::-;7884:7;7904:9;7920:1;7916;:5;7904:17;;7945:1;7940;:6;;7932:15;;;;;;;;7967:1;7960:8;;;7826:150;;;;:::o;14040:213::-;14125:4;14142:81;14151:10;14163:7;14172:50;14206:15;14172:8;:20;14181:10;14172:20;;;;;;;;;;;;;;;:29;14193:7;14172:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;14142:8;:81::i;:::-;14241:4;14234:11;;14040:213;;;;:::o;19894:132::-;19969:4;5728:7;;;;;;;;;;;5727:8;5719:17;;;;;;;;19993:25;20008:2;20012:5;19993:14;:25::i;:::-;19986:32;;19894:132;;;;:::o;2049:187::-;2143:1;2123:22;;:8;:22;;;;2115:31;;;;;;;;2191:8;2162:38;;2183:6;;;;;;;;;;;2162:38;;;;;;;;;;;;2220:8;2211:6;;:17;;;;;;;;;;;;;;;;;;2049:187;:::o;16671:254::-;16783:1;16764:21;;:7;:21;;;;16756:30;;;;;;;;16822:1;16805:19;;:5;:19;;;;16797:28;;;;;;;;16865:5;16838:8;:15;16847:5;16838:15;;;;;;;;;;;;;;;:24;16854:7;16838:24;;;;;;;;;;;;;;;:32;;;;16902:7;16886:31;;16895:5;16886:31;;;16911:5;16886:31;;;;;;;;;;;;;;;;;;16671:254;;;:::o;12552:228::-;12631:4;12648:26;12658:4;12664:2;12668:5;12648:9;:26::i;:::-;12685:65;12694:4;12700:10;12712:37;12743:5;12712:8;:14;12721:4;12712:14;;;;;;;;;;;;;;;:26;12727:10;12712:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;12685:8;:65::i;:::-;12768:4;12761:11;;12552:228;;;;;:::o;2756:189::-;2855:1;2836:21;;:7;:21;;;;2828:30;;;;;;;;2877:18;2881:4;2887:7;2877:3;:18::i;:::-;2869:27;;;;;;;;2932:5;2909:4;:11;;:20;2921:7;2909:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;2756:189;;:::o;2491:186::-;2587:1;2568:21;;:7;:21;;;;2560:30;;;;;;;;2610:18;2614:4;2620:7;2610:3;:18::i;:::-;2609:19;2601:28;;;;;;;;2665:4;2642;:11;;:20;2654:7;2642:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2491:186;;:::o;11144:140::-;11205:4;11222:32;11232:10;11244:2;11248:5;11222:9;:32::i;:::-;11272:4;11265:11;;11144:140;;;;:::o;15012:262::-;15114:1;15100:16;;:2;:16;;;;15092:25;;;;;;;;15148:26;15168:5;15148:9;:15;15158:4;15148:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;15130:9;:15;15140:4;15130:15;;;;;;;;;;;;;;;:44;;;;15201:24;15219:5;15201:9;:13;15211:2;15201:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;15185:9;:13;15195:2;15185:13;;;;;;;;;;;;;;;:40;;;;15256:2;15241:25;;15250:4;15241:25;;;15260:5;15241:25;;;;;;;;;;;;;;;;;;15012:262;;;:::o

Swarm Source

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