ETH Price: $1,632.27 (+0.95%)
Gas: 0.36 Gwei
 

Overview

Max Total Supply

7,200 CTG

Holders

231

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 5 Decimals)

Filtered by Token Holder
HTX 3
Balance
21,000 CTG

Value
$0.00
0xfdb16996831753d5331ff813c29a93c76834a0ad
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:
CtgToken

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-03-20
*/

pragma solidity ^0.4.17;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @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 public owner;

    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    constructor() public {
        owner = msg.sender;
    }

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

    /**
    * @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 {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Basic {
    uint public totalSupplyNum;

    function totalSupply() public constant returns (uint);

    function balanceOf(address who) public constant returns (uint);

    function transfer(address to, uint value) public;

    event Transfer(address indexed from, address indexed to, uint value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public constant returns (uint);

    function transferFrom(address from, address to, uint value) public;

    function approve(address spender, uint value) public;

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

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is Ownable, ERC20Basic {
    using SafeMath for uint;

    mapping(address => uint) public balances;

    // additional variables for use if transaction fees ever became necessary
    uint public basisPointsRate = 0;
    uint public maximumFee = 0;

    /**
    * @dev Fix for the ERC20 short address attack.
    */
    modifier onlyPayloadSize(uint size) {
        require(!(msg.data.length < size + 4));
        _;
    }

    /**
    * @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, uint _value) public onlyPayloadSize(2 * 32) {
        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        uint sendAmount = _value.sub(fee);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(sendAmount);
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            emit Transfer(msg.sender, owner, fee);
        }
        emit Transfer(msg.sender, _to, sendAmount);
    }

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

}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based oncode by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is BasicToken, ERC20 {

    mapping(address => mapping(address => uint)) public allowed;

    uint public constant MAX_UINT = 2 ** 256 - 1;

    /**
    * @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 uint the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint _value) public onlyPayloadSize(3 * 32) {
        uint _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // if (_value > _allowance) throw;

        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        if (_allowance < MAX_UINT) {
            allowed[_from][msg.sender] = _allowance.sub(_value);
        }
        uint sendAmount = _value.sub(fee);
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(sendAmount);
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            emit Transfer(_from, owner, fee);
        }
        emit Transfer(_from, _to, sendAmount);
    }

    /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
    function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) {

        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require(!((_value != 0) && (allowed[msg.sender][_spender] != 0)));

        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
    }

    /**
    * @dev Function to check the amount of tokens than 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 uint specifying the amount of tokens still available for the spender.
    */
    function allowance(address _owner, address _spender) public constant returns (uint remaining) {
        return allowed[_owner][_spender];
    }

}

contract BlackList is Ownable, BasicToken {

    /////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////
    function getBlackListStatus(address _maker) external constant returns (bool) {
        return isBlackListed[_maker];
    }

    function getOwner() external constant returns (address) {
        return owner;
    }

    mapping(address => bool) public isBlackListed;

    function addBlackList(address _evilUser) public onlyOwner {
        isBlackListed[_evilUser] = true;
        emit AddedBlackList(_evilUser);
    }

    function removeBlackList(address _clearedUser) public onlyOwner {
        isBlackListed[_clearedUser] = false;
        emit RemovedBlackList(_clearedUser);
    }

    function destroyBlackFunds(address _blackListedUser) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint dirtyFunds = balanceOf(_blackListedUser);
        balances[_blackListedUser] = 0;
        totalSupplyNum -= dirtyFunds;
        emit DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }

    event DestroyedBlackFunds(address _blackListedUser, uint _balance);

    event AddedBlackList(address _user);

    event RemovedBlackList(address _user);

}

/// @dev Models a uint -> uint mapping where it is possible to iterate over all keys.
contract IterableMapping
{
    struct itmap
    {
        mapping(address => Account) data;
        KeyFlag[] keys;
        uint size;
    }

    struct Account {
        uint keyIndex;
        address parentAddress;
        bool active;
    }

    struct KeyFlag {address key; bool deleted;}

    function insert(itmap storage self, address key, address parentAddress, bool active) internal returns (bool replaced)
    {
        uint keyIndex = self.data[key].keyIndex;
        self.data[key].parentAddress = parentAddress;
        self.data[key].active = active;

        if (keyIndex > 0)
            return true;
        else
        {
            keyIndex = self.keys.length++;
            self.data[key].keyIndex = keyIndex + 1;
            self.keys[keyIndex].key = key;
            self.size++;
            return false;
        }
    }

    function remove(itmap storage self, address key) internal returns (bool success)
    {
        uint keyIndex = self.data[key].keyIndex;
        if (keyIndex == 0)
            return false;
        delete self.data[key];
        self.keys[keyIndex - 1].deleted = true;
        self.size --;
        return true;
    }

    function contains(itmap storage self, address key) internal view returns (bool)
    {
        return self.data[key].keyIndex > 0;
    }

    function index(itmap storage self, address key) internal view returns (uint) {
        return self.data[key].keyIndex;
    }

    function iterate_start(itmap storage self) internal view returns (uint keyIndex)
    {
        return iterate_next(self, uint(- 1));
    }

    function iterate_valid(itmap storage self, uint keyIndex) internal view returns (bool)
    {
        return keyIndex < self.keys.length;
    }

    function iterate_next(itmap storage self, uint keyIndex) internal view returns (uint r_keyIndex)
    {
        keyIndex++;
        while (keyIndex < self.keys.length && self.keys[keyIndex].deleted)
            keyIndex++;
        return keyIndex;
    }

    function iterate_get(itmap storage self, uint keyIndex) internal view returns (address accountAddress, address parentAddress, bool active)
    {
        accountAddress = self.keys[keyIndex].key;
        parentAddress = self.data[accountAddress].parentAddress;
        active = self.data[accountAddress].active;
    }
}


