ETH Price: $3,337.23 (-4.09%)

Token

GREENX (GEX)
 

Overview

Max Total Supply

375,000,000 GEX

Holders

1,463

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
247.5 GEX

Value
$0.00
0xfc48d169488bb14a0846cd9cc7b847d6b035b918
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

GreenX Network is a blockchain-based ecosystem that allows investors to discover and invest in green energy projects around the world, easily and securely.

ICO Information

Project Sector : Energy
ICO Start Date : Jun 15, 2018
ICO End Date : Jul 31, 2018
Total Cap : 225,000,000 GEX
Hard Cap : 2250 ETH
Token Distribution Date : Aug 14, 2018
ICO Price  : $0.20 | 0.000481
Bonus : 0%-30%
Country : Singapore

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GreenX

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-15
*/

pragma solidity ^0.4.21;


contract Owner {
    address public owner;

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function Owner(address _owner) public {
        owner = _owner;
    }

    function changeOwner(address _newOwnerAddr) public onlyOwner {
        require(_newOwnerAddr != address(0));
        owner = _newOwnerAddr;
    }
}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    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;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    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;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}


contract GreenX is Owner {
    using SafeMath for uint256;

    string public constant name = "GREENX";
    string public constant symbol = "GEX";
    uint public constant decimals = 18;
    uint256 constant public totalSupply = 375000000 * 10 ** 18; // 375 mil tokens will be supplied
  
    mapping(address => uint256) internal balances;
    mapping(address => mapping (address => uint256)) internal allowed;

    address public portalAddress;
    address public adminAddress;
    address public walletAddress;
    address public founderAddress;
    address public teamAddress;

    mapping(address => bool) public privateList;
    mapping(address => bool) public whiteList;
    mapping(address => uint256) public totalInvestedAmountOf;

    uint constant lockPeriod1 = 180 days; // 1st locked period for tokens allocation of founder and team
    uint constant lockPeriod2 = 1 years; // 2nd locked period for tokens allocation of founder and team
    uint constant lockPeriod3 = 2 years; // locked period for remaining sale tokens after ending ICO
    uint constant NOT_SALE = 0; // Not in sales
    uint constant IN_PRIVATE_SALE = 1; // In private sales
    uint constant IN_PRESALE = 2; // In presales
    uint constant END_PRESALE = 3; // End presales
    uint constant IN_1ST_ICO = 4; // In ICO 1st round
    uint constant IN_2ND_ICO = 5; // In ICO 2nd round
    uint constant IN_3RD_ICO = 6; // In ICO 3rd round
    uint constant END_SALE = 7; // End sales

    uint256 public constant salesAllocation = 187500000 * 10 ** 18; // 187.5 mil tokens allocated for sales
    uint256 public constant bonusAllocation = 37500000 * 10 ** 18; // 37.5 mil tokens allocated for token sale bonuses
    uint256 public constant reservedAllocation = 90000000 * 10 ** 18; // 90 mil tokens allocated for reserved, bounty campaigns, ICO partners, and bonus fund
    uint256 public constant founderAllocation = 37500000 * 10 ** 18; // 37.5 mil tokens allocated for founders
    uint256 public constant teamAllocation = 22500000 * 10 ** 18; // 22.5 mil tokens allocated for team
    uint256 public constant minInvestedCap = 2500 * 10 ** 18; // 2500 ether for softcap 
    uint256 public constant minInvestedAmount = 0.1 * 10 ** 18; // 0.1 ether for mininum ether contribution per transaction
    
    uint saleState;
    uint256 totalInvestedAmount;
    uint public icoStartTime;
    uint public icoEndTime;
    bool public inActive;
    bool public isSelling;
    bool public isTransferable;
    uint public founderAllocatedTime = 1;
    uint public teamAllocatedTime = 1;
    uint256 public privateSalePrice;
    uint256 public preSalePrice;
    uint256 public icoStandardPrice;
    uint256 public ico1stPrice;
    uint256 public ico2ndPrice;
    uint256 public totalRemainingTokensForSales; // Total tokens remaining for sales
    uint256 public totalReservedAndBonusTokenAllocation; // Total tokens allocated for reserved and bonuses
    uint256 public totalLoadedRefund; // Total ether will be loaded to contract for refund
    uint256 public totalRefundedAmount; // Total ether refunded to investors

    event Approval(address indexed owner, address indexed spender, uint256 value); // ERC20 standard event
    event Transfer(address indexed from, address indexed to, uint256 value); // ERC20 standard event

    event ModifyWhiteList(address investorAddress, bool isWhiteListed);  // Add or remove investor's address to or from white list
    event ModifyPrivateList(address investorAddress, bool isPrivateListed);  // Add or remove investor's address to or from private list
    event StartPrivateSales(uint state); // Start private sales
    event StartPresales(uint state); // Start presales
    event EndPresales(uint state); // End presales
    event StartICO(uint state); // Start ICO sales
    event EndICO(uint state); // End ICO sales
    
    event SetPrivateSalePrice(uint256 price); // Set private sale price
    event SetPreSalePrice(uint256 price); // Set presale price
    event SetICOPrice(uint256 price); // Set ICO standard price
    
    event IssueTokens(address investorAddress, uint256 amount, uint256 tokenAmount, uint state); // Issue tokens to investor
    event RevokeTokens(address investorAddress, uint256 amount, uint256 tokenAmount, uint256 txFee); // Revoke tokens after ending ICO for incompleted KYC investors
    event AllocateTokensForFounder(address founderAddress, uint256 founderAllocatedTime, uint256 tokenAmount); // Allocate tokens to founders' address
    event AllocateTokensForTeam(address teamAddress, uint256 teamAllocatedTime, uint256 tokenAmount); // Allocate tokens to team's address
    event AllocateReservedTokens(address reservedAddress, uint256 tokenAmount); // Allocate reserved tokens
    event Refund(address investorAddress, uint256 etherRefundedAmount, uint256 tokensRevokedAmount); // Refund ether and revoke tokens for investors

    modifier isActive() {
        require(inActive == false);
        _;
    }

    modifier isInSale() {
        require(isSelling == true);
        _;
    }

    modifier transferable() {
        require(isTransferable == true);
        _;
    }

    modifier onlyOwnerOrAdminOrPortal() {
        require(msg.sender == owner || msg.sender == adminAddress || msg.sender == portalAddress);
        _;
    }

    modifier onlyOwnerOrAdmin() {
        require(msg.sender == owner || msg.sender == adminAddress);
        _;
    }

    function GreenX(address _walletAddr, address _adminAddr, address _portalAddr) public Owner(msg.sender) {
        require(_walletAddr != address(0));
        require(_adminAddr != address(0));
        require(_portalAddr != address(0));
		
        walletAddress = _walletAddr;
        adminAddress = _adminAddr;
        portalAddress = _portalAddr;
        inActive = true;
        totalInvestedAmount = 0;
        totalRemainingTokensForSales = salesAllocation;
        totalReservedAndBonusTokenAllocation = reservedAllocation + bonusAllocation;
    }

    // Fallback function for token purchasing  
    function () external payable isActive isInSale {
        uint state = getCurrentState();
        require(state >= IN_PRIVATE_SALE && state < END_SALE);
        require(msg.value >= minInvestedAmount);

        bool isPrivate = privateList[msg.sender];
        if (isPrivate == true) {
            return issueTokensForPrivateInvestor(state);
        }
        if (state == IN_PRESALE) {
            return issueTokensForPresale(state);
        }
        if (IN_1ST_ICO <= state && state <= IN_3RD_ICO) {
            return issueTokensForICO(state);
        }
        revert();
    }

    // Load ether amount to contract for refunding or revoking
    function loadFund() external payable {
        require(msg.value > 0);
		
        totalLoadedRefund = totalLoadedRefund.add(msg.value);
    }

    // ERC20 standard function
    function transfer(address _to, uint256 _value) external transferable returns (bool) {
        require(_to != address(0));
        require(_value > 0);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    // ERC20 standard function
    function transferFrom(address _from, address _to, uint256 _value) external transferable returns (bool) {
        require(_to != address(0));
        require(_from != address(0));
        require(_value > 0);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    // ERC20 standard function
    function approve(address _spender, uint256 _value) external transferable returns (bool) {
        require(_spender != address(0));
        require(_value > 0);
		
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // Modify white list
    function modifyWhiteList(address[] _investorAddrs, bool _isWhiteListed) external isActive onlyOwnerOrAdminOrPortal returns(bool) {
        for (uint256 i = 0; i < _investorAddrs.length; i++) {
            whiteList[_investorAddrs[i]] = _isWhiteListed;
            emit ModifyWhiteList(_investorAddrs[i], _isWhiteListed);
        }
        return true;
    }

    // Modify private list
    function modifyPrivateList(address[] _investorAddrs, bool _isPrivateListed) external isActive onlyOwnerOrAdminOrPortal returns(bool) {
        for (uint256 i = 0; i < _investorAddrs.length; i++) {
            privateList[_investorAddrs[i]] = _isPrivateListed;
            emit ModifyPrivateList(_investorAddrs[i], _isPrivateListed);
        }
        return true;
    }

    // Start private sales
    function startPrivateSales() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState == NOT_SALE);
        require(privateSalePrice > 0);
		
        saleState = IN_PRIVATE_SALE;
        isSelling = true;
        emit StartPrivateSales(saleState);
        return true;
    }

    // Start presales
    function startPreSales() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState < IN_PRESALE);
        require(preSalePrice > 0);
		
        saleState = IN_PRESALE;
        isSelling = true;
        emit StartPresales(saleState);
        return true;
    }

    // End presales
    function endPreSales() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState == IN_PRESALE);
		
        saleState = END_PRESALE;
        isSelling = false;
        emit EndPresales(saleState);
        return true;
    }

    // Start ICO
    function startICO() external isActive onlyOwnerOrAdmin returns (bool) {
        require(saleState == END_PRESALE);
        require(icoStandardPrice > 0);
		
        saleState = IN_1ST_ICO;
        icoStartTime = now;
        isSelling = true;
        emit StartICO(saleState);
        return true;
    }

    // End ICO
    function endICO() external isActive onlyOwnerOrAdmin returns (bool) {
        require(getCurrentState() == IN_3RD_ICO);
        require(icoEndTime == 0);
		
        saleState = END_SALE;
        isSelling = false;
        icoEndTime = now;
        emit EndICO(saleState);
        return true;
    }

    // Set private sales price
    function setPrivateSalePrice(uint256 _tokenPerEther) external onlyOwnerOrAdmin returns(bool) {
        require(_tokenPerEther > 0);
		
        privateSalePrice = _tokenPerEther;
        emit SetPrivateSalePrice(privateSalePrice);
        return true;
    }

    // Set presales price
    function setPreSalePrice(uint256 _tokenPerEther) external onlyOwnerOrAdmin returns(bool) {
        require(_tokenPerEther > 0);
		
        preSalePrice = _tokenPerEther;
        emit SetPreSalePrice(preSalePrice);
        return true;
    }

    // Set ICO price including ICO standard price, ICO 1st round price, ICO 2nd round price
    function setICOPrice(uint256 _tokenPerEther) external onlyOwnerOrAdmin returns(bool) {
        require(_tokenPerEther > 0);
		
        icoStandardPrice = _tokenPerEther;
        ico1stPrice = _tokenPerEther + _tokenPerEther * 20 / 100;
        ico2ndPrice = _tokenPerEther + _tokenPerEther * 10 / 100;
        emit SetICOPrice(icoStandardPrice);
        return true;
    }

    // Revoke tokens from incompleted KYC investors' addresses
    function revokeTokens(address _noneKycAddr, uint256 _transactionFee) external onlyOwnerOrAdmin {
        require(_noneKycAddr != address(0));
        uint256 investedAmount = totalInvestedAmountOf[_noneKycAddr];
        uint256 totalRemainingRefund = totalLoadedRefund.sub(totalRefundedAmount);
        require(whiteList[_noneKycAddr] == false && privateList[_noneKycAddr] == false);
        require(investedAmount > 0);
        require(totalRemainingRefund >= investedAmount);
        require(saleState == END_SALE);
		
        uint256 refundAmount = investedAmount.sub(_transactionFee);
        uint tokenRevoked = balances[_noneKycAddr];
        totalInvestedAmountOf[_noneKycAddr] = 0;
        balances[_noneKycAddr] = 0;
        totalRemainingTokensForSales = totalRemainingTokensForSales.add(tokenRevoked);
        totalRefundedAmount = totalRefundedAmount.add(refundAmount);
        _noneKycAddr.transfer(refundAmount);
        emit RevokeTokens(_noneKycAddr, refundAmount, tokenRevoked, _transactionFee);
    }    

    // Investors can claim ether refund if total raised fund doesn't reach our softcap
    function refund() external {
        uint256 refundedAmount = totalInvestedAmountOf[msg.sender];
        uint256 totalRemainingRefund = totalLoadedRefund.sub(totalRefundedAmount);
        uint256 tokenRevoked = balances[msg.sender];
        require(saleState == END_SALE);
        require(!isSoftCapReached());
        require(totalRemainingRefund >= refundedAmount && refundedAmount > 0);
		
        totalInvestedAmountOf[msg.sender] = 0;
        balances[msg.sender] = 0;
        totalRemainingTokensForSales = totalRemainingTokensForSales.add(tokenRevoked);
        totalRefundedAmount = totalRefundedAmount.add(refundedAmount);
        msg.sender.transfer(refundedAmount);
        emit Refund(msg.sender, refundedAmount, tokenRevoked);
    }    

    // Activate token sale function
    function activate() external onlyOwner {
        inActive = false;
    }

    // Deacivate token sale function
    function deActivate() external onlyOwner {
        inActive = true;
    }

    // Enable transfer feature of tokens
    function enableTokenTransfer() external isActive onlyOwner {
        isTransferable = true;
    }

    // Modify wallet
    function changeWallet(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(walletAddress != _newAddress);
        walletAddress = _newAddress;
    }

    // Modify admin
    function changeAdminAddress(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(adminAddress != _newAddress);
        adminAddress = _newAddress;
    }

    // Modify portal
    function changePortalAddress(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(portalAddress != _newAddress);
        portalAddress = _newAddress;
    }
  
    // Modify founder address to receive founder tokens allocation
    function changeFounderAddress(address _newAddress) external onlyOwnerOrAdmin {
        require(_newAddress != address(0));
        require(founderAddress != _newAddress);
        founderAddress = _newAddress;
    }

    // Modify team address to receive team tokens allocation
    function changeTeamAddress(address _newAddress) external onlyOwnerOrAdmin {
        require(_newAddress != address(0));
        require(teamAddress != _newAddress);
        teamAddress = _newAddress;
    }

    // Allocate tokens for founder vested gradually for 1 year
    function allocateTokensForFounder() external isActive onlyOwnerOrAdmin {
        require(saleState == END_SALE);
        require(founderAddress != address(0));
        uint256 amount;
        if (founderAllocatedTime == 1) {
            amount = founderAllocation * 20/100;
            balances[founderAddress] = balances[founderAddress].add(amount);
            emit AllocateTokensForFounder(founderAddress, founderAllocatedTime, amount);
            founderAllocatedTime = 2;
            return;
        }
        if (founderAllocatedTime == 2) {
            require(now >= icoEndTime + lockPeriod1);
            amount = founderAllocation * 30/100;
            balances[founderAddress] = balances[founderAddress].add(amount);
            emit AllocateTokensForFounder(founderAddress, founderAllocatedTime, amount);
            founderAllocatedTime = 3;
            return;
        }
        if (founderAllocatedTime == 3) {
            require(now >= icoEndTime + lockPeriod2);
            amount = founderAllocation * 50/100;
            balances[founderAddress] = balances[founderAddress].add(amount);
            emit AllocateTokensForFounder(founderAddress, founderAllocatedTime, amount);
            founderAllocatedTime = 4;
            return;
        }
        revert();
    }

    // Allocate tokens for team vested gradually for 1 year
    function allocateTokensForTeam() external isActive onlyOwnerOrAdmin {
        require(saleState == END_SALE);
        require(teamAddress != address(0));
        uint256 amount;
        if (teamAllocatedTime == 1) {
            amount = teamAllocation * 20/100;
            balances[teamAddress] = balances[teamAddress].add(amount);
            emit AllocateTokensForTeam(teamAddress, teamAllocatedTime, amount);
            teamAllocatedTime = 2;
            return;
        }
        if (teamAllocatedTime == 2) {
            require(now >= icoEndTime + lockPeriod1);
            amount = teamAllocation * 30/100;
            balances[teamAddress] = balances[teamAddress].add(amount);
            emit AllocateTokensForTeam(teamAddress, teamAllocatedTime, amount);
            teamAllocatedTime = 3;
            return;
        }
        if (teamAllocatedTime == 3) {
            require(now >= icoEndTime + lockPeriod2);
            amount = teamAllocation * 50/100;
            balances[teamAddress] = balances[teamAddress].add(amount);
            emit AllocateTokensForTeam(teamAddress, teamAllocatedTime, amount);
            teamAllocatedTime = 4;
            return;
        }
        revert();
    }

    // Remaining tokens for sales will be locked by contract in 2 years
    function allocateRemainingTokens(address _addr) external isActive onlyOwnerOrAdmin {
        require(_addr != address(0));
        require(saleState == END_SALE);
        require(totalRemainingTokensForSales > 0);
        require(now >= icoEndTime + lockPeriod3);
        balances[_addr] = balances[_addr].add(totalRemainingTokensForSales);
        totalRemainingTokensForSales = 0;
    }

    // Allocate reserved tokens
    function allocateReservedTokens(address _addr, uint _amount) external isActive onlyOwnerOrAdmin {
        require(saleState == END_SALE);
        require(_amount > 0);
        require(_addr != address(0));
		
        balances[_addr] = balances[_addr].add(_amount);
        totalReservedAndBonusTokenAllocation = totalReservedAndBonusTokenAllocation.sub(_amount);
        emit AllocateReservedTokens(_addr, _amount);
    }

    // ERC20 standard function
    function allowance(address _owner, address _spender) external constant returns (uint256) {
        return allowed[_owner][_spender];
    }

    // ERC20 standard function
    function balanceOf(address _owner) external constant returns (uint256 balance) {
        return balances[_owner];
    }

    // Get current sales state
    function getCurrentState() public view returns(uint256) {
        if (saleState == IN_1ST_ICO) {
            if (now > icoStartTime + 30 days) {
                return IN_3RD_ICO;
            }
            if (now > icoStartTime + 15 days) {
                return IN_2ND_ICO;
            }
            return IN_1ST_ICO;
        }
        return saleState;
    }

    // Get softcap reaching status
    function isSoftCapReached() public view returns (bool) {
        return totalInvestedAmount >= minInvestedCap;
    }

    // Issue tokens to private investors
    function issueTokensForPrivateInvestor(uint _state) private {
        uint256 price = privateSalePrice;
        issueTokens(price, _state);
    }

    // Issue tokens to normal investors in presales
    function issueTokensForPresale(uint _state) private {
        uint256 price = preSalePrice;
        issueTokens(price, _state);
    }

    // Issue tokens to normal investors through ICO rounds
    function issueTokensForICO(uint _state) private {
        uint256 price = icoStandardPrice;
        if (_state == IN_1ST_ICO) {
            price = ico1stPrice;
        } else if (_state == IN_2ND_ICO) {
            price = ico2ndPrice;
        }
        issueTokens(price, _state);
    }

    // Issue tokens to investors and transfer ether to wallet
    function issueTokens(uint256 _price, uint _state) private {
        require(walletAddress != address(0));
		
        uint tokenAmount = msg.value.mul(_price).mul(10**18).div(1 ether);
        balances[msg.sender] = balances[msg.sender].add(tokenAmount);
        totalInvestedAmountOf[msg.sender] = totalInvestedAmountOf[msg.sender].add(msg.value);
        totalRemainingTokensForSales = totalRemainingTokensForSales.sub(tokenAmount);
        totalInvestedAmount = totalInvestedAmount.add(msg.value);
        walletAddress.transfer(msg.value);
        emit IssueTokens(msg.sender, msg.value, tokenAmount, _state);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"loadFund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"bonusAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reservedAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeAdminAddress","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":"teamAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeFounderAddress","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":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenPerEther","type":"uint256"}],"name":"setICOPrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"salesAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whiteList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentState","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeTeamAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ico1stPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLoadedRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founderAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endICO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"allocateReservedTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startPrivateSales","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocateTokensForTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoStandardPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"allocateRemainingTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"walletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_noneKycAddr","type":"address"},{"name":"_transactionFee","type":"uint256"}],"name":"revokeTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"totalInvestedAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenPerEther","type":"uint256"}],"name":"setPrivateSalePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenPerEther","type":"uint256"}],"name":"setPreSalePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_investorAddrs","type":"address[]"},{"name":"_isPrivateListed","type":"bool"}],"name":"modifyPrivateList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isSoftCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founderAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startPreSales","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"privateList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalReservedAndBonusTokenAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changeWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"changePortalAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"portalAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerAddr","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalRemainingTokensForSales","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico2ndPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investorAddrs","type":"address[]"},{"name":"_isWhiteListed","type":"bool"}],"name":"modifyWhiteList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isSelling","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRefundedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateTokensForFounder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founderAllocatedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minInvestedCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endPreSales","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"preSalePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamAllocatedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"privateSalePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"inActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deActivate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_walletAddr","type":"address"},{"name":"_adminAddr","type":"address"},{"name":"_portalAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"isWhiteListed","type":"bool"}],"name":"ModifyWhiteList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"isPrivateListed","type":"bool"}],"name":"ModifyPrivateList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"StartPrivateSales","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"StartPresales","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"EndPresales","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"StartICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"state","type":"uint256"}],"name":"EndICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"}],"name":"SetPrivateSalePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"}],"name":"SetPreSalePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"price","type":"uint256"}],"name":"SetICOPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"state","type":"uint256"}],"name":"IssueTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"txFee","type":"uint256"}],"name":"RevokeTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"founderAddress","type":"address"},{"indexed":false,"name":"founderAllocatedTime","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"AllocateTokensForFounder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"teamAddress","type":"address"},{"indexed":false,"name":"teamAllocatedTime","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"AllocateTokensForTeam","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reservedAddress","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"AllocateReservedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investorAddress","type":"address"},{"indexed":false,"name":"etherRefundedAmount","type":"uint256"},{"indexed":false,"name":"tokensRevokedAmount","type":"uint256"}],"name":"Refund","type":"event"}]

