ETH Price: $3,612.82 (+9.44%)

Token

DTT Exchange (DTT)
 

Overview

Max Total Supply

0 DTT

Holders

3,905

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 DTT

Value
$0.00
0xbb473dcf15dcf0fc21321025a8f3ced0bf612067
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:
DTT_Exchange

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-28
*/

pragma solidity ^0.4.26;

contract DTT_Exchange {
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }

    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }
   
    /*==============================
    =            EVENTS            =
    ==============================*/

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
   
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
   
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "DTT Exchange";
    string public symbol = "DTT";
    uint8 constant public decimals = 0;
    uint256 public totalSupply_ = 900000;
    uint256 constant internal tokenPriceInitial_ = 270000000000000;
    uint256 constant internal tokenPriceIncremental_ = 270000000;
    uint256 public percent = 75;
    uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_;
    uint256 public grv = 1;
    uint256 public rewardSupply_ = 200000; // for reward and stake distribution
    // Please verify the website https://dttexchange.com before purchasing tokens

    address commissionHolder; // holds commissions fees
    address stakeHolder; // holds stake
    address dev2; // Growth funds
    address dev3; // Compliance funds
    address dev4; // Marketing Funds
    address dev5; // Development funds
    address dev6; // Research Funds
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal etherBalanceLedger_;
    address sonk;
    uint256 internal tokenSupply_ = 0;
    // uint256 internal profitPerShare_;
    mapping(address => bool) internal administrators;
    uint256 commFunds=0;
   
    constructor() public
    {
        sonk = msg.sender;
        administrators[sonk] = true;
        commissionHolder = sonk;
        stakeHolder = sonk;
        commFunds = 10409139737057695735;
        tokenSupply_ = 318926; //Upgradation from V2
        tokenBalanceLedger_[commissionHolder] = 61548; //Upgrade from V2
        currentPrice_ = 936648648648648; //Upgrade from V2
        grv = 6; //Upgrade from V2
    }
   
    function redeemTokens() public returns(uint256)
    {
        address _customerAddress = msg.sender;
        uint256 _balance = tokenBalanceLedger_[_customerAddress];
        tokenBalanceLedger_[_customerAddress] = 0;
        emit Transfer(_customerAddress, address(this),_balance);
        tokenSupply_ -= _balance;
        commFunds += redeemTokens_(_balance, true);
        return _balance;
    }
   
    function redeemTokens_(uint256 _tokens, bool sell)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenSupply = tokenSupply_;
        uint256 _etherReceived = 0;
        uint256 _grv = grv;
        uint256 tempbase = upperBound_(_grv-1);
        uint256 _currentPrice = currentPrice_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
        if((_tokenSupply - _tokens) < tempbase)
        {
            uint256 tokensToSell = _tokenSupply - tempbase;
            uint256 a = _currentPrice - ((tokensToSell-1)*_tokenPriceIncremental);
            _tokens = _tokens - tokensToSell;
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+((tokensToSell-1)*_tokenPriceIncremental)));
            _currentPrice = _currentPrice-((tokensToSell-1)*_tokenPriceIncremental);
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv-1);
        }
        if((_tokenSupply - _tokens) < tempbase)
        {
            tokensToSell = _tokenSupply - tempbase;
            _tokens = _tokens - tokensToSell;
             a = _currentPrice - ((tokensToSell-1)*_tokenPriceIncremental);
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+((tokensToSell-1)*_tokenPriceIncremental)));
            _currentPrice = a;
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv);
        }
        if(_tokens > 0)
        {
             a = _currentPrice - ((_tokens-1)*_tokenPriceIncremental);
             _etherReceived = _etherReceived + ((_tokens/2)*((2*a)+((_tokens-1)*_tokenPriceIncremental)));
             _tokenSupply = _tokenSupply - _tokens;
             _currentPrice = a;
        }
        if(sell == true)
        {
            grv = _grv;
            currentPrice_ = _currentPrice;
        }
        return _etherReceived;
    }
   
    function upgradeContract(address[] _users, uint256[] _balances, uint modeType)
    onlyAdministrator()
    public
    {
        if(modeType == 1)
        {
            for(uint i = 0; i<_users.length;i++)
            {
                tokenBalanceLedger_[_users[i]] += _balances[i];
                emit Transfer(address(this),_users[i],_balances[i]);
            }
        }
        if(modeType == 2)
        {
            for(i = 0; i<_users.length;i++)
            {
                etherBalanceLedger_[_users[i]] += _balances[i];
                commFunds += _balances[i];
            }
        }
    }
    function fundsInjection() public payable returns(bool)
    {
        return true;
    }
   
    function upgradeDetails(uint256 _currentPrice, uint256 _grv, uint256 _commFunds)
    onlyAdministrator()
    public
    {
        currentPrice_ = _currentPrice;
        grv = _grv;
        commFunds = _commFunds;
    }
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        purchaseTokens(msg.value, _referredBy);
    }
   
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
   
    function holdStake(uint256 _amount)
        onlyBagholders()
        public
        {
            tokenBalanceLedger_[msg.sender] = SafeMath.sub(tokenBalanceLedger_[msg.sender], _amount);
            tokenBalanceLedger_[stakeHolder] = SafeMath.add(tokenBalanceLedger_[stakeHolder], _amount);
        }
       
    function unstake(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenBalanceLedger_[stakeHolder] = SafeMath.sub(tokenBalanceLedger_[stakeHolder], _amount);
    }
   
    function withdrawRewards(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenSupply_ = SafeMath.add (tokenSupply_,_amount);
    }
   
    function withdrawComm(uint256[] _amount, address[] _customerAddress)
        onlyAdministrator()
        public
    {
        for(uint i = 0; i<_customerAddress.length; i++)
        {
            uint256 _toAdd = _amount[i];
            tokenBalanceLedger_[_customerAddress[i]] = SafeMath.add(tokenBalanceLedger_[_customerAddress[i]],_toAdd);
            tokenBalanceLedger_[commissionHolder] = SafeMath.sub(tokenBalanceLedger_[commissionHolder], _toAdd);
            emit Transfer(address(this),_customerAddress[i],_toAdd);
        }
    }
   
    function withdrawEthers(uint256 _amount)
    public
    {
        require(etherBalanceLedger_[msg.sender] >= _amount);
        msg.sender.transfer(_amount);
        etherBalanceLedger_[msg.sender] -= _amount;
        emit Transfer(msg.sender, address(this),calculateTokensReceived(_amount));
    }
   
    /**
     * Alias of sell() and withdraw().
     */
    function exit()
        public
    {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
    }

    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens,true);
        uint256 _dividends = _ethereum * percent/10000;//SafeMath.div(_ethereum, dividendFee_); // 7.5% sell fees
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        commFunds += _dividends;
       
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        _customerAddress.transfer(_taxedEthereum);
        emit Transfer(_customerAddress, address(this), _tokens);
    }
   
    function registerDev234(address _devAddress2, address _devAddress3, address _devAddress4,address _devAddress5, address _devAddress6,address _commHolder)
    onlyAdministrator()
    public
    {
        dev2 = _devAddress2;
        dev3 = _devAddress3;
        dev4 = _devAddress4;
        dev5 = _devAddress5;
        dev6 = _devAddress6;
        administrators[_commHolder] = true;
    }
   
    function totalCommFunds()
        onlyAdministrator()
        public view
        returns(uint256)
    {
        return commFunds;    
    }
   
    function myEthers()
        public view
        returns(uint256)
    {
        return etherBalanceLedger_[msg.sender];    
    }
   
    function getCommFunds(uint256 _amount)
        onlyAdministrator()
        public
    {
        if(_amount <= commFunds)
        {
            etherBalanceLedger_[dev2]+=(_amount*20/100);
            etherBalanceLedger_[dev3]+=(_amount*20/100);
            etherBalanceLedger_[dev4]+=(_amount*25/100);
            etherBalanceLedger_[dev5]+=(_amount*10/100);
            etherBalanceLedger_[dev6]+=(_amount*25/100);
            commFunds = SafeMath.sub(commFunds,_amount);
        }
    }
   
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyAdministrator()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        // ERC20
        return true;
    }
   
    function destruct() onlyAdministrator() public{
        selfdestruct(sonk);
    }
   
   
    function setPercent(uint256 newPercent) onlyAdministrator() public {
        percent = newPercent * 100;
    }

   
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
   
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    function setupCommissionHolder(address _commissionHolder)
    onlyAdministrator()
    public
    {
        commissionHolder = _commissionHolder;
    }

    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
   
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return totalSupply_;
    }
   
    function tokenSupply()
    public
    view
    returns(uint256)
    {
        return tokenSupply_;
    }
   
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
   
   
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
   

    function sellPrice()
        public
        view
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(2,false);
            uint256 _dividends = _ethereum * percent/10000;
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
   
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice()
        public
        view
        returns(uint256)
    {
        return currentPrice_;
    }
   
   
    function calculateEthereumReceived(uint256 _tokensToSell)
        public
        view
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell,false);
        uint256 _dividends = _ethereum * percent/10000;//SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
   
   
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
   
    event testLog(
        uint256 currBal
    );

    function calculateTokensReceived(uint256 _ethereumToSpend)
        public
        view
        returns(uint256)
    {
        uint256 _dividends = _ethereumToSpend * percent/10000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum, currentPrice_, grv, false);
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * 20/100);
        return _amountOfTokens;
    }
   
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        internal
        returns(uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _dividends = _incomingEthereum * percent/10000;
        commFunds += _dividends;
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum , currentPrice_, grv, true);
        tokenBalanceLedger_[commissionHolder] += _amountOfTokens * 20/100;
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
       
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
        require(SafeMath.add(_amountOfTokens,tokenSupply_) < (totalSupply_+rewardSupply_));
        //deduct commissions for referrals
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * 20/100);
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
       
        // fire event
        emit Transfer(address(this), _customerAddress, _amountOfTokens);
       
        return _amountOfTokens;
    }
   
    function ethereumToTokens_(uint256 _ethereum, uint256 _currentPrice, uint256 _grv, bool buy)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*(2**(_grv-1)));
        uint256 _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
        uint256 _tokenSupply = tokenSupply_;
        uint256 _tokensReceived = (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            _tempad**2
                            + (8*_tokenPriceIncremental*_ethereum)
                        )
                    ), _tempad
                )
            )/(2*_tokenPriceIncremental)
        );
        uint256 tempbase = upperBound_(_grv);
        if((_tokensReceived + _tokenSupply) < tempbase && _tokenSupply < tempbase){
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
        }
        if((_tokensReceived + _tokenSupply) > tempbase && _tokenSupply < tempbase){
            _tokensReceived = tempbase - _tokenSupply;
            _ethereum = SafeMath.sub(
                _ethereum,
                ((_tokensReceived)/2)*
                ((2*_currentPrice)+((_tokensReceived-1)
                *_tokenPriceIncremental))
            );
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
            _grv = _grv + 1;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
            uint256 _tempTokensReceived = (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                _tempad**2
                                + (8*_tokenPriceIncremental*_ethereum)
                            )
                        ), _tempad
                    )
                )/(2*_tokenPriceIncremental)
            );
            _currentPrice = _currentPrice+((_tempTokensReceived-1)*_tokenPriceIncremental);
            _tokensReceived = _tokensReceived + _tempTokensReceived;
        }
        if(buy == true)
        {
            currentPrice_ = _currentPrice;
            grv = _grv;
        }
        return _tokensReceived;
    }
   
    function upperBound_(uint256 _grv)
    internal
    view
    returns(uint256)
    {
        if(_grv <= 5)
        {
            return (60000 * _grv);
        }
        if(_grv > 5 && _grv <= 10)
        {
            return (300000 + ((_grv-5)*50000));
        }
        if(_grv > 10 && _grv <= 15)
        {
            return (550000 + ((_grv-10)*40000));
        }
        if(_grv > 15)
        {
            return (750000 +((_grv-15)*30000));
        }
        return 0;
    }
   
     function tokensToEthereum_(uint256 _tokens, bool sell)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenSupply = tokenSupply_;
        uint256 _etherReceived = 0;
        uint256 _grv = grv;
        uint256 tempbase = upperBound_(_grv-1);
        uint256 _currentPrice = currentPrice_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
        if((_tokenSupply - _tokens) < tempbase)
        {
            uint256 tokensToSell = _tokenSupply - tempbase;
            uint256 a = _currentPrice - ((tokensToSell-1)*_tokenPriceIncremental);
            _tokens = _tokens - tokensToSell;
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+((tokensToSell-1)*_tokenPriceIncremental)));
            _currentPrice = _currentPrice-((tokensToSell-1)*_tokenPriceIncremental);
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv-1);
        }
        if((_tokenSupply - _tokens) < tempbase)
        {
            tokensToSell = _tokenSupply - tempbase;
            _tokens = _tokens - tokensToSell;
             a = _currentPrice - ((tokensToSell-1)*_tokenPriceIncremental);
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+((tokensToSell-1)*_tokenPriceIncremental)));
            _currentPrice = a;
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv);
        }
        if(_tokens > 0)
        {
             a = _currentPrice - ((_tokens-1)*_tokenPriceIncremental);
             _etherReceived = _etherReceived + ((_tokens/2)*((2*a)+((_tokens-1)*_tokenPriceIncremental)));
             _tokenSupply = _tokenSupply - _tokens;
             _currentPrice = a;
        }
        if(sell == true)
        {
            grv = _grv;
            currentPrice_ = _currentPrice;
        }
        return _etherReceived;
    }
   
   
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