contract CtgToken is StandardToken, BlackList, IterableMapping {
    string public name;
    string public symbol;
    uint public decimals;

    address public pool = 0x9492D2F14d6d4D562a9DA4793b347f2AaB3B607A; //矿池地址
    address public teamAddress = 0x45D1c050C458de9b18104bdFb7ddEbA510f6D9f2; //研发团队地址
    address public peer = 0x87dfEFFa31950584d6211D6A7871c3AdA2157aE1; //节点分红
    address public foundation0 = 0x6eDFEaB0D0B6BD3d6848A3556B2753f53b182cCd;
    address public foundation1 = 0x5CD65995e25EC1D73EcDBc61D4cF32238304D1eA;
    address public foundation2 = 0x7D1E3dD3c5459BAdA93C442442D4072116e21034;
    address public foundation3 = 0x5001c2917B18B18853032C3e944Fe512532E0FD1;
    address public foundation4 = 0x9c131257919aE78B746222661076CF781a8FF7c6;
    address public candy = 0x279C18756568B8717e915FfB8eFe2784abCb89cf;
    address public contractAddress = 0x81E98EfF052837f7c1Dceb8947d08a2b908E8793;
    uint public recommendNum;

    itmap accounts;

    mapping(uint => uint) public shareRate;
    mapping(address => uint8) public levels;
    mapping(uint => uint) public levelProfit;

    struct StaticProfit {
        uint num;
        uint8 day;
        uint8 rate;
    }

    mapping(uint => StaticProfit) public profits;
    mapping(address => AddressInfo) public addressInfos;

    struct AddressInfo {
        address[] children;
        address _address;
        uint[] profitsIndex;
        bool activated;
    }

    struct ProfitLog {
        address _address;
        uint levelNum;
        uint num;
        uint8 day;
        uint8 rate;
        uint8 getDay;
        uint updatedAt;
    }

    mapping(uint => ProfitLog) public profitLogs;
    uint logIndex = 0;

    constructor(string _name, string _symbol, uint _decimals) public {
        totalSupplyNum = formatDecimals(720000000);
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        balances[pool] = formatDecimals(540000000);
        balances[teamAddress] = formatDecimals(64800000);
        balances[peer] = formatDecimals(43200000);
        balances[foundation0] = formatDecimals(10080000);
        balances[foundation1] = formatDecimals(10080000);
        balances[foundation2] = formatDecimals(10080000);
        balances[foundation3] = formatDecimals(10080000);
        balances[foundation4] = formatDecimals(10080000);
        balances[candy] = formatDecimals(21600000);

        //推广收益比例
        shareRate[1] = 7;
        shareRate[2] = 5;
        shareRate[3] = 3;
        shareRate[4] = 2;
        shareRate[5] = 1;
        shareRate[6] = 1;
        shareRate[7] = 1;
        shareRate[8] = 1;
        shareRate[9] = 1;
        shareRate[10] = 1;

        //等级奖励
        levelProfit[1] = formatDecimals(1000);
        levelProfit[2] = formatDecimals(3000);
        levelProfit[3] = formatDecimals(10000);
        levelProfit[4] = formatDecimals(50000);
        levelProfit[5] = formatDecimals(100000);

        //合约收益配置
        profits[formatDecimals(100)] = StaticProfit(formatDecimals(100), 30, 10);
        profits[formatDecimals(1000)] = StaticProfit(formatDecimals(1000), 30, 15);
        profits[formatDecimals(5000)] = StaticProfit(formatDecimals(5000), 30, 20);
        profits[formatDecimals(10000)] = StaticProfit(formatDecimals(10000), 30, 25);
        profits[formatDecimals(30000)] = StaticProfit(formatDecimals(30000), 30, 30);

        recommendNum = formatDecimals(23).div(10);
    }

    function setLevelProfit(uint level, uint num) public onlyOwner {
        require(levelProfit[level] > 0, "The level config doesn't exist!");
        levelProfit[level] = formatDecimals(num);
    }

    function setRecommendNum(uint num) public onlyOwner {
        require(recommendNum != num, "The value is equal old value!");
        recommendNum = num;
    }


    function setShareRateConfig(uint level, uint rate) public onlyOwner {
        require(shareRate[level] > 0, "This level does not exist");

        uint oldRate = shareRate[level];
        shareRate[level] = rate;

        emit SetShareRateConfig(level, oldRate, rate);
    }

    function getProfitLevelNum(uint num) internal constant returns(uint) {
        if (num < formatDecimals(100)) {
            return 0;
        }
        if (num >=formatDecimals(100) && num < formatDecimals(1000)) {
            return formatDecimals(100);
        }
        if (num >=formatDecimals(1000) && num < formatDecimals(5000)) {
            return formatDecimals(1000);
        }
        if (num >=formatDecimals(5000) && num < formatDecimals(10000)) {
            return formatDecimals(5000);
        }
        if (num >=formatDecimals(10000) && num < formatDecimals(30000)) {
            return formatDecimals(10000);
        }
        if (num >=formatDecimals(30000)) {
            return formatDecimals(30000);
        }
    }

    function getAddressProfitLevel(address _address) public constant returns (uint) {
        uint maxLevel = 0;
        uint[] memory indexes = addressInfos[_address].profitsIndex;
        for (uint i=0; i<indexes.length; i++) {
            uint k = indexes[i];
            if (profitLogs[k].day > 0 && (profitLogs[k].day > profitLogs[k].getDay) && (profitLogs[k].levelNum > maxLevel)) {
                maxLevel = profitLogs[k].levelNum;
            }
        }
        return maxLevel;
    }

    function getAddressProfitNum(address _address) public constant returns (uint) {
        uint num = 0;
        uint[] memory indexes = addressInfos[_address].profitsIndex;
        for (uint i=0; i<indexes.length; i++) {
            uint k = indexes[i];
            if (profitLogs[k].day > 0 && (profitLogs[k].day > profitLogs[k].getDay)) {
                num += profitLogs[k].num;
            }
        }

        return num;
    }

    function getAddressActiveChildrenCount(address _address) public constant returns (uint) {
        uint num  = 0;
        for(uint i=0; i<addressInfos[_address].children.length; i++) {
            address child = addressInfos[_address].children[i];
            AddressInfo memory childInfo = addressInfos[child];
            if (childInfo.activated) {
                num++;
            }
        }

        return num;
    }


    function setProfitConfig(uint256 num, uint8 day, uint8 rate) public onlyOwner {
        require(profits[formatDecimals(num)].num>0, "This profit config not exist");
        profits[formatDecimals(num)] = StaticProfit(formatDecimals(num), day, rate);

        emit SetProfitConfig(num, day, rate);
    }

    function formatDecimals(uint256 _value) internal view returns (uint256) {
        return _value * 10 ** decimals;
    }

    function parent(address _address) public view returns (address) {
        return accounts.data[_address].parentAddress;
    }

    function checkIsCycle(address _child, address _parent) internal view returns (bool) {
        address t = _parent;
        while (t != address(0)) {
            if (t == _child) {
                return true;
            }
            t = parent(t);
        }
        return false;
    }

    function iterate_start() public view returns (uint keyIndex) {
        return super.iterate_start(accounts);
    }

    function iterate_next(uint keyIndex) public view returns (uint r_keyIndex)
    {
        return super.iterate_next(accounts, keyIndex);
    }

    function iterate_valid(uint keyIndex) public view returns (bool) {
        return super.iterate_valid(accounts, keyIndex);
    }

    function iterate_get(uint keyIndex) public view returns (address accountAddress, address parentAddress, bool active) {
        (accountAddress, parentAddress, active) = super.iterate_get(accounts, keyIndex);
    }

    function sendBuyShare(address _address, uint _value) internal  {
        address p = parent(_address);
        uint level = 1;

        while (p != address(0) && level <= 10) {
            uint activeChildrenNum = getAddressActiveChildrenCount(p);
            if (activeChildrenNum < level) {
                p = parent(p);
                level = level + 1;
                continue;
            }

            AddressInfo storage info = addressInfos[p];
            if (!info.activated) {
                p = parent(p);
                level = level + 1;
                continue;
            }

            uint profitLevel = getAddressProfitLevel(p);


            uint addValue = _value.mul(shareRate[level]).div(100);
            if (_value > profitLevel) {
                addValue = profitLevel.mul(shareRate[level]).div(100);
            }


            transferFromPool(p, addValue);
            emit BuyShare(msg.sender, p, addValue);
            p = parent(p);
            level = level + 1;
        }
    }

    function releaseProfit(uint index) public onlyOwner {
        ProfitLog memory log = profitLogs[index];
        if (log.day == 0 || log.day == log.getDay) {
            return;
        }
        uint addValue = log.num.mul(uint(log.rate).add(100)).div(100).div(uint(log.day));

        uint diffDay = 1;
        if (log.updatedAt > 0) {
            diffDay = now.sub(log.updatedAt).div(24*3600);
        }
        if (diffDay > 0) {
            addValue = addValue.mul(diffDay);
            transferFrom(pool, log._address, addValue);
            profitLogs[index].getDay = log.getDay + uint8(diffDay);
            profitLogs[index].updatedAt = now;

            emit ReleaseProfit(log._address, addValue, log.getDay+1);
        }

    }

    function releaseAllProfit() public onlyOwner {
        for (uint i = 0; i<logIndex; i++) {
            releaseProfit(i);
        }
    }


    function setLevel(address _address, uint8 level, bool sendProfit) public onlyOwner {
        levels[_address] = level;

        emit SetLevel(_address, level);
        if (sendProfit) {
            uint num = levelProfit[uint(level)];
            if (num > 0) {
                transferFromPool(_address, num);
                emit SendLevelProfit(_address, level, num);
            }
        }
    }

    function transfer(address _to, uint _value) public {
        address parentAddress = parent(msg.sender);
        if (_value == recommendNum && parentAddress == address(0) && !checkIsCycle(msg.sender, _to)) {
            IterableMapping.insert(accounts, msg.sender, _to, addressInfos[msg.sender].activated);
            AddressInfo storage info = addressInfos[_to];
            info.children.push(msg.sender);
            super.transfer(_to, _value);
            emit SetParent(msg.sender, _to);
        } else if (_to == contractAddress) {
            super.transfer(_to, _value);
            // Static income
            uint profitKey = getProfitLevelNum(_value);
            StaticProfit storage profit = profits[profitKey];
            if (profit.num > 0) {
                profitLogs[logIndex] = ProfitLog({_address:msg.sender, levelNum:profit.num, num : _value, day : profit.day, rate : profit.rate, getDay : 0, updatedAt: 0});
            }
            //activate user
            addressInfos[msg.sender].profitsIndex.push(logIndex);
            logIndex++;
            if (profitKey >= 1000) {
                addressInfos[msg.sender].activated = true;
                IterableMapping.insert(accounts, msg.sender, parentAddress, true);
            }
            //Dynamic  income
            if (profitKey > 0 && addressInfos[msg.sender].activated) {
                sendBuyShare(msg.sender, profitKey);
            }

        } else {
            super.transfer(_to, _value);
        }
    }

    function transferFromPool(address _to, uint _value) internal {
        balances[pool] = balances[pool].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(pool, _to, _value);
    }



    function transferFrom(address _from, address _to, uint _value) public onlyOwner  {
        require(!isBlackListed[_from]);

        //        var _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // if (_value > _allowance) throw;

        uint fee = (_value.mul(basisPointsRate)).div(10000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        //        if (_allowance < MAX_UINT) {
        //            allowed[_from][msg.sender] = _allowance.sub(_value);
        //        }
        uint sendAmount = _value.sub(fee);
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(sendAmount);
        if (fee > 0) {
            balances[owner] = balances[owner].add(fee);
            emit Transfer(_from, owner, fee);
        }
        emit Transfer(_from, _to, sendAmount);
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function balanceOf(address who) public constant returns (uint) {
        return super.balanceOf(who);
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) {
        return super.approve(_spender, _value);
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function allowance(address _owner, address _spender) public constant returns (uint remaining) {
        return super.allowance(_owner, _spender);
    }

    // deprecate current contract if favour of a new one
    function totalSupply() public constant returns (uint) {
        return totalSupplyNum;
    }


    event SetShareRateConfig(uint level, uint oldRate, uint newRate);
    event SetProfitConfig(uint num, uint8 day, uint8 rate);
    event SetParent(address _childAddress, address _parentAddress);
    event SetLevel(address _address, uint8 level);
    event SendLevelProfit(address _address, uint8 level,uint num);
    event ReleaseProfit(address _address, uint num, uint8 day);
    event BuyShare(address from, address to, uint num);

}

Contract Security Audit

Contract ABI

API
[{"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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"keyIndex","type":"uint256"}],"name":"iterate_valid","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"peer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundation3","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pool","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"level","type":"uint8"},{"name":"sendProfit","type":"bool"}],"name":"setLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAddressActiveChildrenCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"num","type":"uint256"}],"name":"setRecommendNum","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"profits","outputs":[{"name":"num","type":"uint256"},{"name":"day","type":"uint8"},{"name":"rate","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundation2","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"iterate_start","outputs":[{"name":"keyIndex","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"foundation1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"levels","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAddressProfitNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"keyIndex","type":"uint256"}],"name":"iterate_get","outputs":[{"name":"accountAddress","type":"address"},{"name":"parentAddress","type":"address"},{"name":"active","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"num","type":"uint256"},{"name":"day","type":"uint8"},{"name":"rate","type":"uint8"}],"name":"setProfitConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseAllProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"recommendNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"releaseProfit","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":"","type":"uint256"}],"name":"shareRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"levelProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupplyNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundation0","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"level","type":"uint256"},{"name":"num","type":"uint256"}],"name":"setLevelProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"keyIndex","type":"uint256"}],"name":"iterate_next","outputs":[{"name":"r_keyIndex","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressInfos","outputs":[{"name":"_address","type":"address"},{"name":"activated","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"level","type":"uint256"},{"name":"rate","type":"uint256"}],"name":"setShareRateConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"profitLogs","outputs":[{"name":"_address","type":"address"},{"name":"levelNum","type":"uint256"},{"name":"num","type":"uint256"},{"name":"day","type":"uint8"},{"name":"rate","type":"uint8"},{"name":"getDay","type":"uint8"},{"name":"updatedAt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"parent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"foundation4","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"candy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAddressProfitLevel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"level","type":"uint256"},{"indexed":false,"name":"oldRate","type":"uint256"},{"indexed":false,"name":"newRate","type":"uint256"}],"name":"SetShareRateConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"num","type":"uint256"},{"indexed":false,"name":"day","type":"uint8"},{"indexed":false,"name":"rate","type":"uint8"}],"name":"SetProfitConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_childAddress","type":"address"},{"indexed":false,"name":"_parentAddress","type":"address"}],"name":"SetParent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"level","type":"uint8"}],"name":"SetLevel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"level","type":"uint8"},{"indexed":false,"name":"num","type":"uint256"}],"name":"SendLevelProfit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"num","type":"uint256"},{"indexed":false,"name":"day","type":"uint8"}],"name":"ReleaseProfit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"num","type":"uint256"}],"name":"BuyShare","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"RemovedBlackList","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

