Token BITFEX

 

Overview [ERC-20]

Max Total Supply:
216,525,879 BFX

Holders:
152

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

BITFEX token contract has migrated to 0x25901F2a5A4bb0aaAbe2CDb24E0E15A0d49B015d.

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BITFEX

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.5.1;

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

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

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

        return c;
    }

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

        return c;
    }

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

        return c;
    }

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

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic token.
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    event Mint(address indexed to, uint256 value);
    event Burn(address indexed to, uint256 value);

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

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

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

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

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

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _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_[_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_[_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 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 Mint(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 Burn(account, 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));
    }
}

/**
 * @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.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    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;
    }
}

contract BITFEX is ERC20, Ownable {
    string public constant name = "BITFEX";
    string public constant symbol = "BFX";
    uint32 public constant decimals = 18;

    event Release(address indexed to, uint256 value);
    event TokensVestedTeam(address indexed to, uint256 value);
    event TokensVestedFoundation(address indexed to, uint256 value);
    event TokensVestedEmployeePool(address indexed to, uint256 value);
    event TokensVestedAdvisors(address indexed to, uint256 value);
    event TokensVestedBounty(address indexed to, uint256 value);
    event TokensVestedPrivateSale(address indexed to, uint256 value);
    event RevenueTransferred(address indexed from, uint256 value);

    uint256 public teamAmount = uint256(2e8).mul(1 ether); // 200 000 000 vested for 4 years, 12.5% every 6 months
    uint256 public foundationAmount = uint256(1e8).mul(1 ether); // 100 000 000 vested for 2 years, 50% every year
    uint256 public employeePoolAmount = uint256(5e7).mul(1 ether); // 50 000 000 locked for 1 year
    uint256 public liquidityAmount = uint256(5e7).mul(1 ether); // 50 000 000
    uint256 public advisorsAmount = uint256(25e6).mul(1 ether); // 25 000 000 vested for 6 months, 50% every 3 months
    uint256 public bountyAmount = uint256(25e6).mul(1 ether); // 25 000 000 locked for 3 months 
    uint256 public publicSaleAmount = uint256(4e8).mul(1 ether); // 400 000 000
    uint256 public privateSaleAmount = uint256(15e7).mul(1 ether); // 150 000 000 vested for 6 months, 50% every 3 months
    address public revenuesAddress; // address for revenues transferring, all tokens sent to this address will be burnt
    address[] private _vestedAddresses;
    mapping (address => bool) private _vestedAddressesAdded;

    mapping (address => uint256) private _balances_3_months; //locked
    mapping (address => uint256) private _released_3_months; //released 3 months
    mapping (address => uint256) private _balances_6_months; //vested 50% every 3 months
    mapping (address => uint256) private _released_6_months; //released 6 months
    mapping (address => uint256) private _balances_1_year; //locked
    mapping (address => uint256) private _released_1_year; //released 1 year
    mapping (address => uint256) private _balances_2_years; //vested 50% every year
    mapping (address => uint256) private _released_2_years; //released 2 years
    mapping (address => uint256) private _balances_4_years; //vested 12.5% every 6 months
    mapping (address => uint256) private _released_4_years; //released 4 years

    uint256 public vestingStartTime; // vesting program start time

    /**
    * @param newOwner Address of the contract owner
    */
    constructor(address newOwner) public {
        require(newOwner != address(0));
        _transferOwnership(newOwner);
        vestingStartTime = now;
    }

    /**
     * @dev Set revenuesAddress (all tokens sent to this address will be burnt)
     * @param newAddress Special address for revenues.
     */
    function setRevenuesAddress (address newAddress) public onlyOwner returns (bool) {
        require(newAddress != address(0));
        revenuesAddress = newAddress;
        return true;
    }

    /**
     * @dev Vest token for team
     * @param recipient The team address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function teamVest (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(recipient != address(0));
        require(teamAmount >= amount, 'Tokens limit exceeded');
        if (!_vestedAddressesAdded[recipient]) {
            _vestedAddresses.push(recipient);
            _vestedAddressesAdded[recipient] = true;
        }
        teamAmount = teamAmount
            .sub(amount);
        _balances_4_years[recipient] = _balances_4_years[recipient]
            .add(amount);
        emit TokensVestedTeam(recipient, amount);
        return true;
    }

    /**
     * @dev Vest token for foundation
     * @param recipient The foundation address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function foundationVest (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(recipient != address(0));
        require(foundationAmount >= amount, 'Tokens limit exceeded');
        if (!_vestedAddressesAdded[recipient]) {
            _vestedAddresses.push(recipient);
            _vestedAddressesAdded[recipient] = true;
        }
        foundationAmount = foundationAmount
            .sub(amount);
        _balances_2_years[recipient] = _balances_2_years[recipient]
            .add(amount);
        emit TokensVestedFoundation(recipient, amount);
        return true;
    }

    /**
     * @dev Vest token for employee pool
     * @param recipient The employee pool address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function employeePoolVest (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(recipient != address(0));
        require(employeePoolAmount >= amount, 'Tokens limit exceeded');
        if (!_vestedAddressesAdded[recipient]) {
            _vestedAddresses.push(recipient);
            _vestedAddressesAdded[recipient] = true;
        }
        employeePoolAmount = employeePoolAmount
            .sub(amount);
        _balances_1_year[recipient] = _balances_1_year[recipient]
            .add(amount);
        emit TokensVestedEmployeePool(recipient, amount);
        return true;
    }

    /**
     * @dev Vest token for advisors
     * @param recipient The advisors address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function advisorsVest (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(recipient != address(0));
        require(advisorsAmount >= amount, 'Tokens limit exceeded');
        if (!_vestedAddressesAdded[recipient]) {
            _vestedAddresses.push(recipient);
            _vestedAddressesAdded[recipient] = true;
        }
        advisorsAmount = advisorsAmount
            .sub(amount);
        _balances_6_months[recipient] = _balances_6_months[recipient]
            .add(amount);
        emit TokensVestedAdvisors(recipient, amount);
        return true;
    }

    /**
     * @dev Vest token for bounty
     * @param recipient The bounty address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function bountyVest (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(recipient != address(0));
        require(bountyAmount >= amount, 'Tokens limit exceeded');
        if (!_vestedAddressesAdded[recipient]) {
            _vestedAddresses.push(recipient);
            _vestedAddressesAdded[recipient] = true;
        }
        bountyAmount = bountyAmount
            .sub(amount);
        _balances_3_months[recipient] = _balances_3_months[recipient]
            .add(amount);
        emit TokensVestedBounty(recipient, amount);
        return true;
    }

    /**
     * @dev Vest token for private sale
     * @param recipient The private sale address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function privateSaleVest (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(recipient != address(0));
        require(privateSaleAmount >= amount, 'Tokens limit exceeded');
        if (!_vestedAddressesAdded[recipient]) {
            _vestedAddresses.push(recipient);
            _vestedAddressesAdded[recipient] = true;
        }
        privateSaleAmount = privateSaleAmount
            .sub(amount);
        _balances_6_months[recipient] = _balances_6_months[recipient]
            .add(amount);
        emit TokensVestedPrivateSale(recipient, amount);
        return true;
    }

    /**
     * @dev Send token for sale
     * @param recipient The recipient's address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function sendSaleTokens (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(amount > 0);
        require(recipient != address(0));
        require(publicSaleAmount >= amount, 'Tokens limit exceeded');
        publicSaleAmount = publicSaleAmount
            .sub(amount);
        _mint(recipient, amount);
        emit Transfer(address(0), recipient, amount);
        return true;
    }

    /**
     * @dev Send token for liquidity
     * @param recipient The recipient's address.
     * @param amount Token amount.
     * @return true if succeed.
     */
    function sendLiquidityTokens (address recipient, uint256 amount) public onlyOwner returns (bool) {
        require(amount > 0);
        require(recipient != address(0));
        require(liquidityAmount >= amount, 'Tokens limit exceeded');
        liquidityAmount = liquidityAmount
            .sub(amount);
        _mint(recipient, amount);
        emit Transfer(address(0), recipient, amount);
        return true;
    }

    /**
     * @dev Returns balance of the vested tokens
     * @param who Address for which balance will be returned.
     */
    function vestedBalanceOf(address who) public view returns (uint256) {
        return _balances_3_months[who]
            .add(_balances_6_months[who])
            .add(_balances_1_year[who])
            .add(_balances_2_years[who])
            .add(_balances_4_years[who]);
    }

    /**
     * @dev Internal function, returns balance of the vested for 3 months tokens available for release
     * @param who Address for which balance will be returned.
     */
    function _available3months(address who) private view returns (uint256) {
        if (now.sub(vestingStartTime) > 91 days)
            return _balances_3_months[who]
                .sub(_released_3_months[who]);
        return 0;
    }

    /**
     * @dev Internal function, returns balance of the vested for 6 months tokens available for release
     * @param who Address for which balance will be returned.
     */
    function _available6months(address who) private view returns (uint256) {
        uint256 timeFromVestingStart = now
            .sub(vestingStartTime);
        if (timeFromVestingStart < 91 days)
            return 0;
        else if (timeFromVestingStart < 182 days)
            return _balances_6_months[who]
                .div(2)
                .sub(_released_6_months[who]);
        else
            return _balances_6_months[who]
                .sub(_released_6_months[who]);
    }

    /**
     * @dev Internal function, returns balance of the vested for 1 year tokens available for release
     * @param who Address for which balance will be returned.
     */
    function _available1year(address who) private view returns (uint256) {
        if (now.sub(vestingStartTime) > 365 days)
            return _balances_1_year[who]
                .sub(_released_1_year[who]);
        return 0;
    }

    /**
     * @dev Internal function, returns balance of the vested for 2 years tokens available for release
     * @param who Address for which balance will be returned.
     */
    function _available2years(address who) private view returns (uint256) {
        uint256 timeFromVestingStart = now
            .sub(vestingStartTime);
        if (timeFromVestingStart < 365 days)
            return 0;
        else if (timeFromVestingStart < 730 days)
            return _balances_2_years[who]
                .div(2)
                .sub(_released_2_years[who]);
        else
            return _balances_2_years[who]
                .sub(_released_2_years[who]);
    }

    /**
     * @dev Internal function, returns balance of the vested for 4 years tokens available for release
     * @param who Address for which balance will be returned.
     */
    function _available4years(address who) private view returns (uint256) {
        uint256 timeFromVestingStart = now
            .sub(vestingStartTime);
        uint256 vestingPeriod = timeFromVestingStart
            .div(182 days);
        if (vestingPeriod > 8) vestingPeriod = 8;
        return _balances_4_years[who]
            .mul(vestingPeriod)
            .mul(125)
            .div(1000)
            .sub(_released_4_years[who]);
    }

    /**
     * @dev Returns balance of the vested tokens available for release
     * @param who Address for which balance will be returned.
     */
    function availableBalanceOf(address who) public view returns (uint256) {
        return _available3months(who)
            .add(_available6months(who))
            .add(_available1year(who))
            .add(_available2years(who))
            .add(_available4years(who));
    }

    /**
     * @dev Internal function Release vested tokens according to the current date
     * @param who Address for which tokens will be released.
     */
    function _release(address who) internal returns (bool) {
        uint256 toRelease;
        uint256 available = _available3months(who);
        if (available > 0) {
            _released_3_months[who] = _released_3_months[who]
                .add(available);
            toRelease =  toRelease
                .add(available);
        }
        available = _available6months(who);
        if (available > 0) {
            _released_6_months[who] = _released_6_months[who]
                .add(available);
            toRelease =  toRelease
                .add(available);
        }
        available = _available1year(who);
        if (available > 0) {
            _released_1_year[who] = _released_1_year[who]
                .add(available);
            toRelease =  toRelease
                .add(available);
        }
        available = _available2years(who);
        if (available > 0) {
            _released_2_years[who] = _released_2_years[who]
                .add(available);
            toRelease =  toRelease
                .add(available);
        }
        available = _available4years(who);
        if (available > 0) {
            _released_4_years[who] = _released_4_years[who]
                .add(available);
            toRelease =  toRelease
                .add(available);
        }
        if (toRelease > 0) {
            _mint(who, toRelease);
            emit Release(who, toRelease);
            emit Transfer(address(0), who, toRelease);
        }
        return true;
    }

    /**
     * @dev Release vested tokens according to the current date
     */
    function release() public returns (bool) {
        return _release(msg.sender);
    }

    /**
     * @dev Release all vested tokens according to the current date
     */
    function releaseAll() public onlyOwner returns (bool) {
        for (uint256 i = 0; i < _vestedAddresses.length; i ++) {
            _release(_vestedAddresses[i]);
        }
        return true;
    }

    /**
     * @dev Burning tokens sent to the revenuesAddress 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(to != address(0));
        if (to != revenuesAddress)
            return super.transfer(to, value);
        super.transfer(to, value);
        _burn(to, value);
        emit RevenueTransferred(msg.sender, value);
        return true;
    }

    /**
     * @dev Burning tokens sent to the revenuesAddress address
     * @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(to != address(0));
        if (to != revenuesAddress)
            return super.transferFrom(from, to, value);
        super.transferFrom(from, to, value);
        _burn(to, value);
        emit RevenueTransferred(from, value);
        return true;
    }
}

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":"who","type":"address"}],"name":"vestedBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"sendLiquidityTokens","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":"who","type":"address"}],"name":"availableBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"revenuesAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"releaseAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"bountyVest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"advisorsVest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"sendSaleTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundationAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"publicSaleAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"privateSaleAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"privateSaleVest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"teamVest","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"employeePoolVest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vestingStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"bountyAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"foundationVest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"employeePoolAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}],"name":"setRevenuesAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advisorsAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"newOwner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Release","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokensVestedTeam","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokensVestedFoundation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokensVestedEmployeePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokensVestedAdvisors","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokensVestedBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokensVestedPrivateSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"RevenueTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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"}]

60806040526200002a630bebc200670de0b6b3a7640000640100000000620020ea620001ed82021704565b600455620000536305f5e100670de0b6b3a7640000640100000000620020ea620001ed82021704565b6005556200007c6302faf080670de0b6b3a7640000640100000000620020ea620001ed82021704565b600655620000a56302faf080670de0b6b3a7640000640100000000620020ea620001ed82021704565b600755620000ce63017d7840670de0b6b3a7640000640100000000620020ea620001ed82021704565b600855620000f763017d7840670de0b6b3a7640000640100000000620020ea620001ed82021704565b600955620001206317d78400670de0b6b3a7640000640100000000620020ea620001ed82021704565b600a55620001496308f0d180670de0b6b3a7640000640100000000620020ea620001ed82021704565b600b553480156200015957600080fd5b5060405160208062002437833981018060405260208110156200017b57600080fd5b505160038054600160a060020a031916331790819055604051600160a060020a03919091169060009060008051602062002417833981519152908290a3600160a060020a0381161515620001ce57600080fd5b620001e28164010000000062000225810204565b504260195562000286565b600082151562000200575060006200021f565b8282028284828115156200021057fe5b04146200021c57600080fd5b90505b92915050565b600160a060020a03811615156200023b57600080fd5b600354604051600160a060020a038084169216906000805160206200241783398151915290600090a360038054600160a060020a031916600160a060020a0392909216919091179055565b61218180620002966000396000f3fe6080604052600436106101d1577c0100000000000000000000000000000000000000000000000000000000600035046306fdde0381146101d6578063095ea7b3146102605780630e2d1a2a146102ad57806317b89bbe146102f257806318160ddd1461032b57806323b872dd1461034057806325d998bb14610383578063313ce567146103b6578063350dd326146103e457806339509351146104155780635be7fde81461044e5780635e46f2ca14610463578063704393851461049c57806370a08231146104b157806370baed43146104e4578063715018a6146104f957806379a53715146105105780637dfe45391461054957806385e36cc21461058257806386d1a69f146105975780638985abc8146105ac5780638b2b423a146105c15780638da5cb5b146105d65780638f32d59b146105eb57806395d89b41146106005780639afd4ca1146106155780639e9626951461064e578063a457c2d714610687578063a5b918aa146106c0578063a8660a78146106f9578063a9059cbb1461070e578063ccd331bf14610747578063cf341aa11461075c578063d9ff879014610795578063dd62ed3e146107aa578063ecee1bbe146107e5578063f2fde38b14610818578063f439d7211461084b575b600080fd5b3480156101e257600080fd5b506101eb610860565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022557818101518382015260200161020d565b50505050905090810190601f1680156102525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026c57600080fd5b506102996004803603604081101561028357600080fd5b50600160a060020a038135169060200135610897565b604080519115158252519081900360200190f35b3480156102b957600080fd5b506102e0600480360360208110156102d057600080fd5b5035600160a060020a03166108ae565b60408051918252519081900360200190f35b3480156102fe57600080fd5b506102996004803603604081101561031557600080fd5b50600160a060020a038135169060200135610918565b34801561033757600080fd5b506102e0610a01565b34801561034c57600080fd5b506102996004803603606081101561036357600080fd5b50600160a060020a03813581169160208101359091169060400135610a07565b34801561038f57600080fd5b506102e0600480360360208110156103a657600080fd5b5035600160a060020a0316610aa5565b3480156103c257600080fd5b506103cb610ae0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f057600080fd5b506103f9610ae5565b60408051600160a060020a039092168252519081900360200190f35b34801561042157600080fd5b506102996004803603604081101561043857600080fd5b50600160a060020a038135169060200135610af4565b34801561045a57600080fd5b50610299610b35565b34801561046f57600080fd5b506102996004803603604081101561048657600080fd5b50600160a060020a038135169060200135610b94565b3480156104a857600080fd5b506102e0610d14565b3480156104bd57600080fd5b506102e0600480360360208110156104d457600080fd5b5035600160a060020a0316610d1a565b3480156104f057600080fd5b506102e0610d35565b34801561050557600080fd5b5061050e610d3b565b005b34801561051c57600080fd5b506102996004803603604081101561053357600080fd5b50600160a060020a038135169060200135610d98565b34801561055557600080fd5b506102996004803603604081101561056c57600080fd5b50600160a060020a038135169060200135610f18565b34801561058e57600080fd5b506102e0610fb7565b3480156105a357600080fd5b50610299610fbd565b3480156105b857600080fd5b506102e0610fcd565b3480156105cd57600080fd5b506102e0610fd3565b3480156105e257600080fd5b506103f9610fd9565b3480156105f757600080fd5b50610299610fe8565b34801561060c57600080fd5b506101eb610ff9565b34801561062157600080fd5b506102996004803603604081101561063857600080fd5b50600160a060020a038135169060200135611030565b34801561065a57600080fd5b506102996004803603604081101561067157600080fd5b50600160a060020a0381351690602001356111b0565b34801561069357600080fd5b50610299600480360360408110156106aa57600080fd5b50600160a060020a038135169060200135611330565b3480156106cc57600080fd5b50610299600480360360408110156106e357600080fd5b50600160a060020a03813516906020013561136c565b34801561070557600080fd5b506102e06114ec565b34801561071a57600080fd5b506102996004803603604081101561073157600080fd5b50600160a060020a0381351690602001356114f2565b34801561075357600080fd5b506102e0611583565b34801561076857600080fd5b506102996004803603604081101561077f57600080fd5b50600160a060020a038135169060200135611589565b3480156107a157600080fd5b506102e0611709565b3480156107b657600080fd5b506102e0600480360360408110156107cd57600080fd5b50600160a060020a038135811691602001351661170f565b3480156107f157600080fd5b506102996004803603602081101561080857600080fd5b5035600160a060020a031661173a565b34801561082457600080fd5b5061050e6004803603602081101561083b57600080fd5b5035600160a060020a0316611789565b34801561085757600080fd5b506102e06117a8565b60408051808201909152600681527f4249544645580000000000000000000000000000000000000000000000000000602082015281565b60006108a43384846117ae565b5060015b92915050565b600160a060020a038116600090815260176020908152604080832054601583528184205460138452828520546011855283862054600f90955292852054610910949293610904938492839163ffffffff61183a16565b9063ffffffff61183a16565b90505b919050565b6000610922610fe8565b151561092d57600080fd5b6000821161093a57600080fd5b600160a060020a038316151561094f57600080fd5b600754821115610997576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b6007546109aa908363ffffffff61184c16565b6007556109b78383611861565b604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60025490565b6000600160a060020a0383161515610a1e57600080fd5b600c54600160a060020a03848116911614610a4557610a3e848484611909565b9050610a9e565b610a50848484611909565b50610a5b838361195b565b604080518381529051600160a060020a038616917f784742ae5f71d65160b3814391a7c511c4bfcf54009a9058dcfcc7f176c8646e919081900360200190a25060015b9392505050565b6000610910610ab383611a03565b610904610abf85611ab6565b610904610acb87611b69565b610904610ad789611bce565b6109048a611c77565b601281565b600c54600160a060020a031681565b336000818152600160209081526040808320600160a060020a038716845290915281205490916108a4918590610b30908663ffffffff61183a16565b6117ae565b6000610b3f610fe8565b1515610b4a57600080fd5b60005b600d54811015610b8c57610b83600d82815481101515610b6957fe5b600091825260209091200154600160a060020a0316611ccc565b50600101610b4d565b506001905090565b6000610b9e610fe8565b1515610ba957600080fd5b600160a060020a0383161515610bbe57600080fd5b600954821115610c06576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600e602052604090205460ff161515610c7a57600d80546001808201909255600080516020612136833981519152018054600160a060020a031916600160a060020a0386169081179091556000908152600e60205260409020805460ff191690911790555b600954610c8d908363ffffffff61184c16565b600955600160a060020a0383166000908152600f6020526040902054610cb9908363ffffffff61183a16565b600160a060020a0384166000818152600f6020908152604091829020939093558051858152905191927f038a36f4341baee0fc16cd23e3f19742bdd96e46b33d83388dbbd6a36047ae0892918290030190a250600192915050565b60045481565b600160a060020a031660009081526020819052604090205490565b60075481565b610d43610fe8565b1515610d4e57600080fd5b600354604051600091600160a060020a0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360038054600160a060020a0319169055565b6000610da2610fe8565b1515610dad57600080fd5b600160a060020a0383161515610dc257600080fd5b600854821115610e0a576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600e602052604090205460ff161515610e7e57600d80546001808201909255600080516020612136833981519152018054600160a060020a031916600160a060020a0386169081179091556000908152600e60205260409020805460ff191690911790555b600854610e91908363ffffffff61184c16565b600855600160a060020a038316600090815260116020526040902054610ebd908363ffffffff61183a16565b600160a060020a038416600081815260116020908152604091829020939093558051858152905191927fef791c78f8df39ef7001845ffd363584ef8a0df288b1b4da692747b4c56df2f192918290030190a250600192915050565b6000610f22610fe8565b1515610f2d57600080fd5b60008211610f3a57600080fd5b600160a060020a0383161515610f4f57600080fd5b600a54821115610f97576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600a54610faa908363ffffffff61184c16565b600a556109b78383611861565b60055481565b6000610fc833611ccc565b905090565b600a5481565b600b5481565b600354600160a060020a031690565b600354600160a060020a0316331490565b60408051808201909152600381527f4246580000000000000000000000000000000000000000000000000000000000602082015281565b600061103a610fe8565b151561104557600080fd5b600160a060020a038316151561105a57600080fd5b600b548211156110a2576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600e602052604090205460ff16151561111657600d80546001808201909255600080516020612136833981519152018054600160a060020a031916600160a060020a0386169081179091556000908152600e60205260409020805460ff191690911790555b600b54611129908363ffffffff61184c16565b600b55600160a060020a038316600090815260116020526040902054611155908363ffffffff61183a16565b600160a060020a038416600081815260116020908152604091829020939093558051858152905191927ff07232be1476c574372359ba841faa5ceec52790bf1c6dd494aba4e76eb602b892918290030190a250600192915050565b60006111ba610fe8565b15156111c557600080fd5b600160a060020a03831615156111da57600080fd5b600454821115611222576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600e602052604090205460ff16151561129657600d80546001808201909255600080516020612136833981519152018054600160a060020a031916600160a060020a0386169081179091556000908152600e60205260409020805460ff191690911790555b6004546112a9908363ffffffff61184c16565b600455600160a060020a0383166000908152601760205260409020546112d5908363ffffffff61183a16565b600160a060020a038416600081815260176020908152604091829020939093558051858152905191927fc78f14b5f0e3ae6f25f545cfdfc5ebd77a9ef685a61a62badec8a437bb16620a92918290030190a250600192915050565b336000818152600160209081526040808320600160a060020a038716845290915281205490916108a4918590610b30908663ffffffff61184c16565b6000611376610fe8565b151561138157600080fd5b600160a060020a038316151561139657600080fd5b6006548211156113de576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600e602052604090205460ff16151561145257600d80546001808201909255600080516020612136833981519152018054600160a060020a031916600160a060020a0386169081179091556000908152600e60205260409020805460ff191690911790555b600654611465908363ffffffff61184c16565b600655600160a060020a038316600090815260136020526040902054611491908363ffffffff61183a16565b600160a060020a038416600081815260136020908152604091829020939093558051858152905191927f421c11e98930816e2df3ff35af055915ec8689e9796eb140b512ba5f57ad2b6a92918290030190a250600192915050565b60195481565b6000600160a060020a038316151561150957600080fd5b600c54600160a060020a0384811691161461152f576115288383611f7b565b90506108a8565b6115398383611f7b565b50611544838361195b565b60408051838152905133917f784742ae5f71d65160b3814391a7c511c4bfcf54009a9058dcfcc7f176c8646e919081900360200190a250600192915050565b60095481565b6000611593610fe8565b151561159e57600080fd5b600160a060020a03831615156115b357600080fd5b6005548211156115fb576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612116833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600e602052604090205460ff16151561166f57600d80546001808201909255600080516020612136833981519152018054600160a060020a031916600160a060020a0386169081179091556000908152600e60205260409020805460ff191690911790555b600554611682908363ffffffff61184c16565b600555600160a060020a0383166000908152601560205260409020546116ae908363ffffffff61183a16565b600160a060020a038416600081815260156020908152604091829020939093558051858152905191927f350a89ea4aad4f3e6fdefb832066859f6eb6a239e7c128e7b9e5c9dcd58baf3492918290030190a250600192915050565b60065481565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000611744610fe8565b151561174f57600080fd5b600160a060020a038216151561176457600080fd5b50600c8054600160a060020a038316600160a060020a03199091161790556001919050565b611791610fe8565b151561179c57600080fd5b6117a581611f88565b50565b60085481565b600160a060020a03821615156117c357600080fd5b600160a060020a03831615156117d857600080fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082820183811015610a9e57600080fd5b60008282111561185b57600080fd5b50900390565b600160a060020a038216151561187657600080fd5b600254611889908263ffffffff61183a16565b600255600160a060020a0382166000908152602081905260409020546118b5908263ffffffff61183a16565b600160a060020a03831660008181526020818152604091829020939093558051848152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a25050565b6000611916848484611ff9565b600160a060020a038416600090815260016020908152604080832033808552925290912054611951918691610b30908663ffffffff61184c16565b5060019392505050565b600160a060020a038216151561197057600080fd5b600254611983908263ffffffff61184c16565b600255600160a060020a0382166000908152602081905260409020546119af908263ffffffff61184c16565b600160a060020a03831660008181526020818152604091829020939093558051848152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a25050565b600080611a1b6019544261184c90919063ffffffff16565b90506000611a328262eff10063ffffffff6120c616565b90506008811115611a41575060085b600160a060020a038416600090815260186020908152604080832054601790925290912054611aae9190611aa2906103e890611a9690607d90611a8a908863ffffffff6120ea16565b9063ffffffff6120ea16565b9063ffffffff6120c616565b9063ffffffff61184c16565b949350505050565b600080611ace6019544261184c90919063ffffffff16565b90506301e13380811015611ae6576000915050610913565b6303c26700811015611b3557600160a060020a038316600090815260166020908152604080832054601590925290912054611b2d9190611aa290600263ffffffff6120c616565b915050610913565b600160a060020a038316600090815260166020908152604080832054601590925290912054611b2d9163ffffffff61184c16565b60006301e13380611b856019544261184c90919063ffffffff16565b1115611bc657600160a060020a038216600090815260146020908152604080832054601390925290912054611bbf9163ffffffff61184c16565b9050610913565b506000919050565b600080611be66019544261184c90919063ffffffff16565b90506277f880811015611bfd576000915050610913565b62eff100811015611c4357600160a060020a038316600090815260126020908152604080832054601190925290912054611b2d9190611aa290600263ffffffff6120c616565b600160a060020a038316600090815260126020908152604080832054601190925290912054611b2d9163ffffffff61184c16565b60006277f880611c926019544261184c90919063ffffffff16565b1115611bc657600160a060020a038216600090815260106020908152604080832054600f90925290912054611bbf9163ffffffff61184c16565b6000806000611cda84611c77565b90506000811115611d3a57600160a060020a038416600090815260106020526040902054611d0e908263ffffffff61183a16565b600160a060020a038516600090815260106020526040902055611d37828263ffffffff61183a16565b91505b611d4384611bce565b90506000811115611da357600160a060020a038416600090815260126020526040902054611d77908263ffffffff61183a16565b600160a060020a038516600090815260126020526040902055611da0828263ffffffff61183a16565b91505b611dac84611b69565b90506000811115611e0c57600160a060020a038416600090815260146020526040902054611de0908263ffffffff61183a16565b600160a060020a038516600090815260146020526040902055611e09828263ffffffff61183a16565b91505b611e1584611ab6565b90506000811115611e7557600160a060020a038416600090815260166020526040902054611e49908263ffffffff61183a16565b600160a060020a038516600090815260166020526040902055611e72828263ffffffff61183a16565b91505b611e7e84611a03565b90506000811115611ede57600160a060020a038416600090815260186020526040902054611eb2908263ffffffff61183a16565b600160a060020a038516600090815260186020526040902055611edb828263ffffffff61183a16565b91505b600082111561195157611ef18483611861565b604080518381529051600160a060020a038616917ff6334794522b9db534a812aaae1af828a2e96aac68473b58e36d7d0bfd67477b919081900360200190a2604080518381529051600160a060020a038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019392505050565b60006108a4338484611ff9565b600160a060020a0381161515611f9d57600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360038054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038216151561200e57600080fd5b600160a060020a038316600090815260208190526040902054612037908263ffffffff61184c16565b600160a060020a03808516600090815260208190526040808220939093559084168152205461206c908263ffffffff61183a16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008082116120d457600080fd5b600082848115156120e157fe5b04949350505050565b60008215156120fb575060006108a8565b82820282848281151561210a57fe5b0414610a9e57600080fdfe546f6b656e73206c696d69742065786365656465640000000000000000000000d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5a165627a7a7230582087fc549d9c81ecaee41a74d46edc7bf0eaa2c9cf47b12b3a7bc78c281f1667e500298be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000940dfafc5a7c01b0c59f4d64b0afae350c7c6fb5

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

000000000000000000000000940dfafc5a7c01b0c59f4d64b0afae350c7c6fb5

-----Decoded View---------------
Arg [0] : newOwner (address): 0x940dFafc5a7C01b0c59f4D64b0afAe350C7c6fb5

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000940dfafc5a7c01b0c59f4d64b0afae350c7c6fb5


Deployed ByteCode Sourcemap

12172:16380:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12213:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12213:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12213:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5037:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5037:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5037:148:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;21546:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21546:285:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21546:285:0;-1:-1:-1;;;;;21546:285:0;;:::i;:::-;;;;;;;;;;;;;;;;20977:430;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20977:430:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20977:430:0;;;;;;;;:::i;3188:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3188:91:0;;;:::i;28185:364::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28185:364:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;28185:364:0;;;;;;;;;;;;;;;;;:::i;24883:283::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24883:283:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24883:283:0;-1:-1:-1;;;;;24883:283:0;;:::i;12302:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12302:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13715:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13715:30:0;;;:::i;:::-;;;;-1:-1:-1;;;;;13715:30:0;;;;;;;;;;;;;;6401:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6401:203:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6401:203:0;;;;;;;;:::i;27160:205::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27160:205:0;;;:::i;18766:605::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18766:605:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18766:605:0;;;;;;;;:::i;12883:53::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12883:53:0;;;:::i;3499:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3499:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3499:106:0;-1:-1:-1;;;;;3499:106:0;;:::i;13215:58::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13215:58:0;;;:::i;11402:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11402:140:0;;;:::i;:::-;;17976:615;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17976:615:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17976:615:0;;;;;;;;:::i;20366:428::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20366:428:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20366:428:0;;;;;;;;:::i;12999:59::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12999:59:0;;;:::i;26978:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26978:87:0;;;:::i;13511:59::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13511:59:0;;;:::i;13592:61::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13592:61:0;;;:::i;10689:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10689:79:0;;;:::i;11024:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11024:92:0;;;:::i;12258:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12258:37:0;;;:::i;19558:630::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19558:630:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19558:630:0;;;;;;;;:::i;15578:593::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15578:593:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15578:593:0;;;;;;;;:::i;7124:213::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7124:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7124:213:0;;;;;;;;:::i;17166:631::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17166:631:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17166:631:0;;;;;;;;:::i;14751:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14751:31:0;;;:::i;27552:332::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27552:332:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;27552:332:0;;;;;;;;:::i;13413:56::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13413:56:0;;;:::i;16354:623::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16354:623:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16354:623:0;;;;;;;;:::i;13115:61::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13115:61:0;;;:::i;3944:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3944:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3944:131:0;;;;;;;;;;:::i;15213:194::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15213:194:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15213:194:0;-1:-1:-1;;;;;15213:194:0;;:::i;11719:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11719:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11719:109:0;-1:-1:-1;;;;;11719:109:0;;:::i;13294:58::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13294:58:0;;;:::i;12213:38::-;;;;;;;;;;;;;;;;;;;:::o;5037:148::-;5102:4;5119:36;5128:10;5140:7;5149:5;5119:8;:36::i;:::-;-1:-1:-1;5173:4:0;5037:148;;;;;:::o;21546:285::-;-1:-1:-1;;;;;21800:22:0;;21605:7;21800:22;;;:17;:22;;;;;;;;;21758:17;:22;;;;;;21717:16;:21;;;;;;21674:18;:23;;;;;;21632:18;:23;;;;;;;:191;;21800:22;;21632:149;;;;;;:66;:41;:66;:::i;:::-;:84;:107;:84;:107;:::i;:191::-;21625:198;;21546:285;;;;:::o;20977:430::-;21068:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;21102:1;21093:10;;21085:19;;;;;;-1:-1:-1;;;;;21123:23:0;;;;21115:32;;;;;;21166:15;;:25;-1:-1:-1;21166:25:0;21158:59;;;;;-1:-1:-1;;;;;21158:59:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21158:59:0;;;;;;;;;;;;;;;21246:15;;:41;;21280:6;21246:41;:33;:41;:::i;:::-;21228:15;:59;21298:24;21304:9;21315:6;21298:5;:24::i;:::-;21338:39;;;;;;;;-1:-1:-1;;;;;21338:39:0;;;21355:1;;21338:39;;;;;;;;;-1:-1:-1;21395:4:0;20977:430;;;;:::o;3188:91::-;3259:12;;3188:91;:::o;28185:364::-;28264:4;-1:-1:-1;;;;;28289:16:0;;;;28281:25;;;;;;28327:15;;-1:-1:-1;;;;;28321:21:0;;;28327:15;;28321:21;28317:82;;28364:35;28383:4;28389:2;28393:5;28364:18;:35::i;:::-;28357:42;;;;28317:82;28410:35;28429:4;28435:2;28439:5;28410:18;:35::i;:::-;;28456:16;28462:2;28466:5;28456;:16::i;:::-;28488:31;;;;;;;;-1:-1:-1;;;;;28488:31:0;;;;;;;;;;;;;-1:-1:-1;28537:4:0;28185:364;;;;;;:::o;24883:283::-;24945:7;24972:186;25136:21;25153:3;25136:16;:21::i;:::-;24972:145;25095:21;25112:3;25095:16;:21::i;:::-;24972:104;25055:20;25071:3;25055:15;:20::i;:::-;24972:64;25013:22;25031:3;25013:17;:22::i;:::-;24972;24990:3;24972:17;:22::i;12302:36::-;12336:2;12302:36;:::o;13715:30::-;;;-1:-1:-1;;;;;13715:30:0;;:::o;6401:203::-;6507:10;6481:4;6528:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;6528:29:0;;;;;;;;;;6481:4;;6498:76;;6519:7;;6528:45;;6562:10;6528:45;:33;:45;:::i;:::-;6498:8;:76::i;27160:205::-;27208:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;27230:9;27225:111;27249:16;:23;27245:27;;27225:111;;;27295:29;27304:16;27321:1;27304:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27304:19:0;27295:8;:29::i;:::-;-1:-1:-1;27274:4:0;;27225:111;;;;27353:4;27346:11;;27160:205;:::o;18766:605::-;18848:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;18873:23:0;;;;18865:32;;;;;;18916:12;;:22;-1:-1:-1;18916:22:0;18908:56;;;;;-1:-1:-1;;;;;18908:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18908:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18980:32:0;;;;;;:21;:32;;;;;;;;18979:33;18975:152;;;19029:16;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;19029:32:0;;;-1:-1:-1;;;;;;19029:32:0;-1:-1:-1;;;;;19029:32:0;;;;;;;;-1:-1:-1;19076:32:0;;;:21;19029:32;19076;;;;:39;;-1:-1:-1;;19076:39:0;;;;;;18975:152;19152:12;;:38;;19183:6;19152:38;:30;:38;:::i;:::-;19137:12;:53;-1:-1:-1;;;;;19233:29:0;;;;;;:18;:29;;;;;;:55;;19281:6;19233:55;:47;:55;:::i;:::-;-1:-1:-1;;;;;19201:29:0;;;;;;:18;:29;;;;;;;;;:87;;;;19304:37;;;;;;;19201:29;;19304:37;;;;;;;;;-1:-1:-1;19359:4:0;18766:605;;;;:::o;12883:53::-;;;;:::o;3499:106::-;-1:-1:-1;;;;;3581:16:0;3554:7;3581:16;;;;;;;;;;;;3499:106::o;13215:58::-;;;;:::o;11402:140::-;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;11485:6;;11464:40;;11501:1;;-1:-1:-1;;;;;11485:6:0;;11464:40;;11501:1;;11464:40;11515:6;:19;;-1:-1:-1;;;;;;11515:19:0;;;11402:140::o;17976:615::-;18060:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;18085:23:0;;;;18077:32;;;;;;18128:14;;:24;-1:-1:-1;18128:24:0;18120:58;;;;;-1:-1:-1;;;;;18120:58:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18120:58:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18194:32:0;;;;;;:21;:32;;;;;;;;18193:33;18189:152;;;18243:16;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;18243:32:0;;;-1:-1:-1;;;;;;18243:32:0;-1:-1:-1;;;;;18243:32:0;;;;;;;;-1:-1:-1;18290:32:0;;;:21;18243:32;18290;;;;:39;;-1:-1:-1;;18290:39:0;;;;;;18189:152;18368:14;;:40;;18401:6;18368:40;:32;:40;:::i;:::-;18351:14;:57;-1:-1:-1;;;;;18451:29:0;;;;;;:18;:29;;;;;;:55;;18499:6;18451:55;:47;:55;:::i;:::-;-1:-1:-1;;;;;18419:29:0;;;;;;:18;:29;;;;;;;;;:87;;;;18522:39;;;;;;;18419:29;;18522:39;;;;;;;;;-1:-1:-1;18579:4:0;17976:615;;;;:::o;20366:428::-;20452:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;20486:1;20477:10;;20469:19;;;;;;-1:-1:-1;;;;;20507:23:0;;;;20499:32;;;;;;20550:16;;:26;-1:-1:-1;20550:26:0;20542:60;;;;;-1:-1:-1;;;;;20542:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20542:60:0;;;;;;;;;;;;;;;20632:16;;:42;;20667:6;20632:42;:34;:42;:::i;:::-;20613:16;:61;20685:24;20691:9;20702:6;20685:5;:24::i;12999:59::-;;;;:::o;26978:87::-;27013:4;27037:20;27046:10;27037:8;:20::i;:::-;27030:27;;26978:87;:::o;13511:59::-;;;;:::o;13592:61::-;;;;:::o;10689:79::-;10754:6;;-1:-1:-1;;;;;10754:6:0;10689:79;:::o;11024:92::-;11102:6;;-1:-1:-1;;;;;11102:6:0;11088:10;:20;;11024:92::o;12258:37::-;;;;;;;;;;;;;;;;;;;:::o;19558:630::-;19645:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;19670:23:0;;;;19662:32;;;;;;19713:17;;:27;-1:-1:-1;19713:27:0;19705:61;;;;;-1:-1:-1;;;;;19705:61:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19705:61:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;19782:32:0;;;;;;:21;:32;;;;;;;;19781:33;19777:152;;;19831:16;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;19831:32:0;;;-1:-1:-1;;;;;;19831:32:0;-1:-1:-1;;;;;19831:32:0;;;;;;;;-1:-1:-1;19878:32:0;;;:21;19831:32;19878;;;;:39;;-1:-1:-1;;19878:39:0;;;;;;19777:152;19959:17;;:43;;19995:6;19959:43;:35;:43;:::i;:::-;19939:17;:63;-1:-1:-1;;;;;20045:29:0;;;;;;:18;:29;;;;;;:55;;20093:6;20045:55;:47;:55;:::i;:::-;-1:-1:-1;;;;;20013:29:0;;;;;;:18;:29;;;;;;;;;:87;;;;20116:42;;;;;;;20013:29;;20116:42;;;;;;;;;-1:-1:-1;20176:4:0;19558:630;;;;:::o;15578:593::-;15658:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;15683:23:0;;;;15675:32;;;;;;15726:10;;:20;-1:-1:-1;15726:20:0;15718:54;;;;;-1:-1:-1;;;;;15718:54:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15718:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15788:32:0;;;;;;:21;:32;;;;;;;;15787:33;15783:152;;;15837:16;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;15837:32:0;;;-1:-1:-1;;;;;;15837:32:0;-1:-1:-1;;;;;15837:32:0;;;;;;;;-1:-1:-1;15884:32:0;;;:21;15837:32;15884;;;;:39;;-1:-1:-1;;15884:39:0;;;;;;15783:152;15958:10;;:36;;15987:6;15958:36;:28;:36;:::i;:::-;15945:10;:49;-1:-1:-1;;;;;16036:28:0;;;;;;:17;:28;;;;;;:54;;16083:6;16036:54;:46;:54;:::i;:::-;-1:-1:-1;;;;;16005:28:0;;;;;;:17;:28;;;;;;;;;:85;;;;16106:35;;;;;;;16005:28;;16106:35;;;;;;;;;-1:-1:-1;16159:4:0;15578:593;;;;:::o;7124:213::-;7235:10;7209:4;7256:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7256:29:0;;;;;;;;;;7209:4;;7226:81;;7247:7;;7256:50;;7290:15;7256:50;:33;:50;:::i;17166:631::-;17254:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;17279:23:0;;;;17271:32;;;;;;17322:18;;:28;-1:-1:-1;17322:28:0;17314:62;;;;;-1:-1:-1;;;;;17314:62:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17314:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17392:32:0;;;;;;:21;:32;;;;;;;;17391:33;17387:152;;;17441:16;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;17441:32:0;;;-1:-1:-1;;;;;;17441:32:0;-1:-1:-1;;;;;17441:32:0;;;;;;;;-1:-1:-1;17488:32:0;;;:21;17441:32;17488;;;;:39;;-1:-1:-1;;17488:39:0;;;;;;17387:152;17570:18;;:44;;17607:6;17570:44;:36;:44;:::i;:::-;17549:18;:65;-1:-1:-1;;;;;17655:27:0;;;;;;:16;:27;;;;;;:53;;17701:6;17655:53;:45;:53;:::i;:::-;-1:-1:-1;;;;;17625:27:0;;;;;;:16;:27;;;;;;;;;:83;;;;17724:43;;;;;;;17625:27;;17724:43;;;;;;;;;-1:-1:-1;17785:4:0;17166:631;;;;:::o;14751:31::-;;;;:::o;27552:332::-;27613:4;-1:-1:-1;;;;;27638:16:0;;;;27630:25;;;;;;27676:15;;-1:-1:-1;;;;;27670:21:0;;;27676:15;;27670:21;27666:72;;27713:25;27728:2;27732:5;27713:14;:25::i;:::-;27706:32;;;;27666:72;27749:25;27764:2;27768:5;27749:14;:25::i;:::-;;27785:16;27791:2;27795:5;27785;:16::i;:::-;27817:37;;;;;;;;27836:10;;27817:37;;;;;;;;;;-1:-1:-1;27872:4:0;27552:332;;;;:::o;13413:56::-;;;;:::o;16354:623::-;16440:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;16465:23:0;;;;16457:32;;;;;;16508:16;;:26;-1:-1:-1;16508:26:0;16500:60;;;;;-1:-1:-1;;;;;16500:60:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16500:60:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16576:32:0;;;;;;:21;:32;;;;;;;;16575:33;16571:152;;;16625:16;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;;;;;;;;;;;16625:32:0;;;-1:-1:-1;;;;;;16625:32:0;-1:-1:-1;;;;;16625:32:0;;;;;;;;-1:-1:-1;16672:32:0;;;:21;16625:32;16672;;;;:39;;-1:-1:-1;;16672:39:0;;;;;;16571:152;16752:16;;:42;;16787:6;16752:42;:34;:42;:::i;:::-;16733:16;:61;-1:-1:-1;;;;;16836:28:0;;;;;;:17;:28;;;;;;:54;;16883:6;16836:54;:46;:54;:::i;:::-;-1:-1:-1;;;;;16805:28:0;;;;;;:17;:28;;;;;;;;;:85;;;;16906:41;;;;;;;16805:28;;16906:41;;;;;;;;;-1:-1:-1;16965:4:0;16354:623;;;;:::o;13115:61::-;;;;:::o;3944:131::-;-1:-1:-1;;;;;4043:15:0;;;4016:7;4043:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;3944:131::o;15213:194::-;15288:4;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;-1:-1:-1;;;;;15313:24:0;;;;15305:33;;;;;;-1:-1:-1;15349:15:0;:28;;-1:-1:-1;;;;;15349:28:0;;-1:-1:-1;;;;;;15349:28:0;;;;;;;15213:194;;;:::o;11719:109::-;10901:9;:7;:9::i;:::-;10893:18;;;;;;;;11792:28;11811:8;11792:18;:28::i;:::-;11719:109;:::o;13294:58::-;;;;:::o;9191:254::-;-1:-1:-1;;;;;9284:21:0;;;;9276:30;;;;;;-1:-1:-1;;;;;9325:19:0;;;;9317:28;;;;;;-1:-1:-1;;;;;9358:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;9406:31;;;;;;;;;;;;;;;;;9191:254;;;:::o;2249:150::-;2307:7;2339:5;;;2363:6;;;;2355:15;;;;;2011:150;2069:7;2097:6;;;;2089:15;;;;;;-1:-1:-1;2127:5:0;;;2011:150::o;8178:253::-;-1:-1:-1;;;;;8253:21:0;;;;8245:30;;;;;;8303:12;;:23;;8320:5;8303:23;:16;:23;:::i;:::-;8288:12;:38;-1:-1:-1;;;;;8358:18:0;;:9;:18;;;;;;;;;;;:29;;8381:5;8358:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;8337:18:0;;:9;:18;;;;;;;;;;;;:50;;;;8403:20;;;;;;;8337:18;;8403:20;;;;;;;;;8178:253;;:::o;5658:228::-;5737:4;5754:26;5764:4;5770:2;5774:5;5754:9;:26::i;:::-;-1:-1:-1;;;;;5818:14:0;;;;;;:8;:14;;;;;;;;5806:10;5818:26;;;;;;;;;5791:65;;5800:4;;5818:37;;5849:5;5818:37;:30;:37;:::i;5791:65::-;-1:-1:-1;5874:4:0;5658:228;;;;;:::o;8665:253::-;-1:-1:-1;;;;;8740:21:0;;;;8732:30;;;;;;8790:12;;:23;;8807:5;8790:23;:16;:23;:::i;:::-;8775:12;:38;-1:-1:-1;;;;;8845:18:0;;:9;:18;;;;;;;;;;;:29;;8868:5;8845:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;8824:18:0;;:9;:18;;;;;;;;;;;;:50;;;;8890:20;;;;;;;8824:18;;8890:20;;;;;;;;;8665:253;;:::o;24267:455::-;24328:7;24348:28;24379:39;24401:16;;24379:3;:21;;:39;;;;:::i;:::-;24348:70;-1:-1:-1;24429:21:0;24453:48;24348:70;24492:8;24453:48;:38;:48;:::i;:::-;24429:72;;24532:1;24516:13;:17;24512:40;;;-1:-1:-1;24551:1:0;24512:40;-1:-1:-1;;;;;24691:22:0;;;;;;:17;:22;;;;;;;;;24570:17;:22;;;;;;;:144;;24691:22;24570:102;;24667:4;;24570:78;;24644:3;;24570:55;;24611:13;24570:55;:40;:55;:::i;:::-;:73;:78;:73;:78;:::i;:::-;:96;:102;:96;:102;:::i;:::-;:120;:144;:120;:144;:::i;:::-;24563:151;24267:455;-1:-1:-1;;;;24267:455:0:o;23577:498::-;23638:7;23658:28;23689:39;23711:16;;23689:3;:21;;:39;;;;:::i;:::-;23658:70;;23766:8;23743:20;:31;23739:328;;;23796:1;23789:8;;;;;23739:328;23840:8;23817:20;:31;23813:254;;;-1:-1:-1;;;;;23940:22:0;;;;;;:17;:22;;;;;;;;;23870:17;:22;;;;;;;:93;;23940:22;23870:47;;23915:1;23870:47;:44;:47;:::i;:93::-;23863:100;;;;;23813:254;-1:-1:-1;;;;;24044:22:0;;;;;;:17;:22;;;;;;;;;23999:17;:22;;;;;;;:68;;;:44;:68;:::i;23150:235::-;23210:7;23262:8;23234:25;23242:16;;23234:3;:7;;:25;;;;:::i;:::-;:36;23230:128;;;-1:-1:-1;;;;;23336:21:0;;;;;;:16;:21;;;;;;;;;23292:16;:21;;;;;;;:66;;;:43;:66;:::i;:::-;23285:73;;;;23230:128;-1:-1:-1;23376:1:0;23150:235;;;:::o;22457:502::-;22519:7;22539:28;22570:39;22592:16;;22570:3;:21;;:39;;;;:::i;:::-;22539:70;;22647:7;22624:20;:30;22620:331;;;22676:1;22669:8;;;;;22620:331;22720:8;22697:20;:31;22693:258;;;-1:-1:-1;;;;;22821:23:0;;;;;;:18;:23;;;;;;;;;22750:18;:23;;;;;;;:95;;22821:23;22750:48;;22796:1;22750:48;:45;:48;:::i;22693:258::-;-1:-1:-1;;;;;22927:23:0;;;;;;:18;:23;;;;;;;;;22881:18;:23;;;;;;;:70;;;:45;:70;:::i;22024:240::-;22086:7;22138;22110:25;22118:16;;22110:3;:7;;:25;;;;:::i;:::-;:35;22106:131;;;-1:-1:-1;;;;;22213:23:0;;;;;;:18;:23;;;;;;;;;22167:18;:23;;;;;;;:70;;;:45;:70;:::i;25337:1550::-;25386:4;25403:17;25431;25451:22;25469:3;25451:17;:22::i;:::-;25431:42;;25500:1;25488:9;:13;25484:198;;;-1:-1:-1;;;;;25544:23:0;;;;;;:18;:23;;;;;;:56;;25590:9;25544:56;:45;:56;:::i;:::-;-1:-1:-1;;;;;25518:23:0;;;;;;:18;:23;;;;;:82;25628:42;:9;25660;25628:42;:31;:42;:::i;:::-;25615:55;;25484:198;25704:22;25722:3;25704:17;:22::i;:::-;25692:34;;25753:1;25741:9;:13;25737:198;;;-1:-1:-1;;;;;25797:23:0;;;;;;:18;:23;;;;;;:56;;25843:9;25797:56;:45;:56;:::i;:::-;-1:-1:-1;;;;;25771:23:0;;;;;;:18;:23;;;;;:82;25881:42;:9;25913;25881:42;:31;:42;:::i;:::-;25868:55;;25737:198;25957:20;25973:3;25957:15;:20::i;:::-;25945:32;;26004:1;25992:9;:13;25988:194;;;-1:-1:-1;;;;;26046:21:0;;;;;;:16;:21;;;;;;:54;;26090:9;26046:54;:43;:54;:::i;:::-;-1:-1:-1;;;;;26022:21:0;;;;;;:16;:21;;;;;:78;26128:42;:9;26160;26128:42;:31;:42;:::i;:::-;26115:55;;25988:194;26204:21;26221:3;26204:16;:21::i;:::-;26192:33;;26252:1;26240:9;:13;26236:196;;;-1:-1:-1;;;;;26295:22:0;;;;;;:17;:22;;;;;;:55;;26340:9;26295:55;:44;:55;:::i;:::-;-1:-1:-1;;;;;26270:22:0;;;;;;:17;:22;;;;;:80;26378:42;:9;26410;26378:42;:31;:42;:::i;:::-;26365:55;;26236:196;26454:21;26471:3;26454:16;:21::i;:::-;26442:33;;26502:1;26490:9;:13;26486:196;;;-1:-1:-1;;;;;26545:22:0;;;;;;:17;:22;;;;;;:55;;26590:9;26545:55;:44;:55;:::i;:::-;-1:-1:-1;;;;;26520:22:0;;;;;;:17;:22;;;;;:80;26628:42;:9;26660;26628:42;:31;:42;:::i;:::-;26615:55;;26486:196;26708:1;26696:9;:13;26692:166;;;26726:21;26732:3;26737:9;26726:5;:21::i;:::-;26767:23;;;;;;;;-1:-1:-1;;;;;26767:23:0;;;;;;;;;;;;;26810:36;;;;;;;;-1:-1:-1;;;;;26810:36:0;;;26827:1;;26810:36;;;;;;;;;-1:-1:-1;26875:4:0;;25337:1550;-1:-1:-1;;;25337:1550:0:o;4250:140::-;4311:4;4328:32;4338:10;4350:2;4354:5;4328:9;:32::i;11978:187::-;-1:-1:-1;;;;;12052:22:0;;;;12044:31;;;;;;12112:6;;12091:38;;-1:-1:-1;;;;;12091:38:0;;;;12112:6;;12091:38;;12112:6;;12091:38;12140:6;:17;;-1:-1:-1;;;;;;12140:17:0;-1:-1:-1;;;;;12140:17:0;;;;;;;;;;11978:187::o;7564:262::-;-1:-1:-1;;;;;7652:16:0;;;;7644:25;;;;;;-1:-1:-1;;;;;7700:15:0;;:9;:15;;;;;;;;;;;:26;;7720:5;7700:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;7682:15:0;;;:9;:15;;;;;;;;;;;:44;;;;7753:13;;;;;;;:24;;7771:5;7753:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;7737:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;7793:25;;;;;;;7737:13;;7793:25;;;;;;;;;;;;;7564:262;;;:::o;1570:303::-;1628:7;1723:5;;;1715:14;;;;;;1740:9;1756:1;1752;:5;;;;;;;;;1570:303;-1:-1:-1;;;;1570:303:0:o;1002:433::-;1060:7;1304:6;;1300:47;;;-1:-1:-1;1334:1:0;1327:8;;1300:47;1371:5;;;1375:1;1371;:5;1395;;;;;;;;:10;1387:19;;;;

Swarm Source

bzzr://87fc549d9c81ecaee41a74d46edc7bf0eaa2c9cf47b12b3a7bc78c281f1667e5

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.