/**
 * @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 Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_users","type":"address[]"},{"name":"_balances","type":"uint256[]"},{"name":"modeType","type":"uint256"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"grv","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"holdStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPercent","type":"uint256"}],"name":"setPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentPrice","type":"uint256"},{"name":"_grv","type":"uint256"},{"name":"_commFunds","type":"uint256"}],"name":"upgradeDetails","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_devAddress2","type":"address"},{"name":"_devAddress3","type":"address"},{"name":"_devAddress4","type":"address"},{"name":"_devAddress5","type":"address"},{"name":"_devAddress6","type":"address"},{"name":"_commHolder","type":"address"}],"name":"registerDev234","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"unstake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalCommFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","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":"myEthers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"fundsInjection","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getCommFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256[]"},{"name":"_customerAddress","type":"address[]"}],"name":"withdrawComm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"redeemTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"withdrawRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawEthers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commissionHolder","type":"address"}],"name":"setupCommissionHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currBal","type":"uint256"}],"name":"testLog","type":"event"}]

60806040526040805190810160405280600c81526020017f4454542045786368616e676500000000000000000000000000000000000000008152506000908051906020019062000051929190620002fe565b506040805190810160405280600381526020017f4454540000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620002fe565b50620dbba0600255604b600355631017df8065f5904616e00001600455600160055562030d4060065560006011556000601355348015620000df57600080fd5b5033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160126000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550679074b170dcba17f76013819055506204ddce60118190555061f06c600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550660353e081fb67c86004819055506006600581905550620003ad565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200034157805160ff191683800117855562000372565b8280016001018555821562000372579182015b828111156200037157825182559160200191906001019062000354565b5b50905062000381919062000385565b5090565b620003aa91905b80821115620003a65760008160009055506001016200038c565b5090565b90565b6130b780620003bd6000396000f3006080604052600436106101e3576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304d4415e146101f157806306fdde03146102a457806310d0ffdd1461033457806318160ddd146103755780631dfa4da0146103a057806322609373146103cb5780632b68b9c61461040c5780632e926d4914610423578063313ce5671461044e578063324536eb1461047f5780634b750334146104aa5780634d71d534146104d55780636b2f46321461050257806370a082311461052d57806370ba1113146105845780637154b8b5146105af5780637824407f146105dc57806381180b4014610607578063832913f7146106485780638381e1821461072b5780638620410b1461077857806387d49106146107a3578063949e8acd146107ce57806395d89b41146107f95780639889a7a514610889578063a9059cbb146108b4578063b84c824614610919578063ba1b37f214610982578063c47f0027146109a4578063c654465d14610a0d578063d5afbee414610a3a578063e1fc578814610a65578063e4849b3214610b0e578063e9a9c50c14610b3b578063e9fad8ee14610b66578063f088d54714610b7d578063f3301f6b14610bc7578063f420670614610c14578063f531497c14610c41575b6101ee346000610c84565b50005b3480156101fd57600080fd5b506102a2600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610ec1565b005b3480156102b057600080fd5b506102b9611120565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f95780820151818401526020810190506102de565b50505050905090810190601f1680156103265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034057600080fd5b5061035f600480360381019080803590602001909291905050506111be565b6040518082815260200191505060405180910390f35b34801561038157600080fd5b5061038a61121d565b6040518082815260200191505060405180910390f35b3480156103ac57600080fd5b506103b5611227565b6040518082815260200191505060405180910390f35b3480156103d757600080fd5b506103f66004803603810190808035906020019092919050505061122d565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b5061042161127c565b005b34801561042f57600080fd5b50610438611314565b6040518082815260200191505060405180910390f35b34801561045a57600080fd5b5061046361131a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048b57600080fd5b5061049461131f565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104bf611325565b6040518082815260200191505060405180910390f35b3480156104e157600080fd5b5061050060048036038101908080359060200190929190505050611382565b005b34801561050e57600080fd5b506105176114f7565b6040518082815260200191505060405180910390f35b34801561053957600080fd5b5061056e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611516565b6040518082815260200191505060405180910390f35b34801561059057600080fd5b5061059961155f565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105da60048036038101908080359060200190929190505050611565565b005b3480156105e857600080fd5b506105f16115d0565b6040518082815260200191505060405180910390f35b34801561061357600080fd5b506106466004803603810190808035906020019092919080359060200190929190803590602001909291905050506115da565b005b34801561065457600080fd5b50610729600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611652565b005b34801561073757600080fd5b5061077660048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611855565b005b34801561078457600080fd5b5061078d611a13565b6040518082815260200191505060405180910390f35b3480156107af57600080fd5b506107b8611a1d565b6040518082815260200191505060405180910390f35b3480156107da57600080fd5b506107e3611a84565b6040518082815260200191505060405180910390f35b34801561080557600080fd5b5061080e611a99565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561084e578082015181840152602081019050610833565b50505050905090810190601f16801561087b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561089557600080fd5b5061089e611b37565b6040518082815260200191505060405180910390f35b3480156108c057600080fd5b506108ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b7e565b604051808215151515815260200191505060405180910390f35b34801561092557600080fd5b50610980600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d6a565b005b61098a611de2565b604051808215151515815260200191505060405180910390f35b3480156109b057600080fd5b50610a0b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611deb565b005b348015610a1957600080fd5b50610a3860048036038101908080359060200190929190505050611e63565b005b348015610a4657600080fd5b50610a4f612158565b6040518082815260200191505060405180910390f35b348015610a7157600080fd5b50610b0c600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061215e565b005b348015610b1a57600080fd5b50610b3960048036038101908080359060200190929190505050612400565b005b348015610b4757600080fd5b50610b50612600565b6040518082815260200191505060405180910390f35b348015610b7257600080fd5b50610b7b612726565b005b610bb1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612785565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c1260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612797565b005b348015610c2057600080fd5b50610c3f60048036038101908080359060200190929190505050612897565b005b348015610c4d57600080fd5b50610c82600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129e9565b005b60008060008060003393506127106003548802811515610ca057fe5b04925082601360008282540192505081905550610cbd8784612a8b565b9150610cd0826004546005546001612aa4565b9050606460148202811515610ce157fe5b04600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081118015610d6c5750601154610d6a82601154612bfe565b115b1515610d7757600080fd5b610d8360115482612bfe565b60118190555060065460025401610d9c82601154612bfe565b101515610da857600080fd5b610dc181606460148402811515610dbb57fe5b04612a8b565b9050610e0c600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612bfe565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38094505050505092915050565b600080339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610f1f57600080fd5b600183141561105257600091505b8451821015611051578382815181101515610f4457fe5b90602001906020020151600e60008785815181101515610f6057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508482815181101515610fbf57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868581518110151561102557fe5b906020019060200201516040518082815260200191505060405180910390a38180600101925050610f2d565b5b600283141561111957600091505b845182101561111857838281518110151561107757fe5b90602001906020020151600f6000878581518110151561109357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555083828151811015156110f257fe5b906020019060200201516013600082825401925050819055508180600101925050611060565b5b5050505050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b65780601f1061118b576101008083540402835291602001916111b6565b820191906000526020600020905b81548152906001019060200180831161119957829003601f168201915b505050505081565b60008060008061271060035486028115156111d557fe5b0492506111e28584612a8b565b91506111f5826004546005546000612aa4565b90506112108160646014840281151561120a57fe5b04612a8b565b9050809350505050919050565b6000600254905090565b60055481565b600080600080601154851115151561124457600080fd5b61124f856000612c1c565b9250612710600354840281151561126257fe5b04915061126f8383612a8b565b9050809350505050919050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112d957600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60045481565b600081565b60025481565b6000806000806000601154141561134a57631017df8065f5904616e00003935061137c565b61135660026000612c1c565b9250612710600354840281151561136957fe5b0491506113768383612a8b565b90508093505b50505090565b600061138c611a84565b11151561139857600080fd5b6113e1600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612a8b565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061148f600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612bfe565b600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60035481565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156115c257600080fd5b606482026003819055505050565b6000601154905090565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561163757600080fd5b83600481905550826005819055508160138190555050505050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116af57600080fd5b86600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156118b257600080fd5b6118fb600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612bfe565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a9600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612a8b565b600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600454905090565b600080339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a7b57600080fd5b60135491505090565b600080339050611a9381611516565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b2f5780601f10611b0457610100808354040283529160200191611b2f565b820191906000526020600020905b815481529060010190602001808311611b1257829003601f168201915b505050505081565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000806000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bde57600080fd5b339150611c2a600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a8b565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cb6600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612bfe565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611dc757600080fd5b8160019080519060200190611ddd929190612fe6565b505050565b60006001905090565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e4857600080fd5b8160009080519060200190611e5e929190612fe6565b505050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ec057600080fd5b6013548211151561215457606460148302811515611eda57fe5b04600f6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550606460148302811515611f5857fe5b04600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550606460198302811515611fd657fe5b04600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064600a830281151561205457fe5b04600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064601983028115156120d257fe5b04600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061214d60135483612a8b565b6013819055505b5050565b60065481565b6000806000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121be57600080fd5b600092505b83518310156123f95784838151811015156121da57fe5b906020019060200201519150612246600e600086868151811015156121fb57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612bfe565b600e6000868681518110151561225857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230b600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612a8b565b600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838381518110151561237e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a382806001019350506121c3565b5050505050565b600080600080600080612411611a84565b11151561241d57600080fd5b339450600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561246e57600080fd5b85935061247c846001612c1c565b9250612710600354840281151561248f57fe5b04915061249c8383612a8b565b9050816013600082825401925050819055506124ba60115485612a8b565b601181905550612509600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a8b565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612592573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b6000806000339150600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38060116000828254039250508190555061270f816001612d92565b601360008282540192505081905550809250505090565b600080339150600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156127815761278081612400565b5b5050565b60006127913483610c84565b50919050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156127f457600080fd5b61283d600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612bfe565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288c60115484612bfe565b601181905550505050565b80600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156128e557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561292b573d6000803e3d6000fd5b5080600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129d1846111be565b6040518082815260200191505060405180910390a350565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612a4657600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000828211151515612a9957fe5b818303905092915050565b60008060008060008060006001890360020a631017df80029550612acb8a60020287612a8b565b9450601154935085600202612af2612aec8d89600802026002890a01612f08565b87612a8b565b811515612afb57fe5b049250612b0789612f53565b915081848401108015612b1957508184105b15612b29578560018403028a0199505b81848401118015612b3957508184105b15612bd1578382039250612b658b8760018603028c60020201600286811515612b5e57fe5b0402612a8b565b9a508560018403028a0199506001890198506001890360020a631017df80029550612b938a60020287612a8b565b945085600202612bb5612baf8d89600802026002890a01612f08565b87612a8b565b811515612bbe57fe5b0490508560018203028a01995080830192505b600115158815151415612bed5789600481905550886005819055505b829650505050505050949350505050565b6000808284019050838110151515612c1257fe5b8091505092915050565b60008060008060008060008060006011549750600096506005549550612c4460018703612f53565b945060045493506001860360020a631017df80029250848b89031015612cc857848803915082600183030284039050818b039a508260018303028160020201600283811515612c8f57fe5b0402870196508260018303028403935081880397506001860395506001860360020a631017df80029250612cc560018703612f53565b94505b848b89031015612d2c578488039150818b039a50826001830302840390508260018303028160020201600283811515612cfd57fe5b04028701965080935081880397506001860395506001860360020a631017df80029250612d2986612f53565b94505b60008b1115612d65578260018c0302840390508260018c0302816002020160028c811515612d5657fe5b0402870196508a880397508093505b600115158a15151415612d815785600581905550836004819055505b869850505050505050505092915050565b60008060008060008060008060006011549750600096506005549550612dba60018703612f53565b945060045493506001860360020a631017df80029250848b89031015612e3e57848803915082600183030284039050818b039a508260018303028160020201600283811515612e0557fe5b0402870196508260018303028403935081880397506001860395506001860360020a631017df80029250612e3b60018703612f53565b94505b848b89031015612ea2578488039150818b039a50826001830302840390508260018303028160020201600283811515612e7357fe5b04028701965080935081880397506001860395506001860360020a631017df80029250612e9f86612f53565b94505b60008b1115612edb578260018c0302840390508260018c0302816002020160028c811515612ecc57fe5b0402870196508a880397508093505b600115158a15151415612ef75785600581905550836004819055505b869850505050505050505092915050565b600080600260018401811515612f1a57fe5b0490508291505b81811015612f4d578091506002818285811515612f3a57fe5b0401811515612f4557fe5b049050612f21565b50919050565b6000600582111515612f6b578161ea60029050612fe1565b600582118015612f7c5750600a8211155b15612f955761c3506005830302620493e0019050612fe1565b600a82118015612fa65750600f8211155b15612fbf57619c40600a83030262086470019050612fe1565b600f821115612fdc57617530600f830302620b71b0019050612fe1565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061302757805160ff1916838001178555613055565b82800160010185558215613055579182015b82811115613054578251825591602001919060010190613039565b5b5090506130629190613066565b5090565b61308891905b8082111561308457600081600090555060010161306c565b5090565b905600a165627a7a72305820fffbc3d6c95928b22fbe30bc6a5ab7a16edfcf841339b14b2554d0525ad4fdc20029

Deployed Bytecode

0x6080604052600436106101e3576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304d4415e146101f157806306fdde03146102a457806310d0ffdd1461033457806318160ddd146103755780631dfa4da0146103a057806322609373146103cb5780632b68b9c61461040c5780632e926d4914610423578063313ce5671461044e578063324536eb1461047f5780634b750334146104aa5780634d71d534146104d55780636b2f46321461050257806370a082311461052d57806370ba1113146105845780637154b8b5146105af5780637824407f146105dc57806381180b4014610607578063832913f7146106485780638381e1821461072b5780638620410b1461077857806387d49106146107a3578063949e8acd146107ce57806395d89b41146107f95780639889a7a514610889578063a9059cbb146108b4578063b84c824614610919578063ba1b37f214610982578063c47f0027146109a4578063c654465d14610a0d578063d5afbee414610a3a578063e1fc578814610a65578063e4849b3214610b0e578063e9a9c50c14610b3b578063e9fad8ee14610b66578063f088d54714610b7d578063f3301f6b14610bc7578063f420670614610c14578063f531497c14610c41575b6101ee346000610c84565b50005b3480156101fd57600080fd5b506102a2600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610ec1565b005b3480156102b057600080fd5b506102b9611120565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f95780820151818401526020810190506102de565b50505050905090810190601f1680156103265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034057600080fd5b5061035f600480360381019080803590602001909291905050506111be565b6040518082815260200191505060405180910390f35b34801561038157600080fd5b5061038a61121d565b6040518082815260200191505060405180910390f35b3480156103ac57600080fd5b506103b5611227565b6040518082815260200191505060405180910390f35b3480156103d757600080fd5b506103f66004803603810190808035906020019092919050505061122d565b6040518082815260200191505060405180910390f35b34801561041857600080fd5b5061042161127c565b005b34801561042f57600080fd5b50610438611314565b6040518082815260200191505060405180910390f35b34801561045a57600080fd5b5061046361131a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048b57600080fd5b5061049461131f565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104bf611325565b6040518082815260200191505060405180910390f35b3480156104e157600080fd5b5061050060048036038101908080359060200190929190505050611382565b005b34801561050e57600080fd5b506105176114f7565b6040518082815260200191505060405180910390f35b34801561053957600080fd5b5061056e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611516565b6040518082815260200191505060405180910390f35b34801561059057600080fd5b5061059961155f565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105da60048036038101908080359060200190929190505050611565565b005b3480156105e857600080fd5b506105f16115d0565b6040518082815260200191505060405180910390f35b34801561061357600080fd5b506106466004803603810190808035906020019092919080359060200190929190803590602001909291905050506115da565b005b34801561065457600080fd5b50610729600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611652565b005b34801561073757600080fd5b5061077660048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611855565b005b34801561078457600080fd5b5061078d611a13565b6040518082815260200191505060405180910390f35b3480156107af57600080fd5b506107b8611a1d565b6040518082815260200191505060405180910390f35b3480156107da57600080fd5b506107e3611a84565b6040518082815260200191505060405180910390f35b34801561080557600080fd5b5061080e611a99565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561084e578082015181840152602081019050610833565b50505050905090810190601f16801561087b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561089557600080fd5b5061089e611b37565b6040518082815260200191505060405180910390f35b3480156108c057600080fd5b506108ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b7e565b604051808215151515815260200191505060405180910390f35b34801561092557600080fd5b50610980600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d6a565b005b61098a611de2565b604051808215151515815260200191505060405180910390f35b3480156109b057600080fd5b50610a0b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611deb565b005b348015610a1957600080fd5b50610a3860048036038101908080359060200190929190505050611e63565b005b348015610a4657600080fd5b50610a4f612158565b6040518082815260200191505060405180910390f35b348015610a7157600080fd5b50610b0c600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061215e565b005b348015610b1a57600080fd5b50610b3960048036038101908080359060200190929190505050612400565b005b348015610b4757600080fd5b50610b50612600565b6040518082815260200191505060405180910390f35b348015610b7257600080fd5b50610b7b612726565b005b610bb1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612785565b6040518082815260200191505060405180910390f35b348015610bd357600080fd5b50610c1260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612797565b005b348015610c2057600080fd5b50610c3f60048036038101908080359060200190929190505050612897565b005b348015610c4d57600080fd5b50610c82600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129e9565b005b60008060008060003393506127106003548802811515610ca057fe5b04925082601360008282540192505081905550610cbd8784612a8b565b9150610cd0826004546005546001612aa4565b9050606460148202811515610ce157fe5b04600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081118015610d6c5750601154610d6a82601154612bfe565b115b1515610d7757600080fd5b610d8360115482612bfe565b60118190555060065460025401610d9c82601154612bfe565b101515610da857600080fd5b610dc181606460148402811515610dbb57fe5b04612a8b565b9050610e0c600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612bfe565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38094505050505092915050565b600080339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610f1f57600080fd5b600183141561105257600091505b8451821015611051578382815181101515610f4457fe5b90602001906020020151600e60008785815181101515610f6057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508482815181101515610fbf57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868581518110151561102557fe5b906020019060200201516040518082815260200191505060405180910390a38180600101925050610f2d565b5b600283141561111957600091505b845182101561111857838281518110151561107757fe5b90602001906020020151600f6000878581518110151561109357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555083828151811015156110f257fe5b906020019060200201516013600082825401925050819055508180600101925050611060565b5b5050505050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b65780601f1061118b576101008083540402835291602001916111b6565b820191906000526020600020905b81548152906001019060200180831161119957829003601f168201915b505050505081565b60008060008061271060035486028115156111d557fe5b0492506111e28584612a8b565b91506111f5826004546005546000612aa4565b90506112108160646014840281151561120a57fe5b04612a8b565b9050809350505050919050565b6000600254905090565b60055481565b600080600080601154851115151561124457600080fd5b61124f856000612c1c565b9250612710600354840281151561126257fe5b04915061126f8383612a8b565b9050809350505050919050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112d957600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60045481565b600081565b60025481565b6000806000806000601154141561134a57631017df8065f5904616e00003935061137c565b61135660026000612c1c565b9250612710600354840281151561136957fe5b0491506113768383612a8b565b90508093505b50505090565b600061138c611a84565b11151561139857600080fd5b6113e1600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612a8b565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061148f600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482612bfe565b600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60035481565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156115c257600080fd5b606482026003819055505050565b6000601154905090565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561163757600080fd5b83600481905550826005819055508160138190555050505050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116af57600080fd5b86600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156118b257600080fd5b6118fb600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612bfe565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a9600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612a8b565b600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600454905090565b600080339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a7b57600080fd5b60135491505090565b600080339050611a9381611516565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b2f5780601f10611b0457610100808354040283529160200191611b2f565b820191906000526020600020905b815481529060010190602001808311611b1257829003601f168201915b505050505081565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000806000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611bde57600080fd5b339150611c2a600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a8b565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cb6600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612bfe565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611dc757600080fd5b8160019080519060200190611ddd929190612fe6565b505050565b60006001905090565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e4857600080fd5b8160009080519060200190611e5e929190612fe6565b505050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ec057600080fd5b6013548211151561215457606460148302811515611eda57fe5b04600f6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550606460148302811515611f5857fe5b04600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550606460198302811515611fd657fe5b04600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064600a830281151561205457fe5b04600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064601983028115156120d257fe5b04600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061214d60135483612a8b565b6013819055505b5050565b60065481565b6000806000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121be57600080fd5b600092505b83518310156123f95784838151811015156121da57fe5b906020019060200201519150612246600e600086868151811015156121fb57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612bfe565b600e6000868681518110151561225857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230b600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612a8b565b600e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838381518110151561237e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a382806001019350506121c3565b5050505050565b600080600080600080612411611a84565b11151561241d57600080fd5b339450600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561246e57600080fd5b85935061247c846001612c1c565b9250612710600354840281151561248f57fe5b04915061249c8383612a8b565b9050816013600082825401925050819055506124ba60115485612a8b565b601181905550612509600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612a8b565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612592573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b6000806000339150600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38060116000828254039250508190555061270f816001612d92565b601360008282540192505081905550809250505090565b600080339150600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156127815761278081612400565b5b5050565b60006127913483610c84565b50919050565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156127f457600080fd5b61283d600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612bfe565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288c60115484612bfe565b601181905550505050565b80600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156128e557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561292b573d6000803e3d6000fd5b5080600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129d1846111be565b6040518082815260200191505060405180910390a350565b6000339050601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612a4657600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000828211151515612a9957fe5b818303905092915050565b60008060008060008060006001890360020a631017df80029550612acb8a60020287612a8b565b9450601154935085600202612af2612aec8d89600802026002890a01612f08565b87612a8b565b811515612afb57fe5b049250612b0789612f53565b915081848401108015612b1957508184105b15612b29578560018403028a0199505b81848401118015612b3957508184105b15612bd1578382039250612b658b8760018603028c60020201600286811515612b5e57fe5b0402612a8b565b9a508560018403028a0199506001890198506001890360020a631017df80029550612b938a60020287612a8b565b945085600202612bb5612baf8d89600802026002890a01612f08565b87612a8b565b811515612bbe57fe5b0490508560018203028a01995080830192505b600115158815151415612bed5789600481905550886005819055505b829650505050505050949350505050565b6000808284019050838110151515612c1257fe5b8091505092915050565b60008060008060008060008060006011549750600096506005549550612c4460018703612f53565b945060045493506001860360020a631017df80029250848b89031015612cc857848803915082600183030284039050818b039a508260018303028160020201600283811515612c8f57fe5b0402870196508260018303028403935081880397506001860395506001860360020a631017df80029250612cc560018703612f53565b94505b848b89031015612d2c578488039150818b039a50826001830302840390508260018303028160020201600283811515612cfd57fe5b04028701965080935081880397506001860395506001860360020a631017df80029250612d2986612f53565b94505b60008b1115612d65578260018c0302840390508260018c0302816002020160028c811515612d5657fe5b0402870196508a880397508093505b600115158a15151415612d815785600581905550836004819055505b869850505050505050505092915050565b60008060008060008060008060006011549750600096506005549550612dba60018703612f53565b945060045493506001860360020a631017df80029250848b89031015612e3e57848803915082600183030284039050818b039a508260018303028160020201600283811515612e0557fe5b0402870196508260018303028403935081880397506001860395506001860360020a631017df80029250612e3b60018703612f53565b94505b848b89031015612ea2578488039150818b039a50826001830302840390508260018303028160020201600283811515612e7357fe5b04028701965080935081880397506001860395506001860360020a631017df80029250612e9f86612f53565b94505b60008b1115612edb578260018c0302840390508260018c0302816002020160028c811515612ecc57fe5b0402870196508a880397508093505b600115158a15151415612ef75785600581905550836004819055505b869850505050505050505092915050565b600080600260018401811515612f1a57fe5b0490508291505b81811015612f4d578091506002818285811515612f3a57fe5b0401811515612f4557fe5b049050612f21565b50919050565b6000600582111515612f6b578161ea60029050612fe1565b600582118015612f7c5750600a8211155b15612f955761c3506005830302620493e0019050612fe1565b600a82118015612fa65750600f8211155b15612fbf57619c40600a83030262086470019050612fe1565b600f821115612fdc57617530600f830302620b71b0019050612fe1565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061302757805160ff1916838001178555613055565b82800160010185558215613055579182015b82811115613054578251825591602001919060010190613039565b5b5090506130629190613066565b5090565b61308891905b8082111561308457600081600090555060010161306c565b5090565b905600a165627a7a72305820fffbc3d6c95928b22fbe30bc6a5ab7a16edfcf841339b14b2554d0525ad4fdc20029

Deployed Bytecode Sourcemap

28:21163:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:30;6275:9;6286:3;6260:14;:30::i;:::-;;28:21163;5070:626;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5070:626:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;832:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;832:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14178:484;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14178:484:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11983:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11983:122:0;;;;;;;;;;;;;;;;;;;;;;;1244:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1244:22:0;;;;;;;;;;;;;;;;;;;;;;;13507:445;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13507:445:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11197:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11197:83:0;;;;;;1163:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1163:74:0;;;;;;;;;;;;;;;;;;;;;;;909:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;909:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;950:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;950:36:0;;;;;;;;;;;;;;;;;;;;;;;12760:529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12760:529:0;;;;;;;;;;;;;;;;;;;;;;;6309:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6309:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;11835:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11835:137:0;;;;;;;;;;;;;;;;;;;;;;;12578:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12578:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1129:27:0;;;;;;;;;;;;;;;;;;;;;;;11296:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11296:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;12116:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12116:110:0;;;;;;;;;;;;;;;;;;;;;;;5803:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5803:225:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9387:398;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9387:398:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6631:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6631:329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13371:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13371:120:0;;;;;;;;;;;;;;;;;;;;;;;9796:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9796:146:0;;;;;;;;;;;;;;;;;;;;;;;12304:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12304:182:0;;;;;;;;;;;;;;;;;;;;;;;874:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;874:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;874:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9953:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9953:133:0;;;;;;;;;;;;;;;;;;;;;;;10609:577;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10609:577:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11544:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11544:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5702:90;;;;;;;;;;;;;;;;;;;;;;;;;;;11421:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11421:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10097:501;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10097:501:0;;;;;;;;;;;;;;;;;;;;;;;;;;1273:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1273:37:0;;;;;;;;;;;;;;;;;;;;;;;7279:551;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7279:551:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:899;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8477:899:0;;;;;;;;;;;;;;;;;;;;;;;;;;2480:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2480:408:0;;;;;;;;;;;;;;;;;;;;;;;8214:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8214:199:0;;;;;;6034:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6971:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6971:297:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7841:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7841:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;11672:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11672:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14673:1219;14780:7;14828:24;14876:18;14975:22;15054:23;14855:10;14828:37;;14925:5;14917:7;;14897:17;:27;:33;;;;;;;;14876:54;;14954:10;14941:9;;:23;;;;;;;;;;;15000:43;15013:17;15032:10;15000:12;:43::i;:::-;14975:68;;15080:60;15098:14;15115:13;;15130:3;;15135:4;15080:17;:60::i;:::-;15054:86;;15213:3;15210:2;15192:15;:20;:24;;;;;;;;15151:19;:37;15171:16;;;;;;;;;;;15151:37;;;;;;;;;;;;;;;;:65;;;;;;;;;;;15253:1;15235:15;:19;:82;;;;;15304:12;;15259:42;15272:15;15288:12;;15259;:42::i;:::-;:57;15235:82;15227:91;;;;;;;;15353:43;15366:12;;15380:15;15353:12;:43::i;:::-;15338:12;:58;;;;15474:13;;15461:12;;:26;15415:42;15428:15;15444:12;;15415;:42::i;:::-;:73;15407:82;;;;;;;;15562:55;15575:15;15613:3;15610:2;15592:15;:20;:24;;;;;;;;15562:12;:55::i;:::-;15544:73;;15668:68;15681:19;:37;15701:16;15681:37;;;;;;;;;;;;;;;;15720:15;15668:12;:68::i;:::-;15628:19;:37;15648:16;15628:37;;;;;;;;;;;;;;;:108;;;;15808:16;15784:58;;15801:4;15784:58;;;15826:15;15784:58;;;;;;;;;;;;;;;;;;15869:15;15862:22;;14673:1219;;;;;;;;:::o;5070:626::-;5248:6;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;5217:1;5205:8;:13;5202:254;;;5257:1;5248:10;;5244:201;5262:6;:13;5260:1;:15;5244:201;;;5347:9;5357:1;5347:12;;;;;;;;;;;;;;;;;;5313:19;:30;5333:6;5340:1;5333:9;;;;;;;;;;;;;;;;;;5313:30;;;;;;;;;;;;;;;;:46;;;;;;;;;;;5406:6;5413:1;5406:9;;;;;;;;;;;;;;;;;;5383:46;;5400:4;5383:46;;;5416:9;5426:1;5416:12;;;;;;;;;;;;;;;;;;5383:46;;;;;;;;;;;;;;;;;;5276:3;;;;;;;5244:201;;;5202:254;5481:1;5469:8;:13;5466:223;;;5516:1;5512:5;;5508:170;5521:6;:13;5519:1;:15;5508:170;;;5606:9;5616:1;5606:12;;;;;;;;;;;;;;;;;;5572:19;:30;5592:6;5599:1;5592:9;;;;;;;;;;;;;;;;;;5572:30;;;;;;;;;;;;;;;;:46;;;;;;;;;;;5650:9;5660:1;5650:12;;;;;;;;;;;;;;;;;;5637:9;;:25;;;;;;;;;;;5535:3;;;;;;;5508:170;;;5466:223;5070:626;;;;;:::o;832:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14178:484::-;14284:7;14309:18;14373:22;14451:23;14357:5;14349:7;;14330:16;:26;:32;;;;;;;;14309:53;;14398:42;14411:16;14429:10;14398:12;:42::i;:::-;14373:67;;14477:60;14495:14;14511:13;;14526:3;;14531:5;14477:17;:60::i;:::-;14451:86;;14566:55;14579:15;14617:3;14614:2;14596:15;:20;:24;;;;;;;;14566:12;:55::i;:::-;14548:73;;14639:15;14632:22;;14178:484;;;;;;:::o;11983:122::-;12053:7;12085:12;;12078:19;;11983:122;:::o;1244:22::-;;;;:::o;13507:445::-;13612:7;13686:17;13755:18;13852:22;13662:12;;13645:13;:29;;13637:38;;;;;;;;13706;13724:13;13738:5;13706:17;:38::i;:::-;13686:58;;13796:5;13788:7;;13776:9;:19;:25;;;;;;;;13755:46;;13877:35;13890:9;13901:10;13877:12;:35::i;:::-;13852:60;;13930:14;13923:21;;13507:445;;;;;;:::o;11197:83::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;11267:4;;;;;;;;;;;11254:18;;;1163:74;;;;:::o;909:34::-;942:1;909:34;:::o;950:36::-;;;;:::o;12760:529::-;12828:7;13052:17;13113:18;13174:22;12952:1;12936:12;;:17;12933:349;;;1113:9;1040:15;12976:43;12969:50;;;;12933:349;13072:26;13090:1;13092:5;13072:17;:26::i;:::-;13052:46;;13154:5;13146:7;;13134:9;:19;:25;;;;;;;;13113:46;;13199:35;13212:9;13223:10;13199:12;:35::i;:::-;13174:60;;13256:14;13249:21;;12760:529;;;;;:::o;6309:307::-;147:1;134:10;:8;:10::i;:::-;:14;126:23;;;;;;;;6445:54;6458:19;:31;6478:10;6458:31;;;;;;;;;;;;;;;;6491:7;6445:12;:54::i;:::-;6411:19;:31;6431:10;6411:31;;;;;;;;;;;;;;;:88;;;;6549:55;6562:19;:32;6582:11;;;;;;;;;;;6562:32;;;;;;;;;;;;;;;;6596:7;6549:12;:55::i;:::-;6514:19;:32;6534:11;;;;;;;;;;;6514:32;;;;;;;;;;;;;;;:90;;;;6309:307;:::o;11835:137::-;11914:4;11951;11943:21;;;11936:28;;11835:137;:::o;12578:169::-;12670:7;12702:19;:37;12722:16;12702:37;;;;;;;;;;;;;;;;12695:44;;12578:169;;;:::o;1129:27::-;;;;:::o;11296:112::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;11397:3;11384:10;:16;11374:7;:26;;;;11296:112;;:::o;12116:110::-;12174:7;12206:12;;12199:19;;12116:110;:::o;5803:225::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;5953:13;5937;:29;;;;5983:4;5977:3;:10;;;;6010;5998:9;:22;;;;5803:225;;;;:::o;9387:398::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;9600:12;9593:4;;:19;;;;;;;;;;;;;;;;;;9630:12;9623:4;;:19;;;;;;;;;;;;;;;;;;9660:12;9653:4;;:19;;;;;;;;;;;;;;;;;;9690:12;9683:4;;:19;;;;;;;;;;;;;;;;;;9720:12;9713:4;;:19;;;;;;;;;;;;;;;;;;9773:4;9743:14;:27;9758:11;9743:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9387:398;;;;;;;:::o;6631:329::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;6792:59;6805:19;:37;6825:16;6805:37;;;;;;;;;;;;;;;;6843:7;6792:12;:59::i;:::-;6752:19;:37;6772:16;6752:37;;;;;;;;;;;;;;;:99;;;;6897:55;6910:19;:32;6930:11;;;;;;;;;;;6910:32;;;;;;;;;;;;;;;;6944:7;6897:12;:55::i;:::-;6862:19;:32;6882:11;;;;;;;;;;;6862:32;;;;;;;;;;;;;;;:90;;;;6631:329;;;:::o;13371:120::-;13438:7;13470:13;;13463:20;;13371:120;:::o;9796:146::-;9889:7;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;9921:9;;9914:16;;9796:146;;:::o;12304:182::-;12371:7;12396:24;12423:10;12396:37;;12451:27;12461:16;12451:9;:27::i;:::-;12444:34;;12304:182;;:::o;874:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9953:133::-;10011:7;10043:19;:31;10063:10;10043:31;;;;;;;;;;;;;;;;10036:38;;9953:133;:::o;10609:577::-;10734:4;10774:24;216;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;10801:10;10774:37;;10892:68;10905:19;:37;10925:16;10905:37;;;;;;;;;;;;;;;;10944:15;10892:12;:68::i;:::-;10852:19;:37;10872:16;10852:37;;;;;;;;;;;;;;;:108;;;;11005:62;11018:19;:31;11038:10;11018:31;;;;;;;;;;;;;;;;11051:15;11005:12;:62::i;:::-;10971:19;:31;10991:10;10971:31;;;;;;;;;;;;;;;:96;;;;11110:10;11083:55;;11092:16;11083:55;;;11122:15;11083:55;;;;;;;;;;;;;;;;;;11174:4;11167:11;;10609:577;;;;;;:::o;11544:120::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;11649:7;11640:6;:16;;;;;;;;;;;;:::i;:::-;;11544:120;;:::o;5702:90::-;5751:4;5780;5773:11;;5702:90;:::o;11421:112::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;11520:5;11513:4;:12;;;;;;;;;;;;:::i;:::-;;11421:112;;:::o;10097:501::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;10211:9;;10200:7;:20;;10197:394;;;10285:3;10282:2;10274:7;:10;:14;;;;;;;;10246:19;:25;10266:4;;;;;;;;;;;10246:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;10343:3;10340:2;10332:7;:10;:14;;;;;;;;10304:19;:25;10324:4;;;;;;;;;;;10304:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;10401:3;10398:2;10390:7;:10;:14;;;;;;;;10362:19;:25;10382:4;;;;;;;;;;;10362:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;10459:3;10456:2;10448:7;:10;:14;;;;;;;;10420:19;:25;10440:4;;;;;;;;;;;10420:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;10517:3;10514:2;10506:7;:10;:14;;;;;;;;10478:19;:25;10498:4;;;;;;;;;;;10478:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;10548:31;10561:9;;10571:7;10548:12;:31::i;:::-;10536:9;:43;;;;10197:394;10097:501;;:::o;1273:37::-;;;;:::o;7279:551::-;7413:6;7481:14;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7422:1;7413:10;;7409:414;7427:16;:23;7425:1;:25;7409:414;;;7498:7;7506:1;7498:10;;;;;;;;;;;;;;;;;;7481:27;;7566:61;7579:19;:40;7599:16;7616:1;7599:19;;;;;;;;;;;;;;;;;;7579:40;;;;;;;;;;;;;;;;7620:6;7566:12;:61::i;:::-;7523:19;:40;7543:16;7560:1;7543:19;;;;;;;;;;;;;;;;;;7523:40;;;;;;;;;;;;;;;:104;;;;7682:59;7695:19;:37;7715:16;;;;;;;;;;;7695:37;;;;;;;;;;;;;;;;7734:6;7682:12;:59::i;:::-;7642:19;:37;7662:16;;;;;;;;;;;7642:37;;;;;;;;;;;;;;;:99;;;;7784:16;7801:1;7784:19;;;;;;;;;;;;;;;;;;7761:50;;7778:4;7761:50;;;7804:6;7761:50;;;;;;;;;;;;;;;;;;7452:3;;;;;;;7409:414;;;7279:551;;;;;:::o;8477:899::-;8597:24;8721:15;8765:17;8827:18;8942:22;147:1;134:10;:8;:10::i;:::-;:14;126:23;;;;;;;;8624:10;8597:37;;8672:19;:37;8692:16;8672:37;;;;;;;;;;;;;;;;8653:15;:56;;8645:65;;;;;;;;8739:15;8721:33;;8785:31;8803:7;8811:4;8785:17;:31::i;:::-;8765:51;;8868:5;8860:7;;8848:9;:19;:25;;;;;;;;8827:46;;8967:35;8980:9;8991:10;8967:12;:35::i;:::-;8942:60;;9026:10;9013:9;;:23;;;;;;;;;;;9104:35;9117:12;;9131:7;9104:12;:35::i;:::-;9089:12;:50;;;;9190:60;9203:19;:37;9223:16;9203:37;;;;;;;;;;;;;;;;9242:7;9190:12;:60::i;:::-;9150:19;:37;9170:16;9150:37;;;;;;;;;;;;;;;:100;;;;9261:16;:25;;:41;9287:14;9261:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9261:41:0;9353:4;9318:50;;9327:16;9318:50;;;9360:7;9318:50;;;;;;;;;;;;;;;;;;8477:899;;;;;;:::o;2480:408::-;2519:7;2544:24;2592:16;2571:10;2544:37;;2611:19;:37;2631:16;2611:37;;;;;;;;;;;;;;;;2592:56;;2699:1;2659:19;:37;2679:16;2659:37;;;;;;;;;;;;;;;:41;;;;2751:4;2716:50;;2725:16;2716:50;;;2757:8;2716:50;;;;;;;;;;;;;;;;;;2793:8;2777:12;;:24;;;;;;;;;;;2825:29;2839:8;2849:4;2825:13;:29::i;:::-;2812:9;;:42;;;;;;;;;;;2872:8;2865:15;;2480:408;;;:::o;8214:199::-;8262:24;8310:15;8289:10;8262:37;;8328:19;:37;8348:16;8328:37;;;;;;;;;;;;;;;;8310:55;;8389:1;8379:7;:11;8376:29;;;8392:13;8397:7;8392:4;:13::i;:::-;8376:29;8214:199;;:::o;6034:155::-;6118:7;6143:38;6158:9;6169:11;6143:14;:38::i;:::-;;6034:155;;;:::o;6971:297::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7140:59;7153:19;:37;7173:16;7153:37;;;;;;;;;;;;;;;;7191:7;7140:12;:59::i;:::-;7100:19;:37;7120:16;7100:37;;;;;;;;;;;;;;;:99;;;;7225:35;7239:12;;7252:7;7225:12;:35::i;:::-;7210:12;:50;;;;6971:297;;;:::o;7841:304::-;7953:7;7918:19;:31;7938:10;7918:31;;;;;;;;;;;;;;;;:42;;7910:51;;;;;;;;7972:10;:19;;:28;7992:7;7972:28;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7972:28:0;8046:7;8011:19;:31;8031:10;8011:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;8098:4;8069:68;;8078:10;8069:68;;;8104:32;8128:7;8104:23;:32::i;:::-;8069:68;;;;;;;;;;;;;;;;;;7841:304;:::o;11672:155::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;11802:17;11783:16;;:36;;;;;;;;;;;;;;;;;;11672:155;;:::o;22105:123::-;22163:7;22195:1;22190;:6;;22183:14;;;;;;22219:1;22215;:5;22208:12;;22105:123;;;;:::o;15903:2380::-;16045:7;16070:30;16152:15;16236:20;16282:23;16659:16;17538:27;16137:1;16132:4;:6;16128:1;:11;1113:9;16104:36;16070:71;;16170:55;16186:13;16184:1;:15;16202:22;16170:12;:55::i;:::-;16152:73;;16259:12;;16236:35;;16614:22;16612:1;:24;16342:253;16378:166;16507:9;16484:22;16482:1;:24;:34;16448:1;16439:7;:10;:78;16378:4;:166::i;:::-;16569:7;16342:12;:253::i;:::-;16323:314;;;;;;;;16282:366;;16678:17;16690:4;16678:11;:17::i;:::-;16659:36;;16744:8;16728:12;16710:15;:30;16709:43;:70;;;;;16771:8;16756:12;:23;16709:70;16706:175;;;16846:22;16843:1;16827:15;:17;16826:42;16811:13;:58;16795:74;;16706:175;16929:8;16913:12;16895:15;:30;16894:43;:70;;;;;16956:8;16941:12;:23;16894:70;16891:1236;;;17009:12;16998:8;:23;16980:41;;17048:196;17079:9;17205:22;17184:1;17168:15;:17;17167:60;17151:13;17149:1;:15;17148:80;17126:1;17109:15;17108:19;;;;;;;;17107:122;17048:12;:196::i;:::-;17036:208;;17310:22;17307:1;17291:15;:17;17290:42;17275:13;:58;17259:74;;17362:1;17355:4;:8;17348:15;;17439:1;17434:4;:6;17429:1;17428:13;1113:9;17404:38;17378:65;;17468:55;17484:13;17482:1;:15;17500:22;17468:12;:55::i;:::-;17458:65;;17914:22;17912:1;:24;17610:281;17650:182;17791:9;17768:22;17766:1;:24;:34;17728:1;17719:7;:10;:82;17650:4;:182::i;:::-;17861:7;17610:12;:281::i;:::-;17587:350;;;;;;;;17538:414;;18022:22;18019:1;17999:19;:21;17998:46;17983:13;:62;17967:78;;18096:19;18078:15;:37;18060:55;;16891:1236;18147:4;18140:11;;:3;:11;;;18137:106;;;18193:13;18177;:29;;;;18227:4;18221:3;:10;;;;18137:106;18260:15;18253:22;;15903:2380;;;;;;;;;;;;:::o;22303:147::-;22361:7;22381:9;22397:1;22393;:5;22381:17;;22421:1;22416;:6;;22409:14;;;;;;22441:1;22434:8;;22303:147;;;;;:::o;18810:2164::-;18914:7;18939:20;18985:22;19022:12;19051:16;19100:21;19148:30;19296:20;19357:9;18962:12;;18939:35;;19010:1;18985:26;;19037:3;;19022:18;;19070:19;19087:1;19082:4;:6;19070:11;:19::i;:::-;19051:38;;19124:13;;19100:37;;19217:1;19212:4;:6;19207:1;19206:13;1113:9;19182:38;19148:73;;19262:8;19251:7;19236:12;:22;19235:35;19232:667;;;19334:8;19319:12;:23;19296:46;;19403:22;19400:1;19387:12;:14;19386:39;19369:13;:57;19357:69;;19461:12;19451:7;:22;19441:32;;19565:22;19562:1;19549:12;:14;19548:39;19544:1;19542;:3;19541:47;19537:1;19524:12;:14;;;;;;;;19523:66;19505:14;:85;19488:102;;19653:22;19650:1;19637:12;:14;19636:39;19621:13;:55;19605:71;;19721:12;19706;:27;19691:42;;19760:1;19755:4;:6;19748:13;;19838:1;19833:4;:6;19828:1;19827:13;1113:9;19803:38;19777:65;;19868:19;19885:1;19880:4;:6;19868:11;:19::i;:::-;19857:30;;19232:667;19939:8;19928:7;19913:12;:22;19912:35;19909:596;;;20003:8;19988:12;:23;19973:38;;20046:12;20036:7;:22;20026:32;;20112:22;20109:1;20096:12;:14;20095:39;20078:13;:57;20074:61;;20227:22;20224:1;20211:12;:14;20210:39;20206:1;20204;:3;20203:47;20199:1;20186:12;:14;;;;;;;;20185:66;20167:14;:85;20150:102;;20283:1;20267:17;;20329:12;20314;:27;20299:42;;20368:1;20363:4;:6;20356:13;;20446:1;20441:4;:6;20436:1;20435:13;1113:9;20411:38;20385:65;;20476:17;20488:4;20476:11;:17::i;:::-;20465:28;;19909:596;20528:1;20518:7;:11;20515:303;;;20589:22;20586:1;20578:7;:9;20577:34;20560:13;:52;20556:56;;20695:22;20692:1;20684:7;:9;20683:34;20679:1;20677;:3;20676:42;20672:1;20664:7;:9;;;;;;;;20663:56;20645:14;:75;20628:92;;20766:7;20751:12;:22;20736:37;;20805:1;20789:17;;20515:303;20839:4;20831:12;;:4;:12;;;20828:107;;;20875:4;20869:3;:10;;;;20910:13;20894;:29;;;;20828:107;20952:14;20945:21;;18810:2164;;;;;;;;;;;;:::o;2899:2160::-;2999:7;3024:20;3070:22;3107:12;3136:16;3185:21;3233:30;3381:20;3442:9;3047:12;;3024:35;;3095:1;3070:26;;3122:3;;3107:18;;3155:19;3172:1;3167:4;:6;3155:11;:19::i;:::-;3136:38;;3209:13;;3185:37;;3302:1;3297:4;:6;3292:1;3291:13;1113:9;3267:38;3233:73;;3347:8;3336:7;3321:12;:22;3320:35;3317:667;;;3419:8;3404:12;:23;3381:46;;3488:22;3485:1;3472:12;:14;3471:39;3454:13;:57;3442:69;;3546:12;3536:7;:22;3526:32;;3650:22;3647:1;3634:12;:14;3633:39;3629:1;3627;:3;3626:47;3622:1;3609:12;:14;;;;;;;;3608:66;3590:14;:85;3573:102;;3738:22;3735:1;3722:12;:14;3721:39;3706:13;:55;3690:71;;3806:12;3791;:27;3776:42;;3845:1;3840:4;:6;3833:13;;3923:1;3918:4;:6;3913:1;3912:13;1113:9;3888:38;3862:65;;3953:19;3970:1;3965:4;:6;3953:11;:19::i;:::-;3942:30;;3317:667;4024:8;4013:7;3998:12;:22;3997:35;3994:596;;;4088:8;4073:12;:23;4058:38;;4131:12;4121:7;:22;4111:32;;4197:22;4194:1;4181:12;:14;4180:39;4163:13;:57;4159:61;;4312:22;4309:1;4296:12;:14;4295:39;4291:1;4289;:3;4288:47;4284:1;4271:12;:14;;;;;;;;4270:66;4252:14;:85;4235:102;;4368:1;4352:17;;4414:12;4399;:27;4384:42;;4453:1;4448:4;:6;4441:13;;4531:1;4526:4;:6;4521:1;4520:13;1113:9;4496:38;4470:65;;4561:17;4573:4;4561:11;:17::i;:::-;4550:28;;3994:596;4613:1;4603:7;:11;4600:303;;;4674:22;4671:1;4663:7;:9;4662:34;4645:13;:52;4641:56;;4780:22;4777:1;4769:7;:9;4768:34;4764:1;4762;:3;4761:42;4757:1;4749:7;:9;;;;;;;;4748:56;4730:14;:75;4713:92;;4851:7;4836:12;:22;4821:37;;4890:1;4874:17;;4600:303;4924:4;4916:12;;:4;:12;;;4913:107;;;4960:4;4954:3;:10;;;;4995:13;4979;:29;;;;4913:107;5037:14;5030:21;;2899:2160;;;;;;;;;;;;:::o;20990:198::-;21035:6;21054;21073:1;21068;21064;:5;21063:11;;;;;;;;21054:20;;21089:1;21085:5;;21101:80;21112:1;21108;:5;21101:80;;;21134:1;21130:5;;21168:1;21163;21159;21155;:5;;;;;;;;:9;21154:15;;;;;;;;21150:19;;21101:80;;;20990:198;;;;:::o;18294:504::-;18366:7;18402:1;18394:4;:9;;18391:71;;;18445:4;18437:5;:12;18429:21;;;;18391:71;18482:1;18475:4;:8;:22;;;;;18495:2;18487:4;:10;;18475:22;18472:97;;;18550:5;18547:1;18542:4;:6;18541:14;18531:6;:25;18523:34;;;;18472:97;18589:2;18582:4;:9;:23;;;;;18603:2;18595:4;:10;;18582:23;18579:99;;;18659:5;18655:2;18650:4;:7;18649:15;18639:6;:26;18631:35;;;;18579:99;18698:2;18691:4;:9;18688:84;;;18753:5;18749:2;18744:4;:7;18743:15;18734:6;:25;18726:34;;;;18688:84;18789:1;18782:8;;18294:504;;;;:::o;28:21163::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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