6080604052600060038190556004819055600a8054600160a060020a0319908116739492d2f14d6d4d562a9da4793b347f2aab3b607a17909155600b805482167345d1c050c458de9b18104bdfb7ddeba510f6d9f2179055600c805482167387dfeffa31950584d6211d6a7871c3ada2157ae1179055600d80548216736edfeab0d0b6bd3d6848a3556b2753f53b182ccd179055600e80548216735cd65995e25ec1d73ecdbc61d4cf32238304d1ea179055600f80548216737d1e3dd3c5459bada93c442442d4072116e21034179055601080548216735001c2917b18b18853032c3e944fe512532e0fd1179055601180548216739c131257919ae78b746222661076cf781a8ff7c617905560128054821673279c18756568b8717e915ffb8efe2784abcb89cf179055601380549091167381e98eff052837f7c1dceb8947d08a2b908e8793179055601e553480156200015857600080fd5b50604051620031ba380380620031ba833981016040908152815160208301519183015160008054600160a060020a03191633179055908301929190910190620001ae632aea540064010000000062000988810204565b6001558251620001c6906007906020860190620009aa565b508151620001dc906008906020850190620009aa565b506009819055620001fa63202fbf0064010000000062000988810204565b600a54600160a060020a03166000908152600260205260409020556200022d6303dcc50064010000000062000988810204565b600b54600160a060020a0316600090815260026020526040902055620002606302932e0064010000000062000988810204565b600c54600160a060020a0316600090815260026020526040902055620002926299cf0064010000000062000988810204565b600d54600160a060020a0316600090815260026020526040902055620002c46299cf0064010000000062000988810204565b600e54600160a060020a0316600090815260026020526040902055620002f66299cf0064010000000062000988810204565b600f54600160a060020a0316600090815260026020526040902055620003286299cf0064010000000062000988810204565b601054600160a060020a03166000908152600260205260409020556200035a6299cf0064010000000062000988810204565b601154600160a060020a03166000908152600260205260409020556200038d630149970064010000000062000988810204565b601254600160a060020a03166000908152600260208181526040832093909355601890925260077ff3794665d3af9b6fb6f858b70185898134f96768ef31c325d52e04f0ac195a4d5560057f2bacf7cca723d030d12aee795132f2c5f2d14ad131f16f3f27eeba3e79d18b8c5560037f7a6340a7048c03c55288da75abed74d2ce9194201bafb03be53c0a7cca591495557f5b650d93b25a5c652bc6f9215f522b521daf6d36977dcec1343c2a8310b869d69190915560017f2288853b49db4f36075bf4a8cfdae4e5e3b39b7b03937d0a9148b051a6f64c5c8190557f33d69b83f8d9644c8360a50d7275bf12a50019a4cd4e17926d0b315da648c58d8190557f0aaa0ccf1df0cbc345d3ab7229415a03568bb157ac6e99a99e7acfb410c400f58190557fd216758a0109d96b1547bf0494303db8f870cdf26fb578fa6df610e0d82abc5a8190557f0f80ca4e91d4e32d5a64ddd95a11ac123155f01483fcd9878a3704cd57c880b5819055600a9091527f97bd3d4217cc234631fd1bc3bbc8dcdba6dbc663edbe04a3d8e3d1afc6fbf20755620005366103e864010000000062000988810204565b6001600052601a6020527ff88cd8d612926ebb404e40725c01084b6e9b3ce0344cde068570342cbd448c615562000578610bb864010000000062000988810204565b6002600052601a6020527f4c287b3e2c2cb129ae3ba596d613d760b15affdac7242e12903c37a886ea1c4f55620005ba61271064010000000062000988810204565b6003600052601a6020527f4ac83fca211703e3ddb90093cd219714e5e3715bf0b4fd15b0441390534a24e255620005fc61c35064010000000062000988810204565b6004600052601a6020527f06b28f262ad931a15c9e47271fc159a891b2bcb0da2659cac5bbfed4886cf26e556200063f620186a064010000000062000988810204565b6005600052601a6020527f82f07edc09f3a46c1925d02252613a7fcc7be7d03b538b0c268df85f2f13a7ab556040805160608101909152806200068c606464010000000062000988810204565b8152601e6020820152600a604090910152601b6000620006b6606464010000000062000988810204565b815260208082019290925260409081016000208351815591830151600190920180549382015160ff1990941660ff9384161761ff0019166101009390941692909202929092179055805160608101909152806200071e6103e864010000000062000988810204565b8152601e6020820152600f604090910152601b6000620007496103e864010000000062000988810204565b815260208082019290925260409081016000208351815591830151600190920180549382015160ff1990941660ff9384161761ff001916610100939094169290920292909217905580516060810190915280620007b161138864010000000062000988810204565b8152601e60208201526014604090910152601b6000620007dc61138864010000000062000988810204565b815260208082019290925260409081016000208351815591830151600190920180549382015160ff1990941660ff9384161761ff0019166101009390941692909202929092179055805160608101909152806200084461271064010000000062000988810204565b8152601e60208201526019604090910152601b60006200086f61271064010000000062000988810204565b815260208082019290925260409081016000208351815591830151600190920180549382015160ff1990941660ff9384161761ff001916610100939094169290920292909217905580516060810190915280620008d761753064010000000062000988810204565b8152601e60208201819052604090910152601b60006200090261753064010000000062000988810204565b81526020808201929092526040908101600020835181559183015160019092018054939091015160ff9081166101000261ff00199190931660ff1990941693909317929092161790556200097b600a62000966601764010000000062000988810204565b9064010000000062001fb76200099282021704565b6014555062000a4f915050565b600954600a0a0290565b6000808284811515620009a157fe5b04949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009ed57805160ff191683800117855562000a1d565b8280016001018555821562000a1d579182015b8281111562000a1d57825182559160200191906001019062000a00565b5062000a2b92915062000a2f565b5090565b62000a4c91905b8082111562000a2b576000815560010162000a36565b90565b61275b8062000a5f6000396000f3006080604052600436106102925763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610297578063095ea7b3146103215780630adcaddc146103475780630ecb93c01461037357806311cda41514610394578063139bbbaf146103c557806316f0115b146103da57806317f67334146103ef57806318160ddd1461041b5780631b9db02d146104425780631c75f08514610463578063225096251461047857806323b872dd1461049057806327e235e3146104ba5780632e5f6d4c146104db5780632fe4ea5614610515578063313ce5671461052a5780633209c6de1461053f5780633539071414610554578063435ea6311461056957806347082db31461057e5780634beaa17f146105b557806359bf1abe146105d65780635c658165146105f75780635e331e621461061e5780636f5acde11461066257806370a08231146106865780637b048b06146106a7578063893d20e8146106bc5780638c351558146106d15780638d6aad28146106e65780638da5cb5b146106fe5780638e3394f71461071357806395d89b411461072b5780639d93d25714610740578063a13c3ecb14610758578063a9059cbb1461076d578063af8dc96f14610791578063b88af9cb146107a6578063ca34a0e3146107c1578063ca7a75d1146107d9578063d143121c1461081d578063dd62ed3e14610838578063dd644f721461085f578063dfd3d58c14610874578063e47d6060146108d4578063e4997dc5146108f5578063e5b5019a14610916578063f1f9d8c91461092b578063f2fde38b1461094c578063f3a136751461096d578063f3bdc22814610982578063f616ce3c146109a3578063f6b4dfb4146109b8578063fca11cec146109cd575b600080fd5b3480156102a357600080fd5b506102ac6109ee565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e65781810151838201526020016102ce565b50505050905090810190601f1680156103135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032d57600080fd5b50610345600160a060020a0360043516602435610a7c565b005b34801561035357600080fd5b5061035f600435610a9b565b604080519115158252519081900360200190f35b34801561037f57600080fd5b50610345600160a060020a0360043516610ab0565b3480156103a057600080fd5b506103a9610b22565b60408051600160a060020a039092168252519081900360200190f35b3480156103d157600080fd5b506103a9610b31565b3480156103e657600080fd5b506103a9610b40565b3480156103fb57600080fd5b50610345600160a060020a036004351660ff602435166044351515610b4f565b34801561042757600080fd5b50610430610c46565b60408051918252519081900360200190f35b34801561044e57600080fd5b50610430600160a060020a0360043516610c4d565b34801561046f57600080fd5b506103a9610dd2565b34801561048457600080fd5b50610345600435610de1565b34801561049c57600080fd5b50610345600160a060020a0360043581169060243516604435610e57565b3480156104c657600080fd5b50610430600160a060020a0360043516611016565b3480156104e757600080fd5b506104f3600435611028565b6040805193845260ff9283166020850152911682820152519081900360600190f35b34801561052157600080fd5b506103a961104d565b34801561053657600080fd5b5061043061105c565b34801561054b57600080fd5b50610430611062565b34801561056057600080fd5b50610430611073565b34801561057557600080fd5b506103a9611079565b34801561058a57600080fd5b5061059f600160a060020a0360043516611088565b6040805160ff9092168252519081900360200190f35b3480156105c157600080fd5b50610430600160a060020a036004351661109d565b3480156105e257600080fd5b5061035f600160a060020a036004351661119f565b34801561060357600080fd5b50610430600160a060020a03600435811690602435166111bd565b34801561062a57600080fd5b506106366004356111da565b60408051600160a060020a03948516815292909316602083015215158183015290519081900360600190f35b34801561066e57600080fd5b5061034560043560ff602435811690604435166111f7565b34801561069257600080fd5b50610430600160a060020a036004351661134a565b3480156106b357600080fd5b50610345611355565b3480156106c857600080fd5b506103a961138f565b3480156106dd57600080fd5b5061043061139e565b3480156106f257600080fd5b506103456004356113a4565b34801561070a57600080fd5b506103a9611599565b34801561071f57600080fd5b506104306004356115a8565b34801561073757600080fd5b506102ac6115ba565b34801561074c57600080fd5b50610430600435611615565b34801561076457600080fd5b50610430611627565b34801561077957600080fd5b50610345600160a060020a036004351660243561162d565b34801561079d57600080fd5b506103a9611907565b3480156107b257600080fd5b50610345600435602435611916565b3480156107cd57600080fd5b506104306004356119b0565b3480156107e557600080fd5b506107fa600160a060020a03600435166119bd565b60408051600160a060020a03909316835290151560208301528051918290030190f35b34801561082957600080fd5b506103456004356024356119e8565b34801561084457600080fd5b50610430600160a060020a0360043581169060243516611abf565b34801561086b57600080fd5b50610430611ad2565b34801561088057600080fd5b5061088c600435611ad8565b60408051600160a060020a03909816885260208801969096528686019490945260ff928316606087015290821660808601521660a084015260c0830152519081900360e00190f35b3480156108e057600080fd5b5061035f600160a060020a0360043516611b28565b34801561090157600080fd5b50610345600160a060020a0360043516611b3d565b34801561092257600080fd5b50610430611bac565b34801561093757600080fd5b506103a9600160a060020a0360043516611bb2565b34801561095857600080fd5b50610345600160a060020a0360043516611bd3565b34801561097957600080fd5b506103a9611c26565b34801561098e57600080fd5b50610345600160a060020a0360043516611c35565b3480156109af57600080fd5b506103a9611ce1565b3480156109c457600080fd5b506103a9611cf0565b3480156109d957600080fd5b50610430600160a060020a0360043516611cff565b6007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a745780601f10610a4957610100808354040283529160200191610a74565b820191906000526020600020905b815481529060010190602001808311610a5757829003601f168201915b505050505081565b60406044361015610a8c57600080fd5b610a968383611e1a565b505050565b6000610aa8601583611ec8565b90505b919050565b600054600160a060020a03163314610ac757600080fd5b600160a060020a038116600081815260066020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a150565b600c54600160a060020a031681565b601054600160a060020a031681565b600a54600160a060020a031681565b60008054600160a060020a03163314610b6757600080fd5b600160a060020a038416600081815260196020908152604091829020805460ff191660ff881690811790915582519384529083015280517fd7b328080d26d556e11cdd69192d4479e3800b4be84542d2864dc85bb7c098999281900390910190a18115610c40575060ff82166000908152601a602052604081205490811115610c4057610bf48482611ed3565b60408051600160a060020a038616815260ff8516602082015280820183905290517f9ad60b29a4e662f2106ac62588d27df663a2a145463b937b3ff4258d7dc486319181900360600190a15b50505050565b6001545b90565b600080600080610c5b612657565b60009350600092505b600160a060020a0386166000908152601c6020526040902054831015610dc857600160a060020a0386166000908152601c60205260409020805484908110610ca857fe5b6000918252602080832090910154600160a060020a0316808352601c82526040928390208351815460a094810282018501909552608081018581529296509390928492918491840182828015610d2757602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d09575b50505091835250506001820154600160a060020a03166020808301919091526002830180546040805182850281018501825282815294019392830182828015610d8f57602002820191906000526020600020905b815481526020019060010190808311610d7b575b50505091835250506003919091015460ff161515602090910152606081015190915015610dbd576001909301925b600190920191610c64565b5091949350505050565b600b54600160a060020a031681565b600054600160a060020a03163314610df857600080fd5b601454811415610e52576040805160e560020a62461bcd02815260206004820152601d60248201527f5468652076616c756520697320657175616c206f6c642076616c756521000000604482015290519081900360640190fd5b601455565b600080548190600160a060020a03163314610e7157600080fd5b600160a060020a03851660009081526006602052604090205460ff1615610e9757600080fd5b610ebe612710610eb260035486611f8190919063ffffffff16565b9063ffffffff611fb716565b9150600454821115610ed05760045491505b610ee0838363ffffffff611fce16565b600160a060020a038616600090815260026020526040902054909150610f0c908463ffffffff611fce16565b600160a060020a038087166000908152600260205260408082209390935590861681522054610f41908263ffffffff611fe016565b600160a060020a038516600090815260026020526040812091909155821115610fd65760008054600160a060020a0316815260026020526040902054610f8d908363ffffffff611fe016565b60008054600160a060020a039081168252600260209081526040808420949094559154835186815293519082169391891692600080516020612710833981519152928290030190a35b83600160a060020a031685600160a060020a0316600080516020612710833981519152836040518082815260200191505060405180910390a35050505050565b60026020526000908152604090205481565b601b602052600090815260409020805460019091015460ff8082169161010090041683565b600f54600160a060020a031681565b60095481565b600061106e6015611fef565b905090565b60045481565b600e54600160a060020a031681565b60196020526000908152604090205460ff1681565b600160a060020a0381166000908152601c602090815260408083206002018054825181850281018501909352808352849360609385938493919290919083018282801561110957602002820191906000526020600020905b8154815260200190600101908083116110f5575b50505050509250600091505b8251821015610dc857828281518110151561112c57fe5b60209081029091018101516000818152601d909252604082206003015490925060ff1611801561117757506000818152601d602052604090206003015460ff62010000820481169116115b15611194576000818152601d602052604090206002015493909301925b600190910190611115565b600160a060020a031660009081526006602052604090205460ff1690565b600560209081526000928352604080842090915290825290205481565b60008060006111ea601585611ffd565b9196909550909350915050565b600054600160a060020a0316331461120e57600080fd5b6000601b600061121d86612066565b815260208101919091526040016000205411611283576040805160e560020a62461bcd02815260206004820152601c60248201527f546869732070726f66697420636f6e666967206e6f7420657869737400000000604482015290519081900360640190fd5b60606040519081016040528061129885612066565b81526020018360ff1681526020018260ff16815250601b60006112ba86612066565b815260208082019290925260409081016000208351815583830151600190910180549483015160ff1990951660ff9283161761ff00191661010095831695909502949094179093558051868152858416928101929092529183168183015290517fb595e48eb6391867d8a60b9cb45f0173287016d447c323dc87fec8a5bfec5283916060908290030190a1505050565b6000610aa882612070565b60008054600160a060020a0316331461136d57600080fd5b5060005b601e5481101561138c57611384816113a4565b600101611371565b50565b600054600160a060020a031690565b60145481565b6113ac61267e565b600080548190600160a060020a031633146113c657600080fd5b6000848152601d6020908152604091829020825160e0810184528154600160a060020a03168152600182015492810192909252600281015492820192909252600382015460ff80821660608401819052610100830482166080850152620100009092041660a083015260049092015460c08201529350158061145557508260a0015160ff16836060015160ff16145b1561145f57610c40565b61149e836060015160ff16610eb26064610eb261148d6064896080015160ff16611fe090919063ffffffff16565b60408901519063ffffffff611f8116565b91506001905060008360c0015111156114d2576114cf62015180610eb28560c0015142611fce90919063ffffffff16565b90505b6000811115610c40576114eb828263ffffffff611f8116565b600a54845191935061150991600160a060020a039091169084610e57565b60a0830180516000868152601d602090815260409182902060038101805460ff9588018616620100000262ff00001990911617905542600490910155865193518251600160a060020a03909516855290840186905260010190911682820152517fc99b2cf0d0c34edcf463d0313c28ec0521816fe652b31a9122c66f326de9766d9181900360600190a150505050565b600054600160a060020a031681565b60186020526000908152604090205481565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a745780601f10610a4957610100808354040283529160200191610a74565b601a6020526000908152604090205481565b60015481565b60008060008061163c33611bb2565b9350601454851480156116565750600160a060020a038416155b80156116695750611667338761208b565b155b1561172e57336000818152601c602052604090206003015461169291601591899060ff166120db565b50600160a060020a0386166000908152601c60209081526040822080546001810182558184529190922001805473ffffffffffffffffffffffffffffffffffffffff19163317905592506116e686866121f7565b60408051338152600160a060020a038816602082015281517fc2665b421edac973edb5d78b1e4dc19463d432cb4b48e6e45df4d21b914b26a2929181900390910190a16118ff565b601354600160a060020a03878116911614156118f55761174e86866121f7565b61175785612364565b6000818152601b60205260408120805492945092501015611851576040805160e0810182523381528254602080830191825282840189815260018087015460ff8082166060880190815261010092839004821660808901908152600060a08a0181815260c08b01828152601e548352601d9099529a90209851895473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039091161789559651938801939093559251600287015590516003860180549551975160ff199096169184169190911761ff0019169683169091029590951762ff000019166201000093909116929092029190911790925590516004909101555b336000908152601c602090815260408220601e805460029092018054600181810183559186529390942090920155805490910190556103e882106118bf57336000818152601c60205260409020600301805460ff191660019081179091556118bd9160159187906120db565b505b6000821180156118e15750336000908152601c602052604090206003015460ff165b156118f0576118f0338361246c565b6118ff565b6118ff86866121f7565b505050505050565b600d54600160a060020a031681565b600054600160a060020a0316331461192d57600080fd5b6000828152601a602052604081205411611991576040805160e560020a62461bcd02815260206004820152601f60248201527f546865206c6576656c20636f6e66696720646f65736e27742065786973742100604482015290519081900360640190fd5b61199a81612066565b6000928352601a60205260409092209190915550565b6000610aa86015836125ca565b601c6020526000908152604090206001810154600390910154600160a060020a039091169060ff1682565b60008054600160a060020a03163314611a0057600080fd5b60008381526018602052604081205411611a64576040805160e560020a62461bcd02815260206004820152601960248201527f54686973206c6576656c20646f6573206e6f7420657869737400000000000000604482015290519081900360640190fd5b50600082815260186020908152604091829020805490849055825185815291820181905281830184905291517f27e70bce85cce56a71888653da8a27fa6295263d4a7be9806c85d08b6aa7e20f9181900360600190a1505050565b6000611acb838361262c565b9392505050565b60035481565b601d6020526000908152604090208054600182015460028301546003840154600490940154600160a060020a03909316939192909160ff8082169261010083048216926201000090049091169087565b60066020526000908152604090205460ff1681565b600054600160a060020a03163314611b5457600080fd5b600160a060020a038116600081815260066020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a150565b60001981565b600160a060020a039081166000908152601560205260409020600101541690565b600054600160a060020a03163314611bea57600080fd5b600160a060020a0381161561138c5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b601154600160a060020a031681565b60008054600160a060020a03163314611c4d57600080fd5b600160a060020a03821660009081526006602052604090205460ff161515611c7457600080fd5b611c7d8261134a565b600160a060020a0383166000818152600260209081526040808320929092556001805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15050565b601254600160a060020a031681565b601354600160a060020a031681565b600160a060020a0381166000908152601c6020908152604080832060020180548251818502810185019093528083528493606093859384939192909190830182828015611d6b57602002820191906000526020600020905b815481526020019060010190808311611d57575b50505050509250600091505b8251821015610dc8578282815181101515611d8e57fe5b60209081029091018101516000818152601d909252604082206003015490925060ff16118015611dd957506000818152601d602052604090206003015460ff62010000820481169116115b8015611df557506000818152601d602052604090206001015484105b15611e0f576000818152601d602052604090206001015493505b600190910190611d77565b60406044361015611e2a57600080fd5b8115801590611e5b5750336000908152600560209081526040808320600160a060020a038716845290915290205415155b15611e6557600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b600191909101541190565b600a54600160a060020a0316600090815260026020526040902054611efe908263ffffffff611fce16565b600a54600160a060020a039081166000908152600260205260408082209390935590841681522054611f36908263ffffffff611fe016565b600160a060020a0380841660008181526002602090815260409182902094909455600a5481518681529151929493169260008051602061271083398151915292918290030190a35050565b600080831515611f945760009150611fb0565b50828202828482811515611fa457fe5b0414611fac57fe5b8091505b5092915050565b6000808284811515611fc557fe5b04949350505050565b600082821115611fda57fe5b50900390565b600082820183811015611fac57fe5b6000610aa8826000196125ca565b6000806000846001018481548110151561201357fe5b6000918252602080832090910154600160a060020a039081168084529790915260409091206001015495969086169560ff7401000000000000000000000000000000000000000090910416945092505050565b600954600a0a0290565b600160a060020a031660009081526002602052604090205490565b6000815b600160a060020a038116156120d15783600160a060020a031681600160a060020a031614156120c15760019150611fb0565b6120ca81611bb2565b905061208f565b5060009392505050565b600160a060020a03838116600090815260208690526040812080546001909101805473ffffffffffffffffffffffffffffffffffffffff19169386169390931774ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008515150217909255908181111561216357600191506121ee565b6001808701805491612177919083016126ba565b600160a060020a03861660009081526020889052604090206001808301909155870180549192508691839081106121aa57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039390931692909217909155600287018054600101905591505b50949350505050565b6000806040604436101561220a57600080fd5b612225612710610eb260035487611f8190919063ffffffff16565b92506004548311156122375760045492505b612247848463ffffffff611fce16565b3360009081526002602052604090205490925061226a908563ffffffff611fce16565b3360009081526002602052604080822092909255600160a060020a0387168152205461229c908363ffffffff611fe016565b600160a060020a03861660009081526002602052604081209190915583111561232f5760008054600160a060020a03168152600260205260409020546122e8908463ffffffff611fe016565b60008054600160a060020a03908116825260026020908152604080842094909455915483518781529351911692339260008051602061271083398151915292918290030190a35b604080518381529051600160a060020a0387169133916000805160206127108339815191529181900360200190a35050505050565b60006123706064612066565b82101561237f57506000610aab565b6123896064612066565b82101580156123a1575061239e6103e8612066565b82105b156123b7576123b06064612066565b9050610aab565b6123c26103e8612066565b82101580156123da57506123d7611388612066565b82105b156123ea576123b06103e8612066565b6123f5611388612066565b821015801561240d575061240a612710612066565b82105b1561241d576123b0611388612066565b612428612710612066565b8210158015612440575061243d617530612066565b82105b15612450576123b0612710612066565b61245b617530612066565b8210610aab576123b0617530612066565b60008060008060008061247e88611bb2565b9550600194505b600160a060020a0386161580159061249e5750600a8511155b156125c0576124ac86610c4d565b9350848410156124cc576124bf86611bb2565b9550846001019450612485565b600160a060020a0386166000908152601c60205260409020600381015490935060ff1615156124fe576124bf86611bb2565b61250786611cff565b60008681526018602052604090205490925061253190606490610eb2908a9063ffffffff611f8116565b9050818711156125655760008581526018602052604090205461256290606490610eb290859063ffffffff611f8116565b90505b61256f8682611ed3565b60408051338152600160a060020a038816602082015280820183905290517f04c7823bd649a9229473756f78ece799dcf64d1300fa8c8b68b6cabf86d938219181900360600190a16124bf86611bb2565b5050505050505050565b60010160005b6001830154821080156126165750600183018054839081106125ee57fe5b60009182526020909120015474010000000000000000000000000000000000000000900460ff165b15612626576001909101906125d0565b50919050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b60408051608081018252606080825260006020830181905292820181905281019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b815481835581811115610a9657600083815260209020610a96918101908301610c4a91905b8082111561270b57805474ffffffffffffffffffffffffffffffffffffffffff191681556001016126df565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bbfaead02c1ba2201279c3f7e52fb55011d8438370fa86a5e23086decf0504bd0029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000963746720746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034354470000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102925763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610297578063095ea7b3146103215780630adcaddc146103475780630ecb93c01461037357806311cda41514610394578063139bbbaf146103c557806316f0115b146103da57806317f67334146103ef57806318160ddd1461041b5780631b9db02d146104425780631c75f08514610463578063225096251461047857806323b872dd1461049057806327e235e3146104ba5780632e5f6d4c146104db5780632fe4ea5614610515578063313ce5671461052a5780633209c6de1461053f5780633539071414610554578063435ea6311461056957806347082db31461057e5780634beaa17f146105b557806359bf1abe146105d65780635c658165146105f75780635e331e621461061e5780636f5acde11461066257806370a08231146106865780637b048b06146106a7578063893d20e8146106bc5780638c351558146106d15780638d6aad28146106e65780638da5cb5b146106fe5780638e3394f71461071357806395d89b411461072b5780639d93d25714610740578063a13c3ecb14610758578063a9059cbb1461076d578063af8dc96f14610791578063b88af9cb146107a6578063ca34a0e3146107c1578063ca7a75d1146107d9578063d143121c1461081d578063dd62ed3e14610838578063dd644f721461085f578063dfd3d58c14610874578063e47d6060146108d4578063e4997dc5146108f5578063e5b5019a14610916578063f1f9d8c91461092b578063f2fde38b1461094c578063f3a136751461096d578063f3bdc22814610982578063f616ce3c146109a3578063f6b4dfb4146109b8578063fca11cec146109cd575b600080fd5b3480156102a357600080fd5b506102ac6109ee565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e65781810151838201526020016102ce565b50505050905090810190601f1680156103135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032d57600080fd5b50610345600160a060020a0360043516602435610a7c565b005b34801561035357600080fd5b5061035f600435610a9b565b604080519115158252519081900360200190f35b34801561037f57600080fd5b50610345600160a060020a0360043516610ab0565b3480156103a057600080fd5b506103a9610b22565b60408051600160a060020a039092168252519081900360200190f35b3480156103d157600080fd5b506103a9610b31565b3480156103e657600080fd5b506103a9610b40565b3480156103fb57600080fd5b50610345600160a060020a036004351660ff602435166044351515610b4f565b34801561042757600080fd5b50610430610c46565b60408051918252519081900360200190f35b34801561044e57600080fd5b50610430600160a060020a0360043516610c4d565b34801561046f57600080fd5b506103a9610dd2565b34801561048457600080fd5b50610345600435610de1565b34801561049c57600080fd5b50610345600160a060020a0360043581169060243516604435610e57565b3480156104c657600080fd5b50610430600160a060020a0360043516611016565b3480156104e757600080fd5b506104f3600435611028565b6040805193845260ff9283166020850152911682820152519081900360600190f35b34801561052157600080fd5b506103a961104d565b34801561053657600080fd5b5061043061105c565b34801561054b57600080fd5b50610430611062565b34801561056057600080fd5b50610430611073565b34801561057557600080fd5b506103a9611079565b34801561058a57600080fd5b5061059f600160a060020a0360043516611088565b6040805160ff9092168252519081900360200190f35b3480156105c157600080fd5b50610430600160a060020a036004351661109d565b3480156105e257600080fd5b5061035f600160a060020a036004351661119f565b34801561060357600080fd5b50610430600160a060020a03600435811690602435166111bd565b34801561062a57600080fd5b506106366004356111da565b60408051600160a060020a03948516815292909316602083015215158183015290519081900360600190f35b34801561066e57600080fd5b5061034560043560ff602435811690604435166111f7565b34801561069257600080fd5b50610430600160a060020a036004351661134a565b3480156106b357600080fd5b50610345611355565b3480156106c857600080fd5b506103a961138f565b3480156106dd57600080fd5b5061043061139e565b3480156106f257600080fd5b506103456004356113a4565b34801561070a57600080fd5b506103a9611599565b34801561071f57600080fd5b506104306004356115a8565b34801561073757600080fd5b506102ac6115ba565b34801561074c57600080fd5b50610430600435611615565b34801561076457600080fd5b50610430611627565b34801561077957600080fd5b50610345600160a060020a036004351660243561162d565b34801561079d57600080fd5b506103a9611907565b3480156107b257600080fd5b50610345600435602435611916565b3480156107cd57600080fd5b506104306004356119b0565b3480156107e557600080fd5b506107fa600160a060020a03600435166119bd565b60408051600160a060020a03909316835290151560208301528051918290030190f35b34801561082957600080fd5b506103456004356024356119e8565b34801561084457600080fd5b50610430600160a060020a0360043581169060243516611abf565b34801561086b57600080fd5b50610430611ad2565b34801561088057600080fd5b5061088c600435611ad8565b60408051600160a060020a03909816885260208801969096528686019490945260ff928316606087015290821660808601521660a084015260c0830152519081900360e00190f35b3480156108e057600080fd5b5061035f600160a060020a0360043516611b28565b34801561090157600080fd5b50610345600160a060020a0360043516611b3d565b34801561092257600080fd5b50610430611bac565b34801561093757600080fd5b506103a9600160a060020a0360043516611bb2565b34801561095857600080fd5b50610345600160a060020a0360043516611bd3565b34801561097957600080fd5b506103a9611c26565b34801561098e57600080fd5b50610345600160a060020a0360043516611c35565b3480156109af57600080fd5b506103a9611ce1565b3480156109c457600080fd5b506103a9611cf0565b3480156109d957600080fd5b50610430600160a060020a0360043516611cff565b6007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a745780601f10610a4957610100808354040283529160200191610a74565b820191906000526020600020905b815481529060010190602001808311610a5757829003601f168201915b505050505081565b60406044361015610a8c57600080fd5b610a968383611e1a565b505050565b6000610aa8601583611ec8565b90505b919050565b600054600160a060020a03163314610ac757600080fd5b600160a060020a038116600081815260066020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a150565b600c54600160a060020a031681565b601054600160a060020a031681565b600a54600160a060020a031681565b60008054600160a060020a03163314610b6757600080fd5b600160a060020a038416600081815260196020908152604091829020805460ff191660ff881690811790915582519384529083015280517fd7b328080d26d556e11cdd69192d4479e3800b4be84542d2864dc85bb7c098999281900390910190a18115610c40575060ff82166000908152601a602052604081205490811115610c4057610bf48482611ed3565b60408051600160a060020a038616815260ff8516602082015280820183905290517f9ad60b29a4e662f2106ac62588d27df663a2a145463b937b3ff4258d7dc486319181900360600190a15b50505050565b6001545b90565b600080600080610c5b612657565b60009350600092505b600160a060020a0386166000908152601c6020526040902054831015610dc857600160a060020a0386166000908152601c60205260409020805484908110610ca857fe5b6000918252602080832090910154600160a060020a0316808352601c82526040928390208351815460a094810282018501909552608081018581529296509390928492918491840182828015610d2757602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d09575b50505091835250506001820154600160a060020a03166020808301919091526002830180546040805182850281018501825282815294019392830182828015610d8f57602002820191906000526020600020905b815481526020019060010190808311610d7b575b50505091835250506003919091015460ff161515602090910152606081015190915015610dbd576001909301925b600190920191610c64565b5091949350505050565b600b54600160a060020a031681565b600054600160a060020a03163314610df857600080fd5b601454811415610e52576040805160e560020a62461bcd02815260206004820152601d60248201527f5468652076616c756520697320657175616c206f6c642076616c756521000000604482015290519081900360640190fd5b601455565b600080548190600160a060020a03163314610e7157600080fd5b600160a060020a03851660009081526006602052604090205460ff1615610e9757600080fd5b610ebe612710610eb260035486611f8190919063ffffffff16565b9063ffffffff611fb716565b9150600454821115610ed05760045491505b610ee0838363ffffffff611fce16565b600160a060020a038616600090815260026020526040902054909150610f0c908463ffffffff611fce16565b600160a060020a038087166000908152600260205260408082209390935590861681522054610f41908263ffffffff611fe016565b600160a060020a038516600090815260026020526040812091909155821115610fd65760008054600160a060020a0316815260026020526040902054610f8d908363ffffffff611fe016565b60008054600160a060020a039081168252600260209081526040808420949094559154835186815293519082169391891692600080516020612710833981519152928290030190a35b83600160a060020a031685600160a060020a0316600080516020612710833981519152836040518082815260200191505060405180910390a35050505050565b60026020526000908152604090205481565b601b602052600090815260409020805460019091015460ff8082169161010090041683565b600f54600160a060020a031681565b60095481565b600061106e6015611fef565b905090565b60045481565b600e54600160a060020a031681565b60196020526000908152604090205460ff1681565b600160a060020a0381166000908152601c602090815260408083206002018054825181850281018501909352808352849360609385938493919290919083018282801561110957602002820191906000526020600020905b8154815260200190600101908083116110f5575b50505050509250600091505b8251821015610dc857828281518110151561112c57fe5b60209081029091018101516000818152601d909252604082206003015490925060ff1611801561117757506000818152601d602052604090206003015460ff62010000820481169116115b15611194576000818152601d602052604090206002015493909301925b600190910190611115565b600160a060020a031660009081526006602052604090205460ff1690565b600560209081526000928352604080842090915290825290205481565b60008060006111ea601585611ffd565b9196909550909350915050565b600054600160a060020a0316331461120e57600080fd5b6000601b600061121d86612066565b815260208101919091526040016000205411611283576040805160e560020a62461bcd02815260206004820152601c60248201527f546869732070726f66697420636f6e666967206e6f7420657869737400000000604482015290519081900360640190fd5b60606040519081016040528061129885612066565b81526020018360ff1681526020018260ff16815250601b60006112ba86612066565b815260208082019290925260409081016000208351815583830151600190910180549483015160ff1990951660ff9283161761ff00191661010095831695909502949094179093558051868152858416928101929092529183168183015290517fb595e48eb6391867d8a60b9cb45f0173287016d447c323dc87fec8a5bfec5283916060908290030190a1505050565b6000610aa882612070565b60008054600160a060020a0316331461136d57600080fd5b5060005b601e5481101561138c57611384816113a4565b600101611371565b50565b600054600160a060020a031690565b60145481565b6113ac61267e565b600080548190600160a060020a031633146113c657600080fd5b6000848152601d6020908152604091829020825160e0810184528154600160a060020a03168152600182015492810192909252600281015492820192909252600382015460ff80821660608401819052610100830482166080850152620100009092041660a083015260049092015460c08201529350158061145557508260a0015160ff16836060015160ff16145b1561145f57610c40565b61149e836060015160ff16610eb26064610eb261148d6064896080015160ff16611fe090919063ffffffff16565b60408901519063ffffffff611f8116565b91506001905060008360c0015111156114d2576114cf62015180610eb28560c0015142611fce90919063ffffffff16565b90505b6000811115610c40576114eb828263ffffffff611f8116565b600a54845191935061150991600160a060020a039091169084610e57565b60a0830180516000868152601d602090815260409182902060038101805460ff9588018616620100000262ff00001990911617905542600490910155865193518251600160a060020a03909516855290840186905260010190911682820152517fc99b2cf0d0c34edcf463d0313c28ec0521816fe652b31a9122c66f326de9766d9181900360600190a150505050565b600054600160a060020a031681565b60186020526000908152604090205481565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a745780601f10610a4957610100808354040283529160200191610a74565b601a6020526000908152604090205481565b60015481565b60008060008061163c33611bb2565b9350601454851480156116565750600160a060020a038416155b80156116695750611667338761208b565b155b1561172e57336000818152601c602052604090206003015461169291601591899060ff166120db565b50600160a060020a0386166000908152601c60209081526040822080546001810182558184529190922001805473ffffffffffffffffffffffffffffffffffffffff19163317905592506116e686866121f7565b60408051338152600160a060020a038816602082015281517fc2665b421edac973edb5d78b1e4dc19463d432cb4b48e6e45df4d21b914b26a2929181900390910190a16118ff565b601354600160a060020a03878116911614156118f55761174e86866121f7565b61175785612364565b6000818152601b60205260408120805492945092501015611851576040805160e0810182523381528254602080830191825282840189815260018087015460ff8082166060880190815261010092839004821660808901908152600060a08a0181815260c08b01828152601e548352601d9099529a90209851895473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039091161789559651938801939093559251600287015590516003860180549551975160ff199096169184169190911761ff0019169683169091029590951762ff000019166201000093909116929092029190911790925590516004909101555b336000908152601c602090815260408220601e805460029092018054600181810183559186529390942090920155805490910190556103e882106118bf57336000818152601c60205260409020600301805460ff191660019081179091556118bd9160159187906120db565b505b6000821180156118e15750336000908152601c602052604090206003015460ff165b156118f0576118f0338361246c565b6118ff565b6118ff86866121f7565b505050505050565b600d54600160a060020a031681565b600054600160a060020a0316331461192d57600080fd5b6000828152601a602052604081205411611991576040805160e560020a62461bcd02815260206004820152601f60248201527f546865206c6576656c20636f6e66696720646f65736e27742065786973742100604482015290519081900360640190fd5b61199a81612066565b6000928352601a60205260409092209190915550565b6000610aa86015836125ca565b601c6020526000908152604090206001810154600390910154600160a060020a039091169060ff1682565b60008054600160a060020a03163314611a0057600080fd5b60008381526018602052604081205411611a64576040805160e560020a62461bcd02815260206004820152601960248201527f54686973206c6576656c20646f6573206e6f7420657869737400000000000000604482015290519081900360640190fd5b50600082815260186020908152604091829020805490849055825185815291820181905281830184905291517f27e70bce85cce56a71888653da8a27fa6295263d4a7be9806c85d08b6aa7e20f9181900360600190a1505050565b6000611acb838361262c565b9392505050565b60035481565b601d6020526000908152604090208054600182015460028301546003840154600490940154600160a060020a03909316939192909160ff8082169261010083048216926201000090049091169087565b60066020526000908152604090205460ff1681565b600054600160a060020a03163314611b5457600080fd5b600160a060020a038116600081815260066020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a150565b60001981565b600160a060020a039081166000908152601560205260409020600101541690565b600054600160a060020a03163314611bea57600080fd5b600160a060020a0381161561138c5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b601154600160a060020a031681565b60008054600160a060020a03163314611c4d57600080fd5b600160a060020a03821660009081526006602052604090205460ff161515611c7457600080fd5b611c7d8261134a565b600160a060020a0383166000818152600260209081526040808320929092556001805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15050565b601254600160a060020a031681565b601354600160a060020a031681565b600160a060020a0381166000908152601c6020908152604080832060020180548251818502810185019093528083528493606093859384939192909190830182828015611d6b57602002820191906000526020600020905b815481526020019060010190808311611d57575b50505050509250600091505b8251821015610dc8578282815181101515611d8e57fe5b60209081029091018101516000818152601d909252604082206003015490925060ff16118015611dd957506000818152601d602052604090206003015460ff62010000820481169116115b8015611df557506000818152601d602052604090206001015484105b15611e0f576000818152601d602052604090206001015493505b600190910190611d77565b60406044361015611e2a57600080fd5b8115801590611e5b5750336000908152600560209081526040808320600160a060020a038716845290915290205415155b15611e6557600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3505050565b600191909101541190565b600a54600160a060020a0316600090815260026020526040902054611efe908263ffffffff611fce16565b600a54600160a060020a039081166000908152600260205260408082209390935590841681522054611f36908263ffffffff611fe016565b600160a060020a0380841660008181526002602090815260409182902094909455600a5481518681529151929493169260008051602061271083398151915292918290030190a35050565b600080831515611f945760009150611fb0565b50828202828482811515611fa457fe5b0414611fac57fe5b8091505b5092915050565b6000808284811515611fc557fe5b04949350505050565b600082821115611fda57fe5b50900390565b600082820183811015611fac57fe5b6000610aa8826000196125ca565b6000806000846001018481548110151561201357fe5b6000918252602080832090910154600160a060020a039081168084529790915260409091206001015495969086169560ff7401000000000000000000000000000000000000000090910416945092505050565b600954600a0a0290565b600160a060020a031660009081526002602052604090205490565b6000815b600160a060020a038116156120d15783600160a060020a031681600160a060020a031614156120c15760019150611fb0565b6120ca81611bb2565b905061208f565b5060009392505050565b600160a060020a03838116600090815260208690526040812080546001909101805473ffffffffffffffffffffffffffffffffffffffff19169386169390931774ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008515150217909255908181111561216357600191506121ee565b6001808701805491612177919083016126ba565b600160a060020a03861660009081526020889052604090206001808301909155870180549192508691839081106121aa57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039390931692909217909155600287018054600101905591505b50949350505050565b6000806040604436101561220a57600080fd5b612225612710610eb260035487611f8190919063ffffffff16565b92506004548311156122375760045492505b612247848463ffffffff611fce16565b3360009081526002602052604090205490925061226a908563ffffffff611fce16565b3360009081526002602052604080822092909255600160a060020a0387168152205461229c908363ffffffff611fe016565b600160a060020a03861660009081526002602052604081209190915583111561232f5760008054600160a060020a03168152600260205260409020546122e8908463ffffffff611fe016565b60008054600160a060020a03908116825260026020908152604080842094909455915483518781529351911692339260008051602061271083398151915292918290030190a35b604080518381529051600160a060020a0387169133916000805160206127108339815191529181900360200190a35050505050565b60006123706064612066565b82101561237f57506000610aab565b6123896064612066565b82101580156123a1575061239e6103e8612066565b82105b156123b7576123b06064612066565b9050610aab565b6123c26103e8612066565b82101580156123da57506123d7611388612066565b82105b156123ea576123b06103e8612066565b6123f5611388612066565b821015801561240d575061240a612710612066565b82105b1561241d576123b0611388612066565b612428612710612066565b8210158015612440575061243d617530612066565b82105b15612450576123b0612710612066565b61245b617530612066565b8210610aab576123b0617530612066565b60008060008060008061247e88611bb2565b9550600194505b600160a060020a0386161580159061249e5750600a8511155b156125c0576124ac86610c4d565b9350848410156124cc576124bf86611bb2565b9550846001019450612485565b600160a060020a0386166000908152601c60205260409020600381015490935060ff1615156124fe576124bf86611bb2565b61250786611cff565b60008681526018602052604090205490925061253190606490610eb2908a9063ffffffff611f8116565b9050818711156125655760008581526018602052604090205461256290606490610eb290859063ffffffff611f8116565b90505b61256f8682611ed3565b60408051338152600160a060020a038816602082015280820183905290517f04c7823bd649a9229473756f78ece799dcf64d1300fa8c8b68b6cabf86d938219181900360600190a16124bf86611bb2565b5050505050505050565b60010160005b6001830154821080156126165750600183018054839081106125ee57fe5b60009182526020909120015474010000000000000000000000000000000000000000900460ff165b15612626576001909101906125d0565b50919050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b60408051608081018252606080825260006020830181905292820181905281019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b815481835581811115610a9657600083815260209020610a96918101908301610c4a91905b8082111561270b57805474ffffffffffffffffffffffffffffffffffffffffff191681556001016126df565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820bbfaead02c1ba2201279c3f7e52fb55011d8438370fa86a5e23086decf0504bd0029

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000963746720746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034354470000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): ctg token
Arg [1] : _symbol (string): CTG
Arg [2] : _decimals (uint256): 5

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [4] : 63746720746f6b656e0000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 4354470000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