606060405260016010556001601155341561001957600080fd5b604051606080612a6a83398101604052808051919060200180519190602001805160008054600160a060020a03191633600160a060020a039081169190911790915590925084161515905061006d57600080fd5b600160a060020a038216151561008257600080fd5b600160a060020a038116151561009757600080fd5b60058054600160a060020a03948516600160a060020a031991821617909155600480549385169382169390931790925560038054919093169116179055600f805460ff191660011790556000600c556a9b18ab5df7180b6b8000006017556a69772cd97f1059af800000601855612957806101136000396000f30060606040526004361061032c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663011468448114610407578063016211b51461041157806306fdde031461043657806309522d7f146104c0578063095ea7b3146104d35780630f15f4c0146105095780631021688f1461051c57806318160ddd1461053b5780631c75f0851461054e5780632121dc751461057d5780632272df671461059057806323b872dd146105af57806325b5160c146105d7578063313ce567146105ed5780633281c4e114610600578063372c12b114610613578063378aa701146106325780633a764462146106455780633aee69bb146106585780633b2707101461067757806345abc0631461068a57806346bb28331461069d5780634f248409146106b05780635185b724146106c357806357257a67146106e5578063590e1ae3146106f8578063614939b21461070b5780636175adee1461071e57806363db30e814610731578063672e20fe146107445780636816521a146107635780636ad5b3ea1461077657806370a0823114610789578063721a37d2146107a85780637904586e146107ca5780637bc36e04146107e95780637d7eee42146107ff5780637dbc1d6f146108155780637e1055b6146108395780637fa8c1581461084c57806380d32f851461085f578063824338bd146104115780638da5cb5b146108725780638f0a4c1b1461088557806394667c171461089857806395d89b41146108b75780639743ad98146108ca57806398b9a2dc146108dd5780639b30c7db146108fc578063a172db061461091b578063a6f9dae11461092e578063a7c3d71b1461094d578063a9059cbb14610960578063aaff2a8314610982578063b8bcf6c914610995578063cadb1166146109a8578063cbf21837146109cc578063cd1e0355146109df578063d128fc20146109f2578063d8ee796f14610a05578063dccbfa2a14610a18578063dd62ed3e14610a2b578063e5de292514610a50578063e757c17d14610a63578063f461db0e14610a76578063f560d41514610a89578063f97a02fa14610a9c578063fc6f946814610aaf578063ff895a6214610ac2575b600f54600090819060ff161561034157600080fd5b600f5460ff61010090910416151560011461035b57600080fd5b610363610ad5565b9150600182101580156103765750600782105b151561038157600080fd5b67016345785d8a000034101561039657600080fd5b50600160a060020a03331660009081526008602052604090205460ff16801515600114156103cc576103c782610b20565b610403565b60028214156103de576103c782610b31565b816004111580156103f0575060068211155b156103fe576103c782610b3e565b600080fd5b5050005b61040f610b6b565b005b341561041c57600080fd5b610424610b90565b60405190815260200160405180910390f35b341561044157600080fd5b610449610b9f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561048557808201518382015260200161046d565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cb57600080fd5b610424610bd6565b34156104de57600080fd5b6104f5600160a060020a0360043516602435610be5565b604051901515815260200160405180910390f35b341561051457600080fd5b61040f610c8d565b341561052757600080fd5b61040f600160a060020a0360043516610cb4565b341561054657600080fd5b610424610d2e565b341561055957600080fd5b610561610d3e565b604051600160a060020a03909116815260200160405180910390f35b341561058857600080fd5b6104f5610d4d565b341561059b57600080fd5b61040f600160a060020a0360043516610d5c565b34156105ba57600080fd5b6104f5600160a060020a0360043581169060243516604435610df1565b34156105e257600080fd5b6104f5600435610f58565b34156105f857600080fd5b610424610ff3565b341561060b57600080fd5b610424610ff8565b341561061e57600080fd5b6104f5600160a060020a0360043516611007565b341561063d57600080fd5b610424610ad5565b341561065057600080fd5b61040f61101c565b341561066357600080fd5b61040f600160a060020a036004351661105a565b341561068257600080fd5b6104246110ef565b341561069557600080fd5b6104246110f5565b34156106a857600080fd5b6105616110fb565b34156106bb57600080fd5b6104f561110a565b34156106ce57600080fd5b61040f600160a060020a03600435166024356111c3565b34156106f057600080fd5b6104f56112da565b341561070357600080fd5b61040f61138f565b341561071657600080fd5b61040f6114fe565b341561072957600080fd5b6104246117fc565b341561073c57600080fd5b610424611802565b341561074f57600080fd5b61040f600160a060020a036004351661180e565b341561076e57600080fd5b6104246118ea565b341561078157600080fd5b6105616118f9565b341561079457600080fd5b610424600160a060020a0360043516611908565b34156107b357600080fd5b61040f600160a060020a0360043516602435611923565b34156107d557600080fd5b610424600160a060020a0360043516611b29565b34156107f457600080fd5b6104f5600435611b3b565b341561080a57600080fd5b6104f5600435611bbf565b341561082057600080fd5b6104f56024600480358281019291013590351515611c43565b341561084457600080fd5b610424611d69565b341561085757600080fd5b6104f5611d6f565b341561086a57600080fd5b6104f5611e2a565b341561087d57600080fd5b610561611e3d565b341561089057600080fd5b6104f5611e4c565b34156108a357600080fd5b6104f5600160a060020a0360043516611f04565b34156108c257600080fd5b610449611f19565b34156108d557600080fd5b610424611f50565b34156108e857600080fd5b61040f600160a060020a0360043516611f56565b341561090757600080fd5b61040f600160a060020a0360043516611fd0565b341561092657600080fd5b61056161204a565b341561093957600080fd5b61040f600160a060020a0360043516612059565b341561095857600080fd5b6104246120b8565b341561096b57600080fd5b6104f5600160a060020a03600435166024356120be565b341561098d57600080fd5b6104246121bc565b34156109a057600080fd5b6104246121c2565b34156109b357600080fd5b6104f560246004803582810192910135903515156121c8565b34156109d757600080fd5b6104f56122e3565b34156109ea57600080fd5b6104246122f1565b34156109fd57600080fd5b61040f6122f7565b3415610a1057600080fd5b6104246125f6565b3415610a2357600080fd5b6104246125fc565b3415610a3657600080fd5b610424600160a060020a0360043581169060243516612609565b3415610a5b57600080fd5b6104f5612634565b3415610a6e57600080fd5b6104246126d7565b3415610a8157600080fd5b6104246126dd565b3415610a9457600080fd5b6104246126e3565b3415610aa757600080fd5b6104f56126e9565b3415610aba57600080fd5b6105616126f2565b3415610acd57600080fd5b61040f612701565b60006004600b541415610b1857600d5462278d0001421115610af957506006610b1d565b600d546213c68001421115610b1057506005610b1d565b506004610b1d565b50600b545b90565b601254610b2d818361272b565b5050565b601354610b2d818361272b565b6014546004821415610b535750601554610b61565b6005821415610b6157506016545b610b2d818361272b565b60003411610b7857600080fd5b601954610b8b903463ffffffff6128bd16565b601955565b6a1f04ef12cb04cf1580000081565b60408051908101604052600681527f475245454e580000000000000000000000000000000000000000000000000000602082015281565b6a4a723dc6b40b8a9a00000081565b600f5460009062010000900460ff161515600114610c0257600080fd5b600160a060020a0383161515610c1757600080fd5b60008211610c2457600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005433600160a060020a03908116911614610ca857600080fd5b600f805460ff19169055565b60005433600160a060020a03908116911614610ccf57600080fd5b600160a060020a0381161515610ce457600080fd5b600454600160a060020a0382811691161415610cff57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6b01363156bbee3016d700000081565b600754600160a060020a031681565b600f5462010000900460ff1681565b60005433600160a060020a0390811691161480610d87575060045433600160a060020a039081169116145b1515610d9257600080fd5b600160a060020a0381161515610da757600080fd5b600654600160a060020a0382811691161415610dc257600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f5460009062010000900460ff161515600114610e0e57600080fd5b600160a060020a0383161515610e2357600080fd5b600160a060020a0384161515610e3857600080fd5b60008211610e4557600080fd5b600160a060020a038416600090815260016020526040902054610e6e908363ffffffff6128d716565b600160a060020a038086166000908152600160205260408082209390935590851681522054610ea3908363ffffffff6128bd16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610eeb908363ffffffff6128d716565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b6000805433600160a060020a0390811691161480610f84575060045433600160a060020a039081169116145b1515610f8f57600080fd5b60008211610f9c57600080fd5b601482815560649083028190048301601555600a83020482016016557f1c1b18768492f25670993e4eaf1a7d17a8abe51d71b27bc5c1255e40d2d506a88260405190815260200160405180910390a1506001919050565b601281565b6a9b18ab5df7180b6b80000081565b60096020526000908152604090205460ff1681565b600f5460ff161561102c57600080fd5b60005433600160a060020a0390811691161461104757600080fd5b600f805462ff0000191662010000179055565b60005433600160a060020a0390811691161480611085575060045433600160a060020a039081169116145b151561109057600080fd5b600160a060020a03811615156110a557600080fd5b600754600160a060020a03828116911614156110c057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60155481565b60195481565b600654600160a060020a031681565b600f5460009060ff161561111d57600080fd5b60005433600160a060020a0390811691161480611148575060045433600160a060020a039081169116145b151561115357600080fd5b600661115d610ad5565b1461116757600080fd5b600e541561117457600080fd5b6007600b819055600f805461ff001916905542600e557fe4aa5e3f9012723c200a69efdcca855ae09af7d70992cc420cce249fee0e09999060405190815260200160405180910390a150600190565b600f5460ff16156111d357600080fd5b60005433600160a060020a03908116911614806111fe575060045433600160a060020a039081169116145b151561120957600080fd5b600b5460071461121857600080fd5b6000811161122557600080fd5b600160a060020a038216151561123a57600080fd5b600160a060020a038216600090815260016020526040902054611263908263ffffffff6128bd16565b600160a060020a03831660009081526001602052604090205560185461128f908263ffffffff6128d716565b6018557f47a75aa311e7576c9a07da850c14f42ffe2864978d7f025084839a75bdcbdac68282604051600160a060020a03909216825260208201526040908101905180910390a15050565b600f5460009060ff16156112ed57600080fd5b60005433600160a060020a0390811691161480611318575060045433600160a060020a039081169116145b151561132357600080fd5b600b541561133057600080fd5b6012546000901161134057600080fd5b6001600b819055600f805461ff0019166101001790557f5ebe2a136ed26a0536b4b57e5f58a9572b864fc0e2c28189338f855e82f4a8809060405190815260200160405180910390a150600190565b600160a060020a0333166000908152600a6020526040812054601a5460195491929182916113c3919063ffffffff6128d716565b600160a060020a033316600090815260016020526040902054600b5491935091506007146113f057600080fd5b6113f8611e2a565b1561140257600080fd5b8282101580156114125750600083115b151561141d57600080fd5b600160a060020a0333166000908152600a602090815260408083208390556001909152812055601754611456908263ffffffff6128bd16565b601755601a5461146c908463ffffffff6128bd16565b601a55600160a060020a03331683156108fc0284604051600060405180830381858888f1935050505015156114a057600080fd5b7f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb63384836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1505050565b600f5460009060ff161561151157600080fd5b60005433600160a060020a039081169116148061153c575060045433600160a060020a039081169116145b151561154757600080fd5b600b5460071461155657600080fd5b600754600160a060020a0316151561156d57600080fd5b6011546001141561163a5750600754600160a060020a03166000908152600160205260409020546a03b8e97d229a2d54800000906115ab90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026011556117f9565b6011546002141561171b57600e5462ed4e000142101561165957600080fd5b50600754600160a060020a03166000908152600160205260409020546a05955e3bb3e743fec000009061168c90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036011556117f9565b601154600314156103fe57600e546301e133800142101561173b57600080fd5b50600754600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061176e90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046011555b50565b60145481565b67016345785d8a000081565b600f5460ff161561181e57600080fd5b60005433600160a060020a0390811691161480611849575060045433600160a060020a039081169116145b151561185457600080fd5b600160a060020a038116151561186957600080fd5b600b5460071461187857600080fd5b6017546000901161188857600080fd5b600e546303c267000142101561189d57600080fd5b601754600160a060020a0382166000908152600160205260409020546118c89163ffffffff6128bd16565b600160a060020a03909116600090815260016020526040812091909155601755565b6a129c8f71ad02e2a680000081565b600554600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000805481908190819033600160a060020a0390811691161480611955575060045433600160a060020a039081169116145b151561196057600080fd5b600160a060020a038616151561197557600080fd5b600160a060020a0386166000908152600a6020526040902054601a546019549195506119a7919063ffffffff6128d716565b600160a060020a03871660009081526009602052604090205490935060ff161580156119ec5750600160a060020a03861660009081526008602052604090205460ff16155b15156119f757600080fd5b60008411611a0457600080fd5b83831015611a1157600080fd5b600b54600714611a2057600080fd5b611a30848663ffffffff6128d716565b600160a060020a03871660009081526001602081815260408084208054600a8452918520859055929091529190556017549193509150611a76908263ffffffff6128bd16565b601755601a54611a8c908363ffffffff6128bd16565b601a55600160a060020a03861682156108fc0283604051600060405180830381858888f193505050501515611ac057600080fd5b7f93a5f013fdf43488abc44180f39d6f98e31c536f8031892b504b4d026f183005868383886040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050565b600a6020526000908152604090205481565b6000805433600160a060020a0390811691161480611b67575060045433600160a060020a039081169116145b1515611b7257600080fd5b60008211611b7f57600080fd5b60128290557f447105d8c5aaefb2a2528c3796a44fbfc119b233a07c42b562bf2178c64ee3b38260405190815260200160405180910390a1506001919050565b6000805433600160a060020a0390811691161480611beb575060045433600160a060020a039081169116145b1515611bf657600080fd5b60008211611c0357600080fd5b60138290557ffae1c2f6e0b1d0c4880258de0c98c029a11b02f47a050cdc8f0b73c84997fac68260405190815260200160405180910390a1506001919050565b600f54600090819060ff1615611c5857600080fd5b60005433600160a060020a0390811691161480611c83575060045433600160a060020a039081169116145b80611c9c575060035433600160a060020a039081169116145b1515611ca757600080fd5b5060005b83811015611d5e578260086000878785818110611cc457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557f99f0622dbc6cbfb57e866310f623d630f56d8a15df9efc92d652597a67998936858583818110611d2257fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101611cab565b506001949350505050565b600e5481565b600f5460009060ff1615611d8257600080fd5b60005433600160a060020a0390811691161480611dad575060045433600160a060020a039081169116145b1515611db857600080fd5b600b54600314611dc757600080fd5b60145460009011611dd757600080fd5b6004600b81905542600d55600f805461ff0019166101001790557f87fcd7085eaabc2418e6a12ac5497cf18368bf4ad51215e24fd4782fa0c0ba579060405190815260200160405180910390a150600190565b600c5468878678326eac90000090101590565b600054600160a060020a031681565b600f5460009060ff1615611e5f57600080fd5b60005433600160a060020a0390811691161480611e8a575060045433600160a060020a039081169116145b1515611e9557600080fd5b600b5460029010611ea557600080fd5b60135460009011611eb557600080fd5b6002600b819055600f805461ff0019166101001790557f99846a702db09e5ce6d90e693e7704540309346ca5b7656fdd438014448394369060405190815260200160405180910390a150600190565b60086020526000908152604090205460ff1681565b60408051908101604052600381527f4745580000000000000000000000000000000000000000000000000000000000602082015281565b60185481565b60005433600160a060020a03908116911614611f7157600080fd5b600160a060020a0381161515611f8657600080fd5b600554600160a060020a0382811691161415611fa157600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614611feb57600080fd5b600160a060020a038116151561200057600080fd5b600354600160a060020a038281169116141561201b57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60005433600160a060020a0390811691161461207457600080fd5b600160a060020a038116151561208957600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b600f5460009062010000900460ff1615156001146120db57600080fd5b600160a060020a03831615156120f057600080fd5b600082116120fd57600080fd5b600160a060020a033316600090815260016020526040902054612126908363ffffffff6128d716565b600160a060020a03338116600090815260016020526040808220939093559085168152205461215b908363ffffffff6128bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60175481565b60165481565b600f54600090819060ff16156121dd57600080fd5b60005433600160a060020a0390811691161480612208575060045433600160a060020a039081169116145b80612221575060035433600160a060020a039081169116145b151561222c57600080fd5b5060005b83811015611d5e57826009600087878581811061224957fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557ffbd9b2cc58ba714cd80b8b0a1c8a6d313a1e20563cf72561feeee6d0d96769bd8585838181106122a757fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101612230565b600f54610100900460ff1681565b601a5481565b600f5460009060ff161561230a57600080fd5b60005433600160a060020a0390811691161480612335575060045433600160a060020a039081169116145b151561234057600080fd5b600b5460071461234f57600080fd5b600654600160a060020a0316151561236657600080fd5b601054600114156124335750600654600160a060020a03166000908152600160205260409020546a06342fd08f00f637800000906123a490826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026010556117f9565b6010546002141561251457600e5462ed4e000142101561245257600080fd5b50600654600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061248590826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036010556117f9565b601054600314156103fe57600e546301e133800142101561253457600080fd5b50600654600160a060020a03166000908152600160205260409020546a0f8277896582678ac000009061256790826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046010556117f9565b60105481565b68878678326eac90000081565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600f5460009060ff161561264757600080fd5b60005433600160a060020a0390811691161480612672575060045433600160a060020a039081169116145b151561267d57600080fd5b600b5460021461268c57600080fd5b6003600b819055600f805461ff00191690557fce3379d8b8f0dac11fa9828e90d4a59c304a02c0e58ea05a97cf282eeccbe2209060405190815260200160405180910390a150600190565b60135481565b60115481565b60125481565b600f5460ff1681565b600454600160a060020a031681565b60005433600160a060020a0390811691161461271c57600080fd5b600f805460ff19166001179055565b600554600090600160a060020a0316151561274557600080fd5b61277d670de0b6b3a764000061277181612765348863ffffffff6128e916565b9063ffffffff6128e916565b9063ffffffff61291416565b600160a060020a0333166000908152600160205260409020549091506127a9908263ffffffff6128bd16565b600160a060020a033316600090815260016020908152604080832093909355600a905220546127de903463ffffffff6128bd16565b600160a060020a0333166000908152600a602052604090205560175461280a908263ffffffff6128d716565b601755600c54612820903463ffffffff6128bd16565b600c55600554600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561285757600080fd5b7f540c6de47939116ec4410c0212b0ac3a69886bf8f558dc04fb1360f6ebfea89b333483856040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000828201838110156128cc57fe5b8091505b5092915050565b6000828211156128e357fe5b50900390565b6000808315156128fc57600091506128d0565b5082820282848281151561290c57fe5b04146128cc57fe5b600080828481151561292257fe5b049493505050505600a165627a7a723058204acb42effb29e7894f54c6d80811a7abc7a295703993ad33143d29374f1c82cb002900000000000000000000000021253348a3bd6e3d5e979a1c508cdf8f57f92472000000000000000000000000542853a035133ebd1ab93b657252a3749d8c639a0000000000000000000000006de037bf6d5b933285711232330b933deafb16f5