11156:14364:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11226:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11226:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;11226:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24534:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24534:136:0;-1:-1:-1;;;;;24534:136:0;;;;;;;;;18749:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18749:130:0;;;;;;;;;;;;;;;;;;;;;;;7840:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7840:149:0;-1:-1:-1;;;;;7840:149:0;;;;;11492:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11492:64:0;;;;;;;;-1:-1:-1;;;;;11492:64:0;;;;;;;;;;;;;;11812:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11812:71:0;;;;11307:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11307:64:0;;;;21085:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21085:411:0;-1:-1:-1;;;;;21085:411:0;;;;;;;;;;;;;24974:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24974:94:0;;;;;;;;;;;;;;;;;;;;17145:435;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17145:435:0;-1:-1:-1;;;;;17145:435:0;;;;;11393:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11393:71:0;;;;14962:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14962:161:0;;;;;23274:981;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23274:981:0;-1:-1:-1;;;;;23274:981:0;;;;;;;;;;;;2962:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2962:40:0;-1:-1:-1;;;;;2962:40:0;;;;;12414:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12414:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11734:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11734:71:0;;;;11278:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11278:20:0;;;;18473:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18473:116:0;;;;3128:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3128:26:0;;;;11656:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11656:71:0;;;;12223:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12223:39:0;-1:-1:-1;;;;;12223:39:0;;;;;;;;;;;;;;;;;;;;;;;;16695:442;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16695:442:0;-1:-1:-1;;;;;16695:442:0;;;;;7559:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7559:124:0;-1:-1:-1;;;;;7559:124:0;;;;;4762:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4762:59:0;-1:-1:-1;;;;;4762:59:0;;;;;;;;;;18887:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18887:215:0;;;;;;;;;-1:-1:-1;;;;;18887:215:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17590:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17590:307:0;;;;;;;;;;;;;;24340:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24340:109:0;-1:-1:-1;;;;;24340:109:0;;;;;20935:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20935:140:0;;;;7691:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7691:87:0;;;;12122:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12122:24:0;;;;20170:757;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20170:757:0;;;;;1162:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1162:20:0;;;;12178:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12178:38:0;;;;;11251:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11251:20:0;;;;12269:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12269:40:0;;;;;2048:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2048:26:0;;;;21504:1532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21504:1532:0;-1:-1:-1;;;;;21504:1532:0;;;;;;;11578:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11578:71:0;;;;14755:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14755:199:0;;;;;;;18597:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18597:144:0;;;;;12465:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12465:51:0;-1:-1:-1;;;;;12465:51:0;;;;;;;;;-1:-1:-1;;;;;12465:51:0;;;;;;;;;;;;;;;;;;;;;15133:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15133:281:0;;;;;;;24755:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24755:153:0;-1:-1:-1;;;;;24755:153:0;;;;;;;;;;3090:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3090:31:0;;;;12863:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12863:44:0;;;;;;;;;-1:-1:-1;;;;;12863:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7786:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7786:45:0;-1:-1:-1;;;;;7786:45:0;;;;;7997:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7997:164:0;-1:-1:-1;;;;;7997:164:0;;;;;4830:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4830:44:0;;;;18034:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18034:127:0;-1:-1:-1;;;;;18034:127:0;;;;;1729:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1729:151:0;-1:-1:-1;;;;;1729:151:0;;;;;11890:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11890:71:0;;;;8169:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8169:330:0;-1:-1:-1;;;;;8169:330:0;;;;;11968:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11968:65:0;;;;12040:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12040:75:0;;;;16187:500;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16187:500:0;-1:-1:-1;;;;;16187:500:0;;;;;11226:18;;;;;;;;;;;;;;;-1:-1:-1;;11226:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24534:136::-;24605:6;3307:8;3289;:26;3287:29;3279:38;;;;;;24631:31;24645:8;24655:6;24631:13;:31::i;:::-;24534:136;;;:::o;18749:130::-;18808:4;18832:39;18852:8;18862;18832:19;:39::i;:::-;18825:46;;18749:130;;;;:::o;7840:149::-;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;;;;;7909:24:0;;;;;;:13;:24;;;;;;;;;:31;;-1:-1:-1;;7909:31:0;7936:4;7909:31;;;7956:25;;;;;;;;;;;;;;;;;7840:149;:::o;11492:64::-;;;-1:-1:-1;;;;;11492:64:0;;:::o;11812:71::-;;;-1:-1:-1;;;;;11812:71:0;;:::o;11307:64::-;;;-1:-1:-1;;;;;11307:64:0;;:::o;21085:411::-;21288:8;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;;;;;21179:16:0;;;;;;:6;:16;;;;;;;;;:24;;-1:-1:-1;;21179:24:0;;;;;;;;;;21221:25;;;;;;;;;;;;;;;;;;;;;21261:10;21257:232;;;-1:-1:-1;21311:11:0;;;21299:24;;;;:11;:24;;;;;;;21342:7;;21338:140;;;21370:31;21387:8;21397:3;21370:16;:31::i;:::-;21425:37;;;-1:-1:-1;;;;;21425:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21338:140;21085:411;;;;:::o;24974:94::-;25046:14;;24974:94;;:::o;17145:435::-;17227:4;17244:8;17272:6;17344:13;17409:28;;:::i;:::-;17256:1;17244:13;;17279:1;17272:8;;17268:282;-1:-1:-1;;;;;17284:22:0;;;;;;:12;:22;;;;;:38;17282:40;;17268:282;;;-1:-1:-1;;;;;17360:22:0;;;;;;:12;:22;;;;;:34;;17392:1;;17360:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17360:34:0;17440:19;;;:12;:19;;;;;;;17409:50;;;;;;;;;;;;;;;;;;;;;17360:34;;-1:-1:-1;17409:50:0;17440:19;;17409:50;;;17440:19;;17409:50;;17440:19;17409:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17409:50:0;;;;;;;;;;;;;;;;-1:-1:-1;;;17409:50:0;;;-1:-1:-1;;17409:50:0;;;;-1:-1:-1;;;;;17409:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17409:50:0;;;-1:-1:-1;;17409:50:0;;;;;;;;;;;;;;;17478:19;;;;17409:50;;-1:-1:-1;17474:65:0;;;17518:5;;;;;17474:65;17324:3;;;;;17268:282;;;-1:-1:-1;17569:3:0;;17145:435;-1:-1:-1;;;;17145:435:0:o;11393:71::-;;;-1:-1:-1;;;;;11393:71:0;;:::o;14962:161::-;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;15033:12;;:19;;;15025:61;;;;;-1:-1:-1;;;;;15025:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15097:12;:18;14962:161::o;23274:981::-;23633:8;1529:5;;23633:8;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;;;;;23375:20:0;;;;;;:13;:20;;;;;;;;23374:21;23366:30;;;;;;23644:40;23678:5;23645:27;23656:15;;23645:6;:10;;:27;;;;:::i;:::-;23644:33;:40;:33;:40;:::i;:::-;23633:51;;23705:10;;23699:3;:16;23695:65;;;23738:10;;23732:16;;23695:65;23933:15;:6;23944:3;23933:15;:10;:15;:::i;:::-;-1:-1:-1;;;;;23977:15:0;;;;;;:8;:15;;;;;;23915:33;;-1:-1:-1;23977:27:0;;23997:6;23977:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;23959:15:0;;;;;;;:8;:15;;;;;;:45;;;;24031:13;;;;;;;:29;;24049:10;24031:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;24015:13:0;;;;;;:8;:13;;;;;:45;;;;24075:7;;24071:129;;;24117:15;24126:5;;-1:-1:-1;;;;;24126:5:0;24117:15;;:8;:15;;;;;;:24;;24137:3;24117:24;:19;:24;:::i;:::-;24099:15;24108:5;;-1:-1:-1;;;;;24108:5:0;;;24099:15;;:8;:15;;;;;;;;:42;;;;24177:5;;24161:27;;;;;;;24177:5;;;;24161:27;;;;-1:-1:-1;;;;;;;;;;;24161:27:0;;;;;;;24071:129;24231:3;-1:-1:-1;;;;;24215:32:0;24224:5;-1:-1:-1;;;;;24215:32:0;-1:-1:-1;;;;;;;;;;;24236:10:0;24215:32;;;;;;;;;;;;;;;;;;23274:981;;;;;:::o;2962:40::-;;;;;;;;;;;;;:::o;12414:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11734:71::-;;;-1:-1:-1;;;;;11734:71:0;;:::o;11278:20::-;;;;:::o;18473:116::-;18519:13;18552:29;18572:8;18552:19;:29::i;:::-;18545:36;;18473:116;:::o;3128:26::-;;;;:::o;11656:71::-;;;-1:-1:-1;;;;;11656:71:0;;:::o;12223:39::-;;;;;;;;;;;;;;;:::o;16695:442::-;-1:-1:-1;;;;;16831:22:0;;16767:4;16831:22;;;:12;:22;;;;;;;;:35;;16807:59;;;;;;;;;;;;;;;;;16767:4;;16807:21;;16767:4;;;;16807:59;;16831:35;;16807:59;;;16831:35;16807:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16889:1;16882:8;;16877:230;16894:7;:14;16892:1;:16;16877:230;;;16939:7;16947:1;16939:10;;;;;;;;;;;;;;;;;;;;16988:1;16968:13;;;:10;:13;;;;;;:17;;;16939:10;;-1:-1:-1;16968:17:0;;:21;:67;;;;-1:-1:-1;17014:13:0;;;;:10;:13;;;;;:20;;;;;;;;;16994:17;;:40;16968:67;16964:132;;;17063:13;;;;:10;:13;;;;;:17;;;17056:24;;;;;16964:132;16910:3;;;;;16877:230;;7559:124;-1:-1:-1;;;;;7654:21:0;7630:4;7654:21;;;:13;:21;;;;;;;;;7559:124::o;4762:59::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;18887:215::-;18944:22;18968:21;18991:11;19057:37;19075:8;19085;19057:17;:37::i;:::-;19015:79;;;;-1:-1:-1;19015:79:0;;-1:-1:-1;18887:215:0;-1:-1:-1;;18887:215:0:o;17590:307::-;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;17720:1;17687:7;:28;17695:19;17710:3;17695:14;:19::i;:::-;17687:28;;;;;;;;;;;-1:-1:-1;17687:28:0;:32;:34;17679:75;;;;;-1:-1:-1;;;;;17679:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17796:44;;;;;;;;;17809:19;17824:3;17809:14;:19::i;:::-;17796:44;;;;17830:3;17796:44;;;;;;17835:4;17796:44;;;;;17765:7;:28;17773:19;17788:3;17773:14;:19::i;:::-;17765:28;;;;;;;;;;;;;;-1:-1:-1;17765:28:0;:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;17765:75:0;;;;;;;;-1:-1:-1;;17765:75:0;;;;;;;;;;;;;;;;17858:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17590:307;;;:::o;24340:109::-;24397:4;24421:20;24437:3;24421:15;:20::i;20935:140::-;20996:6;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;21005:1:0;20991:77;21010:8;;21008:1;:10;20991:77;;;21040:16;21054:1;21040:13;:16::i;:::-;21020:3;;20991:77;;;20935:140;:::o;7691:87::-;7738:7;7765:5;-1:-1:-1;;;;;7765:5:0;7691:87;:::o;12122:24::-;;;;:::o;20170:757::-;20233:20;;:::i;:::-;20370:13;1529:5;;20370:13;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;20256:17;;;;:10;:17;;;;;;;;;20233:40;;;;;;;;;-1:-1:-1;;;;;20233:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20288:12:0;;:37;;;20315:3;:10;;;20304:21;;:3;:7;;;:21;;;20288:37;20284:76;;;20342:7;;20284:76;20386:64;20441:3;:7;;;20436:13;;20386:45;20427:3;20386:36;20398:23;20417:3;20403;:8;;;20398:14;;:18;;:23;;;;:::i;:::-;20386:7;;;;;:36;:11;:36;:::i;:64::-;20370:80;;20478:1;20463:16;;20510:1;20494:3;:13;;;:17;20490:95;;;20538:35;20565:7;20538:22;20546:3;:13;;;20538:3;:7;;:22;;;;:::i;:35::-;20528:45;;20490:95;20609:1;20599:7;:11;20595:323;;;20638:21;:8;20651:7;20638:21;:12;:21;:::i;:::-;20687:4;;20693:12;;20627:32;;-1:-1:-1;20674:42:0;;-1:-1:-1;;;;;20687:4:0;;;;20627:32;20674:12;:42::i;:::-;20758:10;;;;;20731:17;;;;:10;:17;;;;;;;;;:24;;;:54;;;20758:27;;;20731:54;;;;-1:-1:-1;;20731:54:0;;;;;;20830:3;20800:27;;;;:33;20869:12;;20893:10;;20855:51;;-1:-1:-1;;;;;20855:51:0;;;;;;;;;;;-1:-1:-1;20893:12:0;20855:51;;;;;;;;;;;;;;;;;20170:757;;;;:::o;1162:20::-;;;-1:-1:-1;;;;;1162:20:0;;:::o;12178:38::-;;;;;;;;;;;;;:::o;11251:20::-;;;;;;;;;;;;;;;-1:-1:-1;;11251:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12269:40;;;;;;;;;;;;;:::o;2048:26::-;;;;:::o;21504:1532::-;21566:21;21827:24;22137:14;22194:27;21590:18;21597:10;21590:6;:18::i;:::-;21566:42;;21633:12;;21623:6;:22;:53;;;;-1:-1:-1;;;;;;21649:27:0;;;21623:53;:87;;;;;21681:29;21694:10;21706:3;21681:12;:29::i;:::-;21680:30;21623:87;21619:1410;;;21760:10;21777:24;;;;:12;:24;;;;;:34;;;21727:85;;21750:8;;21772:3;;21777:34;;21727:22;:85::i;:::-;-1:-1:-1;;;;;;21854:17:0;;;;;;:12;:17;;;;;;;27:10:-1;;39:1;23:18;;45:23;;21886:30:0;;;;;;;;;;-1:-1:-1;;21886:30:0;21905:10;21886:30;;;21854:17;-1:-1:-1;21931:27:0;21867:3;21951:6;21931:14;:27::i;:::-;21978:26;;;21988:10;21978:26;;-1:-1:-1;;;;;21978:26:0;;;;;;;;;;;;;;;;;;;21619:1410;;;22033:15;;-1:-1:-1;;;;;22026:22:0;;;22033:15;;22026:22;22022:1007;;;22065:27;22080:3;22085:6;22065:14;:27::i;:::-;22154:25;22172:6;22154:17;:25::i;:::-;22224:18;;;;:7;:18;;;;;22261:10;;22137:42;;-1:-1:-1;22224:18:0;-1:-1:-1;;22257:209:0;;;22319:131;;;;;;;;22339:10;22319:131;;22360:10;;22319:131;;;;;;;;;;;;;22392:10;;;;;;;;;22319:131;;;;;;22392:10;22411:11;;;;;;22319:131;;;;;;-1:-1:-1;22319:131:0;;;;;;;;;;;;22307:8;;22296:20;;:10;:20;;;;;;:154;;;;-1:-1:-1;;22296:154:0;-1:-1:-1;;;;;22296:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22296:154:0;;;;;;;;;;-1:-1:-1;;22296:154:0;;;;;;;;;;;-1:-1:-1;;22296:154:0;;;;;;;;;;;;;;;;;;;;;;;;22257:209;22522:10;22509:24;;;;:12;:24;;;;;;;22552:8;;;22509:37;;;;27:10:-1;;39:1;23:18;;;45:23;;22509:52:0;;;;;;;;;;;22576:10;;;;;;;22618:4;22605:17;;22601:183;;22656:10;22643:24;;;;:12;:24;;;;;:34;;:41;;-1:-1:-1;;22643:41:0;22680:4;22643:41;;;;;;22703:65;;22726:8;;22748:13;;22703:22;:65::i;:::-;;22601:183;22845:1;22833:9;:13;:51;;;;-1:-1:-1;22863:10:0;22850:24;;;;:12;:24;;;;;:34;;;;;22833:51;22829:127;;;22905:35;22918:10;22930:9;22905:12;:35::i;:::-;22022:1007;;;22990:27;23005:3;23010:6;22990:14;:27::i;:::-;21504:1532;;;;;;:::o;11578:71::-;;;-1:-1:-1;;;;;11578:71:0;;:::o;14755:199::-;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;14858:1;14837:18;;;:11;:18;;;;;;:22;14829:66;;;;;-1:-1:-1;;;;;14829:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14927:19;14942:3;14927:14;:19::i;:::-;14906:18;;;;:11;:18;;;;;;:40;;;;-1:-1:-1;14755:199:0:o;18597:144::-;18655:15;18695:38;18714:8;18724;18695:18;:38::i;12465:51::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12465:51:0;;;;;;;:::o;15133:281::-;15283:12;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;15239:1;15220:16;;;:9;:16;;;;;;:20;15212:58;;;;;-1:-1:-1;;;;;15212:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15298:16:0;;;;:9;:16;;;;;;;;;;;15325:23;;;;15366:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;15133:281;;;:::o;24755:153::-;24833:14;24867:33;24883:6;24891:8;24867:15;:33::i;:::-;24860:40;24755:153;-1:-1:-1;;;24755:153:0:o;3090:31::-;;;;:::o;12863:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12863:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7786:45::-;;;;;;;;;;;;;;;:::o;7997:164::-;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;;;;;8072:27:0;;8102:5;8072:27;;;:13;:27;;;;;;;;;:35;;-1:-1:-1;;8072:35:0;;;8123:30;;;;;;;;;;;;;;;;;7997:164;:::o;4830:44::-;-1:-1:-1;;4830:44:0;:::o;18034:127::-;-1:-1:-1;;;;;18116:23:0;;;18089:7;18116:23;;;:8;:23;;;;;:37;;;;;18034:127::o;1729:151::-;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;;;;;1806:22:0;;;1802:71;;1845:5;:16;;-1:-1:-1;;;;;1845:16:0;;-1:-1:-1;;1845:16:0;;;;;;1729:151;:::o;11890:71::-;;;-1:-1:-1;;;;;11890:71:0;;:::o;8169:330::-;8301:15;1529:5;;-1:-1:-1;;;;;1529:5:0;1515:10;:19;1507:28;;;;;;-1:-1:-1;;;;;8258:31:0;;;;;;:13;:31;;;;;;;;8250:40;;;;;;;;8319:27;8329:16;8319:9;:27::i;:::-;-1:-1:-1;;;;;8357:26:0;;8386:1;8357:26;;;:8;:26;;;;;;;;:30;;;;8398:14;:28;;;;;;;8442:49;;;;;;;;;;;;8301:45;;-1:-1:-1;8442:49:0;;;;;;;;;8169:330;;:::o;11968:65::-;;;-1:-1:-1;;;;;11968:65:0;;:::o;12040:75::-;;;-1:-1:-1;;;;;12040:75:0;;:::o;16187:500::-;-1:-1:-1;;;;;16330:22:0;;16261:4;16330:22;;;:12;:22;;;;;;;;:35;;16306:59;;;;;;;;;;;;;;;;;16261:4;;16306:21;;16261:4;;;;16306:59;;16330:35;;16306:59;;;16330:35;16306:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16388:1;16381:8;;16376:278;16393:7;:14;16391:1;:16;16376:278;;;16438:7;16446:1;16438:10;;;;;;;;;;;;;;;;;;;;16487:1;16467:13;;;:10;:13;;;;;;:17;;;16438:10;;-1:-1:-1;16467:17:0;;:21;:67;;;;-1:-1:-1;16513:13:0;;;;:10;:13;;;;;:20;;;;;;;;;16493:17;;:40;16467:67;:106;;;;-1:-1:-1;16539:13:0;;;;:10;:13;;;;;:22;;;:33;-1:-1:-1;16467:106:0;16463:180;;;16605:13;;;;:10;:13;;;;;:22;;;;-1:-1:-1;16463:180:0;16409:3;;;;;16376:278;;6323:578;6394:6;3307:8;3289;:26;3287:29;3279:38;;;;;;6734:11;;;;;6733:53;;-1:-1:-1;6759:10:0;6751:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6751:29:0;;;;;;;;;;:34;;6733:53;6731:56;6723:65;;;;;;6809:10;6801:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6801:29:0;;;;;;;;;;;;:38;;;6855;;;;;;;6801:29;;6809:10;6855:38;;;;;;;;;;;6323:578;;;:::o;10407:145::-;10528:9;;;;;:16;-1:-1:-1;10517:27:0;10407:145::o;23044:218::-;23142:4;;-1:-1:-1;;;;;23142:4:0;23133:14;;;;:8;:14;;;;;;:26;;23152:6;23133:26;:18;:26;:::i;:::-;23125:4;;-1:-1:-1;;;;;23125:4:0;;;23116:14;;;;:8;:14;;;;;;:43;;;;23186:13;;;;;;;:25;;23204:6;23186:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;23170:13:0;;;;;;;:8;:13;;;;;;;;;:41;;;;23236:4;;23227:27;;;;;;;23170:13;;23236:4;;;-1:-1:-1;;;;;;;;;;;23227:27:0;;;;;;;;23044:218;;:::o;146:208::-;204:7;;228:6;;224:47;;;258:1;251:8;;;;224:47;-1:-1:-1;293:5:0;;;297:1;293;:5;316;;;;;;;;:10;309:18;;;;345:1;338:8;;146:208;;;;;;:::o;362:288::-;420:7;519:9;535:1;531;:5;;;;;;;;;362:288;-1:-1:-1;;;;362:288:0:o;658:123::-;716:7;743:6;;;;736:14;;;;-1:-1:-1;768:5:0;;;658:123::o;789:147::-;847:7;879:5;;;902:6;;;;895:14;;;10258:141;10324:13;10362:29;10375:4;-1:-1:-1;;10362:12:0;:29::i;10826:321::-;10905:22;10929:21;10952:11;10998:4;:9;;11008:8;10998:19;;;;;;;;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;10998:23:0;;;11048:25;;;;;;;;;;;10998:23;11048:39;;10998:23;;11048:39;;;;11107:32;;;;;;;-1:-1:-1;10826:321:0;-1:-1:-1;;;10826:321:0:o;17905:121::-;18010:8;;18004:2;:14;17995:23;;17905:121::o;4311:116::-;-1:-1:-1;;;;;4403:16:0;4371:12;4403:16;;;:8;:16;;;;;;;4311:116::o;18169:296::-;18247:4;18276:7;18294:141;-1:-1:-1;;;;;18301:15:0;;;18294:141;;18342:6;-1:-1:-1;;;;;18337:11:0;:1;-1:-1:-1;;;;;18337:11:0;;18333:63;;;18376:4;18369:11;;;;18333:63;18414:9;18421:1;18414:6;:9::i;:::-;18410:13;;18294:141;;;-1:-1:-1;18452:5:0;;18169:296;-1:-1:-1;;;18169:296:0:o;9075:562::-;-1:-1:-1;;;;;9225:14:0;;;9178:13;9225:14;;;;;;;;;;:23;;9259:28;;;;:44;;-1:-1:-1;;9259:44:0;;;;;;;;-1:-1:-1;;9314:30:0;;;;;;;;;;9178:13;9361:12;;;9357:273;;;9395:4;9388:11;;;;9357:273;9450:9;;;;:18;;;;;:9;:18;;;:::i;:::-;-1:-1:-1;;;;;9483:14:0;;:9;:14;;;;;;;;;;9520:1;9509:12;;;9483:38;;;9536:9;;:19;;9439:29;;-1:-1:-1;9493:3:0;;9439:29;;9536:19;;;;;;;;;;;;;;:29;;-1:-1:-1;;9536:29:0;-1:-1:-1;;;;;9536:29:0;;;;;;;;;;;9580:9;;;:11;;-1:-1:-1;9580:11:0;;;9536:19;-1:-1:-1;9357:273:0;9075:562;;;;;;;:::o;3510:583::-;3596:8;;3577:6;3307:8;3289;:26;3287:29;3279:38;;;;;;3607:40;3641:5;3608:27;3619:15;;3608:6;:10;;:27;;;;:::i;3607:40::-;3596:51;;3668:10;;3662:3;:16;3658:65;;;3701:10;;3695:16;;3658:65;3751:15;:6;3762:3;3751:15;:10;:15;:::i;:::-;3809:10;3800:20;;;;:8;:20;;;;;;3733:33;;-1:-1:-1;3800:32:0;;3825:6;3800:32;:24;:32;:::i;:::-;3786:10;3777:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;3859:13:0;;;;;;:29;;3877:10;3859:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;3843:13:0;;;;;;:8;:13;;;;;:45;;;;3903:7;;3899:134;;;3945:15;3954:5;;-1:-1:-1;;;;;3954:5:0;3945:15;;:8;:15;;;;;;:24;;3965:3;3945:24;:19;:24;:::i;:::-;3927:15;3936:5;;-1:-1:-1;;;;;3936:5:0;;;3927:15;;:8;:15;;;;;;;;:42;;;;4010:5;;3989:32;;;;;;;4010:5;;;3998:10;;-1:-1:-1;;;;;;;;;;;3989:32:0;;;;;;;;3899:134;4048:37;;;;;;;;-1:-1:-1;;;;;4048:37:0;;;4057:10;;-1:-1:-1;;;;;;;;;;;4048:37:0;;;;;;;;3510:583;;;;;:::o;15422:757::-;15485:4;15512:19;15527:3;15512:14;:19::i;:::-;15506:3;:25;15502:66;;;-1:-1:-1;15555:1:0;15548:8;;15502:66;15588:19;15603:3;15588:14;:19::i;:::-;15582:3;:25;;:55;;;;;15617:20;15632:4;15617:14;:20::i;:::-;15611:3;:26;15582:55;15578:114;;;15661:19;15676:3;15661:14;:19::i;:::-;15654:26;;;;15578:114;15712:20;15727:4;15712:14;:20::i;:::-;15706:3;:26;;:56;;;;;15742:20;15757:4;15742:14;:20::i;:::-;15736:3;:26;15706:56;15702:116;;;15786:20;15801:4;15786:14;:20::i;15702:116::-;15838:20;15853:4;15838:14;:20::i;:::-;15832:3;:26;;:57;;;;;15868:21;15883:5;15868:14;:21::i;:::-;15862:3;:27;15832:57;15828:117;;;15913:20;15928:4;15913:14;:20::i;15828:117::-;15965:21;15980:5;15965:14;:21::i;:::-;15959:3;:27;;:58;;;;;15996:21;16011:5;15996:14;:21::i;:::-;15990:3;:27;15959:58;15955:119;;;16041:21;16056:5;16041:14;:21::i;15955:119::-;16094:21;16109:5;16094:14;:21::i;:::-;16088:27;;16084:88;;16139:21;16154:5;16139:14;:21::i;19110:1052::-;19184:9;19223:10;19304:22;19534:24;19739:16;19801:13;19196:16;19203:8;19196:6;:16::i;:::-;19184:28;;19236:1;19223:14;;19250:905;-1:-1:-1;;;;;19257:15:0;;;;;;:30;;;19285:2;19276:5;:11;;19257:30;19250:905;;;19329:32;19359:1;19329:29;:32::i;:::-;19304:57;;19400:5;19380:17;:25;19376:142;;;19430:9;19437:1;19430:6;:9::i;:::-;19426:13;;19466:5;19474:1;19466:9;19458:17;;19494:8;;19376:142;-1:-1:-1;;;;;19561:15:0;;;;;;:12;:15;;;;;19596:14;;;;19561:15;;-1:-1:-1;19596:14:0;;19595:15;19591:132;;;19635:9;19642:1;19635:6;:9::i;19591:132::-;19758:24;19780:1;19758:21;:24::i;:::-;19828:16;;;;:9;:16;;;;;;19739:43;;-1:-1:-1;19817:37:0;;19850:3;;19817:28;;:6;;:28;:10;:28;:::i;:37::-;19801:53;;19882:11;19873:6;:20;19869:114;;;19941:16;;;;:9;:16;;;;;;19925:42;;19963:3;;19925:33;;:11;;:33;:15;:33;:::i;:42::-;19914:53;;19869:114;20001:29;20018:1;20021:8;20001:16;:29::i;:::-;20050:33;;;20059:10;20050:33;;-1:-1:-1;;;;;20050:33:0;;;;;;;;;;;;;;;;;;;;;;;20102:9;20109:1;20102:6;:9::i;19250:905::-;19110:1052;;;;;;;;:::o;10560:258::-;10673:10;;10640:15;10694:90;10712:9;;;:16;10701:27;;:58;;;;-1:-1:-1;10732:9:0;;;:19;;10742:8;;10732:19;;;;;;;;;;;;;;;:27;;;;;;10701:58;10694:90;;;10774:10;;;;;10694:90;;;-1:-1:-1;10802:8:0;10560:258;-1:-1:-1;10560:258:0:o;7234:145::-;-1:-1:-1;;;;;7346:15:0;;;7312:14;7346:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7234:145::o;11156:14364::-;;;;;;;;;;;;;-1:-1:-1;11156:14364:0;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;11156:14364:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11156:14364:0;;;;;;;;;;

Swarm Source

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