Deployed Bytecode

0x60606040526004361061032c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663011468448114610407578063016211b51461041157806306fdde031461043657806309522d7f146104c0578063095ea7b3146104d35780630f15f4c0146105095780631021688f1461051c57806318160ddd1461053b5780631c75f0851461054e5780632121dc751461057d5780632272df671461059057806323b872dd146105af57806325b5160c146105d7578063313ce567146105ed5780633281c4e114610600578063372c12b114610613578063378aa701146106325780633a764462146106455780633aee69bb146106585780633b2707101461067757806345abc0631461068a57806346bb28331461069d5780634f248409146106b05780635185b724146106c357806357257a67146106e5578063590e1ae3146106f8578063614939b21461070b5780636175adee1461071e57806363db30e814610731578063672e20fe146107445780636816521a146107635780636ad5b3ea1461077657806370a0823114610789578063721a37d2146107a85780637904586e146107ca5780637bc36e04146107e95780637d7eee42146107ff5780637dbc1d6f146108155780637e1055b6146108395780637fa8c1581461084c57806380d32f851461085f578063824338bd146104115780638da5cb5b146108725780638f0a4c1b1461088557806394667c171461089857806395d89b41146108b75780639743ad98146108ca57806398b9a2dc146108dd5780639b30c7db146108fc578063a172db061461091b578063a6f9dae11461092e578063a7c3d71b1461094d578063a9059cbb14610960578063aaff2a8314610982578063b8bcf6c914610995578063cadb1166146109a8578063cbf21837146109cc578063cd1e0355146109df578063d128fc20146109f2578063d8ee796f14610a05578063dccbfa2a14610a18578063dd62ed3e14610a2b578063e5de292514610a50578063e757c17d14610a63578063f461db0e14610a76578063f560d41514610a89578063f97a02fa14610a9c578063fc6f946814610aaf578063ff895a6214610ac2575b600f54600090819060ff161561034157600080fd5b600f5460ff61010090910416151560011461035b57600080fd5b610363610ad5565b9150600182101580156103765750600782105b151561038157600080fd5b67016345785d8a000034101561039657600080fd5b50600160a060020a03331660009081526008602052604090205460ff16801515600114156103cc576103c782610b20565b610403565b60028214156103de576103c782610b31565b816004111580156103f0575060068211155b156103fe576103c782610b3e565b600080fd5b5050005b61040f610b6b565b005b341561041c57600080fd5b610424610b90565b60405190815260200160405180910390f35b341561044157600080fd5b610449610b9f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561048557808201518382015260200161046d565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104cb57600080fd5b610424610bd6565b34156104de57600080fd5b6104f5600160a060020a0360043516602435610be5565b604051901515815260200160405180910390f35b341561051457600080fd5b61040f610c8d565b341561052757600080fd5b61040f600160a060020a0360043516610cb4565b341561054657600080fd5b610424610d2e565b341561055957600080fd5b610561610d3e565b604051600160a060020a03909116815260200160405180910390f35b341561058857600080fd5b6104f5610d4d565b341561059b57600080fd5b61040f600160a060020a0360043516610d5c565b34156105ba57600080fd5b6104f5600160a060020a0360043581169060243516604435610df1565b34156105e257600080fd5b6104f5600435610f58565b34156105f857600080fd5b610424610ff3565b341561060b57600080fd5b610424610ff8565b341561061e57600080fd5b6104f5600160a060020a0360043516611007565b341561063d57600080fd5b610424610ad5565b341561065057600080fd5b61040f61101c565b341561066357600080fd5b61040f600160a060020a036004351661105a565b341561068257600080fd5b6104246110ef565b341561069557600080fd5b6104246110f5565b34156106a857600080fd5b6105616110fb565b34156106bb57600080fd5b6104f561110a565b34156106ce57600080fd5b61040f600160a060020a03600435166024356111c3565b34156106f057600080fd5b6104f56112da565b341561070357600080fd5b61040f61138f565b341561071657600080fd5b61040f6114fe565b341561072957600080fd5b6104246117fc565b341561073c57600080fd5b610424611802565b341561074f57600080fd5b61040f600160a060020a036004351661180e565b341561076e57600080fd5b6104246118ea565b341561078157600080fd5b6105616118f9565b341561079457600080fd5b610424600160a060020a0360043516611908565b34156107b357600080fd5b61040f600160a060020a0360043516602435611923565b34156107d557600080fd5b610424600160a060020a0360043516611b29565b34156107f457600080fd5b6104f5600435611b3b565b341561080a57600080fd5b6104f5600435611bbf565b341561082057600080fd5b6104f56024600480358281019291013590351515611c43565b341561084457600080fd5b610424611d69565b341561085757600080fd5b6104f5611d6f565b341561086a57600080fd5b6104f5611e2a565b341561087d57600080fd5b610561611e3d565b341561089057600080fd5b6104f5611e4c565b34156108a357600080fd5b6104f5600160a060020a0360043516611f04565b34156108c257600080fd5b610449611f19565b34156108d557600080fd5b610424611f50565b34156108e857600080fd5b61040f600160a060020a0360043516611f56565b341561090757600080fd5b61040f600160a060020a0360043516611fd0565b341561092657600080fd5b61056161204a565b341561093957600080fd5b61040f600160a060020a0360043516612059565b341561095857600080fd5b6104246120b8565b341561096b57600080fd5b6104f5600160a060020a03600435166024356120be565b341561098d57600080fd5b6104246121bc565b34156109a057600080fd5b6104246121c2565b34156109b357600080fd5b6104f560246004803582810192910135903515156121c8565b34156109d757600080fd5b6104f56122e3565b34156109ea57600080fd5b6104246122f1565b34156109fd57600080fd5b61040f6122f7565b3415610a1057600080fd5b6104246125f6565b3415610a2357600080fd5b6104246125fc565b3415610a3657600080fd5b610424600160a060020a0360043581169060243516612609565b3415610a5b57600080fd5b6104f5612634565b3415610a6e57600080fd5b6104246126d7565b3415610a8157600080fd5b6104246126dd565b3415610a9457600080fd5b6104246126e3565b3415610aa757600080fd5b6104f56126e9565b3415610aba57600080fd5b6105616126f2565b3415610acd57600080fd5b61040f612701565b60006004600b541415610b1857600d5462278d0001421115610af957506006610b1d565b600d546213c68001421115610b1057506005610b1d565b506004610b1d565b50600b545b90565b601254610b2d818361272b565b5050565b601354610b2d818361272b565b6014546004821415610b535750601554610b61565b6005821415610b6157506016545b610b2d818361272b565b60003411610b7857600080fd5b601954610b8b903463ffffffff6128bd16565b601955565b6a1f04ef12cb04cf1580000081565b60408051908101604052600681527f475245454e580000000000000000000000000000000000000000000000000000602082015281565b6a4a723dc6b40b8a9a00000081565b600f5460009062010000900460ff161515600114610c0257600080fd5b600160a060020a0383161515610c1757600080fd5b60008211610c2457600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005433600160a060020a03908116911614610ca857600080fd5b600f805460ff19169055565b60005433600160a060020a03908116911614610ccf57600080fd5b600160a060020a0381161515610ce457600080fd5b600454600160a060020a0382811691161415610cff57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6b01363156bbee3016d700000081565b600754600160a060020a031681565b600f5462010000900460ff1681565b60005433600160a060020a0390811691161480610d87575060045433600160a060020a039081169116145b1515610d9257600080fd5b600160a060020a0381161515610da757600080fd5b600654600160a060020a0382811691161415610dc257600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f5460009062010000900460ff161515600114610e0e57600080fd5b600160a060020a0383161515610e2357600080fd5b600160a060020a0384161515610e3857600080fd5b60008211610e4557600080fd5b600160a060020a038416600090815260016020526040902054610e6e908363ffffffff6128d716565b600160a060020a038086166000908152600160205260408082209390935590851681522054610ea3908363ffffffff6128bd16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610eeb908363ffffffff6128d716565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b6000805433600160a060020a0390811691161480610f84575060045433600160a060020a039081169116145b1515610f8f57600080fd5b60008211610f9c57600080fd5b601482815560649083028190048301601555600a83020482016016557f1c1b18768492f25670993e4eaf1a7d17a8abe51d71b27bc5c1255e40d2d506a88260405190815260200160405180910390a1506001919050565b601281565b6a9b18ab5df7180b6b80000081565b60096020526000908152604090205460ff1681565b600f5460ff161561102c57600080fd5b60005433600160a060020a0390811691161461104757600080fd5b600f805462ff0000191662010000179055565b60005433600160a060020a0390811691161480611085575060045433600160a060020a039081169116145b151561109057600080fd5b600160a060020a03811615156110a557600080fd5b600754600160a060020a03828116911614156110c057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60155481565b60195481565b600654600160a060020a031681565b600f5460009060ff161561111d57600080fd5b60005433600160a060020a0390811691161480611148575060045433600160a060020a039081169116145b151561115357600080fd5b600661115d610ad5565b1461116757600080fd5b600e541561117457600080fd5b6007600b819055600f805461ff001916905542600e557fe4aa5e3f9012723c200a69efdcca855ae09af7d70992cc420cce249fee0e09999060405190815260200160405180910390a150600190565b600f5460ff16156111d357600080fd5b60005433600160a060020a03908116911614806111fe575060045433600160a060020a039081169116145b151561120957600080fd5b600b5460071461121857600080fd5b6000811161122557600080fd5b600160a060020a038216151561123a57600080fd5b600160a060020a038216600090815260016020526040902054611263908263ffffffff6128bd16565b600160a060020a03831660009081526001602052604090205560185461128f908263ffffffff6128d716565b6018557f47a75aa311e7576c9a07da850c14f42ffe2864978d7f025084839a75bdcbdac68282604051600160a060020a03909216825260208201526040908101905180910390a15050565b600f5460009060ff16156112ed57600080fd5b60005433600160a060020a0390811691161480611318575060045433600160a060020a039081169116145b151561132357600080fd5b600b541561133057600080fd5b6012546000901161134057600080fd5b6001600b819055600f805461ff0019166101001790557f5ebe2a136ed26a0536b4b57e5f58a9572b864fc0e2c28189338f855e82f4a8809060405190815260200160405180910390a150600190565b600160a060020a0333166000908152600a6020526040812054601a5460195491929182916113c3919063ffffffff6128d716565b600160a060020a033316600090815260016020526040902054600b5491935091506007146113f057600080fd5b6113f8611e2a565b1561140257600080fd5b8282101580156114125750600083115b151561141d57600080fd5b600160a060020a0333166000908152600a602090815260408083208390556001909152812055601754611456908263ffffffff6128bd16565b601755601a5461146c908463ffffffff6128bd16565b601a55600160a060020a03331683156108fc0284604051600060405180830381858888f1935050505015156114a057600080fd5b7f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb63384836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1505050565b600f5460009060ff161561151157600080fd5b60005433600160a060020a039081169116148061153c575060045433600160a060020a039081169116145b151561154757600080fd5b600b5460071461155657600080fd5b600754600160a060020a0316151561156d57600080fd5b6011546001141561163a5750600754600160a060020a03166000908152600160205260409020546a03b8e97d229a2d54800000906115ab90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026011556117f9565b6011546002141561171b57600e5462ed4e000142101561165957600080fd5b50600754600160a060020a03166000908152600160205260409020546a05955e3bb3e743fec000009061168c90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036011556117f9565b601154600314156103fe57600e546301e133800142101561173b57600080fd5b50600754600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061176e90826128bd565b60078054600160a060020a03908116600090815260016020526040908190209390935590546011547fab07e736c87d6dc8c0a3e05a92d1cfb93c6458b35d2e365490f8b7cc9776ec04939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046011555b50565b60145481565b67016345785d8a000081565b600f5460ff161561181e57600080fd5b60005433600160a060020a0390811691161480611849575060045433600160a060020a039081169116145b151561185457600080fd5b600160a060020a038116151561186957600080fd5b600b5460071461187857600080fd5b6017546000901161188857600080fd5b600e546303c267000142101561189d57600080fd5b601754600160a060020a0382166000908152600160205260409020546118c89163ffffffff6128bd16565b600160a060020a03909116600090815260016020526040812091909155601755565b6a129c8f71ad02e2a680000081565b600554600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000805481908190819033600160a060020a0390811691161480611955575060045433600160a060020a039081169116145b151561196057600080fd5b600160a060020a038616151561197557600080fd5b600160a060020a0386166000908152600a6020526040902054601a546019549195506119a7919063ffffffff6128d716565b600160a060020a03871660009081526009602052604090205490935060ff161580156119ec5750600160a060020a03861660009081526008602052604090205460ff16155b15156119f757600080fd5b60008411611a0457600080fd5b83831015611a1157600080fd5b600b54600714611a2057600080fd5b611a30848663ffffffff6128d716565b600160a060020a03871660009081526001602081815260408084208054600a8452918520859055929091529190556017549193509150611a76908263ffffffff6128bd16565b601755601a54611a8c908363ffffffff6128bd16565b601a55600160a060020a03861682156108fc0283604051600060405180830381858888f193505050501515611ac057600080fd5b7f93a5f013fdf43488abc44180f39d6f98e31c536f8031892b504b4d026f183005868383886040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050565b600a6020526000908152604090205481565b6000805433600160a060020a0390811691161480611b67575060045433600160a060020a039081169116145b1515611b7257600080fd5b60008211611b7f57600080fd5b60128290557f447105d8c5aaefb2a2528c3796a44fbfc119b233a07c42b562bf2178c64ee3b38260405190815260200160405180910390a1506001919050565b6000805433600160a060020a0390811691161480611beb575060045433600160a060020a039081169116145b1515611bf657600080fd5b60008211611c0357600080fd5b60138290557ffae1c2f6e0b1d0c4880258de0c98c029a11b02f47a050cdc8f0b73c84997fac68260405190815260200160405180910390a1506001919050565b600f54600090819060ff1615611c5857600080fd5b60005433600160a060020a0390811691161480611c83575060045433600160a060020a039081169116145b80611c9c575060035433600160a060020a039081169116145b1515611ca757600080fd5b5060005b83811015611d5e578260086000878785818110611cc457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557f99f0622dbc6cbfb57e866310f623d630f56d8a15df9efc92d652597a67998936858583818110611d2257fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101611cab565b506001949350505050565b600e5481565b600f5460009060ff1615611d8257600080fd5b60005433600160a060020a0390811691161480611dad575060045433600160a060020a039081169116145b1515611db857600080fd5b600b54600314611dc757600080fd5b60145460009011611dd757600080fd5b6004600b81905542600d55600f805461ff0019166101001790557f87fcd7085eaabc2418e6a12ac5497cf18368bf4ad51215e24fd4782fa0c0ba579060405190815260200160405180910390a150600190565b600c5468878678326eac90000090101590565b600054600160a060020a031681565b600f5460009060ff1615611e5f57600080fd5b60005433600160a060020a0390811691161480611e8a575060045433600160a060020a039081169116145b1515611e9557600080fd5b600b5460029010611ea557600080fd5b60135460009011611eb557600080fd5b6002600b819055600f805461ff0019166101001790557f99846a702db09e5ce6d90e693e7704540309346ca5b7656fdd438014448394369060405190815260200160405180910390a150600190565b60086020526000908152604090205460ff1681565b60408051908101604052600381527f4745580000000000000000000000000000000000000000000000000000000000602082015281565b60185481565b60005433600160a060020a03908116911614611f7157600080fd5b600160a060020a0381161515611f8657600080fd5b600554600160a060020a0382811691161415611fa157600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614611feb57600080fd5b600160a060020a038116151561200057600080fd5b600354600160a060020a038281169116141561201b57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60005433600160a060020a0390811691161461207457600080fd5b600160a060020a038116151561208957600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b600f5460009062010000900460ff1615156001146120db57600080fd5b600160a060020a03831615156120f057600080fd5b600082116120fd57600080fd5b600160a060020a033316600090815260016020526040902054612126908363ffffffff6128d716565b600160a060020a03338116600090815260016020526040808220939093559085168152205461215b908363ffffffff6128bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60175481565b60165481565b600f54600090819060ff16156121dd57600080fd5b60005433600160a060020a0390811691161480612208575060045433600160a060020a039081169116145b80612221575060035433600160a060020a039081169116145b151561222c57600080fd5b5060005b83811015611d5e57826009600087878581811061224957fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790557ffbd9b2cc58ba714cd80b8b0a1c8a6d313a1e20563cf72561feeee6d0d96769bd8585838181106122a757fe5b90506020020135600160a060020a031684604051600160a060020a039092168252151560208201526040908101905180910390a1600101612230565b600f54610100900460ff1681565b601a5481565b600f5460009060ff161561230a57600080fd5b60005433600160a060020a0390811691161480612335575060045433600160a060020a039081169116145b151561234057600080fd5b600b5460071461234f57600080fd5b600654600160a060020a0316151561236657600080fd5b601054600114156124335750600654600160a060020a03166000908152600160205260409020546a06342fd08f00f637800000906123a490826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160026010556117f9565b6010546002141561251457600e5462ed4e000142101561245257600080fd5b50600654600160a060020a03166000908152600160205260409020546a094e47b8d68171534000009061248590826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160036010556117f9565b601054600314156103fe57600e546301e133800142101561253457600080fd5b50600654600160a060020a03166000908152600160205260409020546a0f8277896582678ac000009061256790826128bd565b60068054600160a060020a03908116600090815260016020526040908190209390935590546010547fa12320dea361e697cd0fb17d62af7c61880334f66c5b27d144602185281c0603939190921691908490518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160046010556117f9565b60105481565b68878678326eac90000081565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600f5460009060ff161561264757600080fd5b60005433600160a060020a0390811691161480612672575060045433600160a060020a039081169116145b151561267d57600080fd5b600b5460021461268c57600080fd5b6003600b819055600f805461ff00191690557fce3379d8b8f0dac11fa9828e90d4a59c304a02c0e58ea05a97cf282eeccbe2209060405190815260200160405180910390a150600190565b60135481565b60115481565b60125481565b600f5460ff1681565b600454600160a060020a031681565b60005433600160a060020a0390811691161461271c57600080fd5b600f805460ff19166001179055565b600554600090600160a060020a0316151561274557600080fd5b61277d670de0b6b3a764000061277181612765348863ffffffff6128e916565b9063ffffffff6128e916565b9063ffffffff61291416565b600160a060020a0333166000908152600160205260409020549091506127a9908263ffffffff6128bd16565b600160a060020a033316600090815260016020908152604080832093909355600a905220546127de903463ffffffff6128bd16565b600160a060020a0333166000908152600a602052604090205560175461280a908263ffffffff6128d716565b601755600c54612820903463ffffffff6128bd16565b600c55600554600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561285757600080fd5b7f540c6de47939116ec4410c0212b0ac3a69886bf8f558dc04fb1360f6ebfea89b333483856040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000828201838110156128cc57fe5b8091505b5092915050565b6000828211156128e357fe5b50900390565b6000808315156128fc57600091506128d0565b5082820282848281151561290c57fe5b04146128cc57fe5b600080828481151561292257fe5b049493505050505600a165627a7a723058204acb42effb29e7894f54c6d80811a7abc7a295703993ad33143d29374f1c82cb0029

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

00000000000000000000000021253348a3bd6e3d5e979a1c508cdf8f57f92472000000000000000000000000542853a035133ebd1ab93b657252a3749d8c639a0000000000000000000000006de037bf6d5b933285711232330b933deafb16f5

-----Decoded View---------------
Arg [0] : _walletAddr (address): 0x21253348a3Bd6E3D5E979A1c508Cdf8F57f92472
Arg [1] : _adminAddr (address): 0x542853A035133EBd1ab93B657252A3749d8c639A
Arg [2] : _portalAddr (address): 0x6De037bf6D5B933285711232330B933deafB16F5

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000021253348a3bd6e3d5e979a1c508cdf8f57f92472
Arg [1] : 000000000000000000000000542853a035133ebd1ab93b657252a3749d8c639a
Arg [2] : 0000000000000000000000006de037bf6d5b933285711232330b933deafb16f5


Swarm Source

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