ETH Price: $3,346.38 (-1.26%)

Token

DLTS (DLTS)
 

Overview

Max Total Supply

23,252.124050726987737404 DLTS

Holders

20

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
DLTS

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-01
*/

pragma solidity ^0.4.20;

 /**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function percent(uint value,uint numerator, uint denominator, uint precision) internal pure  returns(uint quotient) {
        uint _numerator  = numerator * 10 ** (precision+1);
        uint _quotient =  ((_numerator / denominator) + 5) / 10;
        return (value*_quotient/1000000000000000000);
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract ERC20 {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract Receiver {
    function sendFundsTo(address tracker, uint256 amount, address receiver) public returns (bool) {
        return ERC20(tracker).transfer(receiver, amount);
    }
}

contract DLTS {
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    
    string public name                                      = "DLTS";
    string public symbol                                    = "DLTS";
    uint8 constant public decimals                          = 18;
    uint8 constant internal dividendFee_                    = 5;
    uint8 constant internal referralPer_                    = 20;
    uint8 constant internal developerFee_                   = 5;
   
	uint256 internal stakePer_                              = 250000000000000000;
    uint256 constant internal tokenPriceInitial_            = 0.00001 ether;
    uint256 constant internal tokenPriceIncremental_        = 0.000001 ether;
    uint256 constant internal tokenPriceDecremental_        = 0.000001 ether;
    uint256 constant internal dltxPrice_                    = 0.004 ether;
    uint256 constant internal magnitude                     = 2**64;
    
   
    uint256 public stakingRequirement                       = 1e18;
    
    // Ambassador program
    mapping(address => bool) internal ambassadors_;
    uint256 constant internal ambassadorMaxPurchase_        = 1 ether;
    uint256 constant internal ambassadorQuota_              = 1 ether;
    
   /*================================
    =            DATASETS            =
    ================================*/
    
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal stakeBalanceLedger_;
    mapping(address => uint256) internal stakingTime_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => uint256) public DLTXbuying_;
    mapping(address => uint256) public DLTXbuyingETHamt_;
    mapping(address => address) public receiversMap;
    
    mapping(address => address) internal referralLevel1Address;
    mapping(address => address) internal referralLevel2Address;
    mapping(address => address) internal referralLevel3Address;
    mapping(address => address) internal referralLevel4Address;
    mapping(address => address) internal referralLevel5Address;
    mapping(address => address) internal referralLevel6Address;
    mapping(address => address) internal referralLevel7Address;
    mapping(address => address) internal referralLevel8Address;
    mapping(address => address) internal referralLevel9Address;
    mapping(address => address) internal referralLevel10Address;
    
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal ambassadorAccumulatedQuota_;
    uint256 internal tokenSupply_                           = 0;
    uint256 internal developerBalance                       = 0;
   
    uint256 internal profitPerShare_;
    
  
    mapping(bytes32 => bool) public administrators;
    
    bool public onlyAmbassadors = false;
    
    /*=================================
    =            MODIFIERS            =
    =================================*/
    
     // Only people with tokens
    modifier onlybelievers () {
        require(myTokens() > 0);
        _;
    }
    
    // Only people with profits
    modifier onlyhodler() {
        require(myDividends(true) > 0);
        _;
    }
    
    // Only admin
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[keccak256(_customerAddress)]);
        _;
    }
	 
    
    modifier antiEarlyWhale(uint256 _amountOfEthereum){
        address _customerAddress = msg.sender;
        if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){
            require(
                // is the customer in the ambassador list?
                ambassadors_[_customerAddress] == true &&
                // does the customer purchase exceed the max ambassador quota?
                (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_
            );
            // updated the accumulated quota    
            ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum);
            _;
        } else {
            // in case the ether count drops low, the ambassador phase won't reinitiate
            onlyAmbassadors = false;
            _;    
        }
    }
    
    /*==============================
    =            EVENTS            =
    ==============================*/
    
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy
    );
    
    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );
    
    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
    
    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
    
    /*=======================================
    =            PUBLIC FUNCTIONS            =
    =======================================*/
    /*
    * -- APPLICATION ENTRY POINTS --  
    */
    function DLTS() public {
        // add administrators here
        administrators[0x95f233c215d38f05b6c5285c46abeb4e0f6a3a9d4fe0334fdd4d480a515d9f59] = true;
        
        ambassadors_[0x0000000000000000000000000000000000000000] = true;
    }
     
    /**
     * BUY
     */
    function buy(address _referredBy) public payable returns(uint256) {
        purchaseTokens(msg.value, _referredBy);
    }
    
    function() payable public {
        purchaseTokens(msg.value, 0x0);
    }
    
    /**
     * REINVEST
     */
    function reinvest() onlyhodler() public {
        
        uint256 _dividends                  = myDividends(false); // retrieve ref. bonus later in the code
        
        address _customerAddress            = msg.sender;
        payoutsTo_[_customerAddress]        +=  (int256) (_dividends * magnitude);
        
        _dividends                          += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress]  = 0;
        
        uint256 _tokens                     = purchaseTokens(_dividends, 0x0);
        // fire event
        onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    /**
     * EXIT
     */
    function exit() public {
        
        address _customerAddress            = msg.sender;
        uint256 _tokens                     = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
        withdraw();
    }

    /**
     * WITHDRAW
     */
    function withdraw() onlyhodler() public {
        
        address _customerAddress            = msg.sender;
        uint256 _dividends                  = myDividends(false); // get ref. bonus later in the code
        
        payoutsTo_[_customerAddress]        +=  (int256) (_dividends * magnitude);
        
        _dividends                          += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress]  = 0;
        
        _customerAddress.transfer(_dividends);
        // fire event
        onWithdraw(_customerAddress, _dividends);
    }
    
    /**
     * SELL
     */
    function sell(uint256 _amountOfTokens) onlybelievers () public {
        address _customerAddress            = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens                     = _amountOfTokens;
        uint256 _ethereum                   = tokensToEthereum_(_tokens);
        uint256 _dividends                  = myDividends(false);
        uint256 _taxedEthereum              = _ethereum;
        
        tokenSupply_                        = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        
        int256 _updatedPayouts              = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress]        -= _updatedPayouts;       
        
        if (tokenSupply_ > 0) {
        
            profitPerShare_                 = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        
        onTokenSell(_customerAddress, _tokens, _taxedEthereum);
    }
    
    /**
     * TRANSFER
     */
    function transfer(address _toAddress, uint256 _amountOfTokens) onlybelievers () public returns(bool) {
        address _customerAddress            = msg.sender;
        
        require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        if(myDividends(true) > 0) withdraw();
       
       
        uint256 _taxedTokens                = _amountOfTokens;
        uint256 _dividends                  = myDividends(false);
        
        tokenSupply_                        = tokenSupply_;
        
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress]     = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
       
        payoutsTo_[_customerAddress]        -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress]              += (int256) (profitPerShare_ * _taxedTokens);
       
        profitPerShare_                     = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
       
        Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
    }
    
    /*----------  ADMINISTRATOR ONLY FUNCTIONS  ----------*/
    
    function disableInitialStage() onlyAdministrator() public {
        onlyAmbassadors                     = false;
    }
    
     function changeStakePercent(uint256 stakePercent) onlyAdministrator() public {
        stakePer_                           = stakePercent;
    }
    
    function setAdministrator(bytes32 _identifier, bool _status) onlyAdministrator() public {
        administrators[_identifier]         = _status;
    }
    
    function setStakingRequirement(uint256 _amountOfTokens) onlyAdministrator() public {
        stakingRequirement                  = _amountOfTokens;
    }
    
    function setName(string _name) onlyAdministrator() public {
        name                                = _name;
    }
    
    function setSymbol(string _symbol) onlyAdministrator() public {
        symbol                              = _symbol;
    }
    
      
    function withdrawDeveloperFees() external onlyAdministrator {
        address _adminAddress   = msg.sender;
        _adminAddress.transfer(developerBalance);
        developerBalance        = 0;
    }
	
	
    
    /*---------- CALCULATORS  ----------*/
    
    function totalEthereumBalance() public view returns(uint) {
        return this.balance;
    }
   
    function totalDeveloperBalance() public view returns(uint) {
        return developerBalance;
    }
   
	
    
    function totalSupply() public view returns(uint256) {
        return tokenSupply_;
    }
    
    
    function myTokens() public view returns(uint256) {
        address _customerAddress            = msg.sender;
        return balanceOf(_customerAddress);
    }
    
    
    function myDividends(bool _includeReferralBonus) public view returns(uint256) {
        address _customerAddress            = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }
    
   
    function balanceOf(address _customerAddress) view public returns(uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }
	

    function dividendsOf(address _customerAddress) view public returns(uint256) {
        return (uint256) ((int256)(profitPerShare_ * (tokenBalanceLedger_[_customerAddress] + stakeBalanceLedger_[_customerAddress])) - payoutsTo_[_customerAddress]) / magnitude;
    }
    
   
    function sellPrice() public view returns(uint256) {
        if(tokenSupply_ == 0){
            return tokenPriceInitial_       - tokenPriceDecremental_;
        } else {
            uint256 _ethereum               = tokensToEthereum_(1e18);
            uint256 _taxedEthereum          = _ethereum;
            return _taxedEthereum;
        }
    }
    
   
    function buyPrice() public view returns(uint256) {
        if(tokenSupply_ == 0){
            return tokenPriceInitial_       + tokenPriceIncremental_;
        } else {
            uint256 _ethereum               = tokensToEthereum_(1e18);
            uint256 untotalDeduct           = developerFee_ + referralPer_ + dividendFee_ ;
            uint256 totalDeduct             = SafeMath.percent(_ethereum,untotalDeduct,100,18);
            uint256 _taxedEthereum          = SafeMath.add(_ethereum, totalDeduct);
            return _taxedEthereum;
        }
    }
   
    function calculateTokensReceived(uint256 _ethereumToSpend) public view returns(uint256) {
        uint256 untotalDeduct               = developerFee_ + referralPer_ + dividendFee_ ;
        uint256 totalDeduct                 = SafeMath.percent(_ethereumToSpend,untotalDeduct,100,18);
        uint256 _taxedEthereum              = SafeMath.sub(_ethereumToSpend, totalDeduct);
        uint256 _amountOfTokens             = ethereumToTokens_(_taxedEthereum);
        return _amountOfTokens;
    }
   
    function calculateEthereumReceived(uint256 _tokensToSell) public view returns(uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum                   = tokensToEthereum_(_tokensToSell);
        uint256 _taxedEthereum              = _ethereum;
        return _taxedEthereum;
    }
    
    function stakeTokens(uint256 _amountOfTokens) onlybelievers () public returns(bool){
        address _customerAddress            = msg.sender;
      
        require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _amountOfTokensWith1Token   = SafeMath.sub(_amountOfTokens, 1e18);
        stakingTime_[_customerAddress]      = now;
        stakeBalanceLedger_[_customerAddress] = SafeMath.add(stakeBalanceLedger_[_customerAddress], _amountOfTokensWith1Token);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokensWith1Token);
    }
    
    
    function stakeTokensBalance(address _customerAddress) public view returns(uint256){
       uint256 timediff                    = SafeMath.sub(now, stakingTime_[_customerAddress]);
        uint256 dayscount                   = SafeMath.div(timediff, 86400); //86400 Sec for 1 Day
        uint256 roiPercent                  = SafeMath.mul(dayscount, stakePer_);
        uint256 roiTokens                   = SafeMath.percent(stakeBalanceLedger_[_customerAddress],roiPercent,100,18);
        uint256 finalBalance                = SafeMath.add(stakeBalanceLedger_[_customerAddress],roiTokens/1e18);
        return finalBalance;
    }
    
    function stakeTokensTime(address _customerAddress) public view returns(uint256){
        return stakingTime_[_customerAddress];
    }
    
    function releaseStake() onlybelievers () public returns(bool){
       
         address _customerAddress            = msg.sender;
    
        require(!onlyAmbassadors && stakingTime_[_customerAddress] > 0);
        uint256 _amountOfTokens             = stakeBalanceLedger_[_customerAddress];
        uint256 timediff                    = SafeMath.sub(now, stakingTime_[_customerAddress]);
        uint256 dayscount                   = SafeMath.div(timediff, 86400);
        uint256 roiPercent                  = SafeMath.mul(dayscount, stakePer_);
        uint256 roiTokens                   = SafeMath.percent(_amountOfTokens,roiPercent,100,18);
        uint256 finalBalance                = SafeMath.add(_amountOfTokens,roiTokens/1e18);
        
    
        tokenSupply_                        = SafeMath.add(tokenSupply_, roiTokens/1e18);
    
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], finalBalance);
        stakeBalanceLedger_[_customerAddress] = 0;
        stakingTime_[_customerAddress]      = 0;
        
    }
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    
    uint256 developerFee;
    
    uint256 incETH;
    address _refAddress; 
    uint256 _referralBonus;
    
    uint256 bonusLv1;
    uint256 bonusLv2;
    uint256 bonusLv3;
    uint256 bonusLv4;
    uint256 bonusLv5;
    uint256 bonusLv6;
    uint256 bonusLv7;
    uint256 bonusLv8;
    uint256 bonusLv9;
    uint256 bonusLv10;
    
    uint256 DLTXtoETH;
    uint256 DLTXbalance;
    
    address chkLv2;
    address chkLv3;
    address chkLv4;
    address chkLv5;
    address chkLv6;
    address chkLv7;
    address chkLv8;
    address chkLv9;
    address chkLv10;
    
    struct RefUserDetail {
        address refUserAddress;
        uint256 refLevel;
    }

    mapping(address => mapping (uint => RefUserDetail)) public RefUser;
    mapping(address => uint256) public referralCount_;
    
    function getDownlineRef(address senderAddress, uint dataId) external view returns (address,uint) { 
        return (RefUser[senderAddress][dataId].refUserAddress,RefUser[senderAddress][dataId].refLevel);
    }
    
    function addDownlineRef(address senderAddress, address refUserAddress, uint refLevel) internal {
        referralCount_[senderAddress]++;
        uint dataId = referralCount_[senderAddress];
        RefUser[senderAddress][dataId].refUserAddress = refUserAddress;
        RefUser[senderAddress][dataId].refLevel = refLevel;
    }

    function getref(address _customerAddress, uint _level) public view returns(address lv) {
        if(_level == 1) {
            lv = referralLevel1Address[_customerAddress];
        } else if(_level == 2) {
            lv = referralLevel2Address[_customerAddress];
        } else if(_level == 3) {
            lv = referralLevel3Address[_customerAddress];
        } else if(_level == 4) {
            lv = referralLevel4Address[_customerAddress];
        } else if(_level == 5) {
            lv = referralLevel5Address[_customerAddress];
        } else if(_level == 6) {
            lv = referralLevel6Address[_customerAddress];
        } else if(_level == 7) {
            lv = referralLevel7Address[_customerAddress];
        } else if(_level == 8) {
            lv = referralLevel8Address[_customerAddress];
        } else if(_level == 9) {
            lv = referralLevel9Address[_customerAddress];
        } else if(_level == 10) {
            lv = referralLevel10Address[_customerAddress];
        }
		
        return lv;
    }
    
    function distributeRefBonus(uint256 _incomingEthereum, address _referredBy, address _sender, bool _newReferral) internal {
        address _customerAddress        = _sender;
        uint256 remainingRefBonus       = _incomingEthereum;
        _referralBonus                  = _incomingEthereum;
        
        bonusLv1                        = SafeMath.percent(_referralBonus,30,100,18);
        bonusLv2                        = SafeMath.percent(_referralBonus,20,100,18);
        bonusLv3                        = SafeMath.percent(_referralBonus,10,100,18);
        bonusLv4                        = SafeMath.percent(_referralBonus,5,100,18);
        bonusLv5                        = SafeMath.percent(_referralBonus,3,100,18);
        bonusLv6                        = SafeMath.percent(_referralBonus,2,100,18);
        bonusLv7                        = SafeMath.percent(_referralBonus,2,100,18);
        bonusLv8                        = SafeMath.percent(_referralBonus,2,100,18);
        bonusLv9                        = SafeMath.percent(_referralBonus,1,100,18);
        bonusLv10                       = SafeMath.percent(_referralBonus,1,100,18);
        
      
        referralLevel1Address[_customerAddress]                     = _referredBy;
        referralBalance_[referralLevel1Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel1Address[_customerAddress]], bonusLv1);
        remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv1);
        if(_newReferral == true) {
            addDownlineRef(_referredBy, _customerAddress, 1);
        }
        
        chkLv2                          = referralLevel1Address[_referredBy];
        chkLv3                          = referralLevel2Address[_referredBy];
        chkLv4                          = referralLevel3Address[_referredBy];
        chkLv5                          = referralLevel4Address[_referredBy];
        chkLv6                          = referralLevel5Address[_referredBy];
        chkLv7                          = referralLevel6Address[_referredBy];
        chkLv8                          = referralLevel7Address[_referredBy];
        chkLv9                          = referralLevel8Address[_referredBy];
        chkLv10                         = referralLevel9Address[_referredBy];
        
      
        if(chkLv2 != 0x0000000000000000000000000000000000000000) {
            referralLevel2Address[_customerAddress]                     = referralLevel1Address[_referredBy];
            referralBalance_[referralLevel2Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel2Address[_customerAddress]], bonusLv2);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv2);
            if(_newReferral == true) {
                addDownlineRef(referralLevel1Address[_referredBy], _customerAddress, 2);
            }
        }
        
      
        if(chkLv3 != 0x0000000000000000000000000000000000000000) {
            referralLevel3Address[_customerAddress]                     = referralLevel2Address[_referredBy];
            referralBalance_[referralLevel3Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel3Address[_customerAddress]], bonusLv3);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv3);
            if(_newReferral == true) {
                addDownlineRef(referralLevel2Address[_referredBy], _customerAddress, 3);
            }
        }
        
      
        if(chkLv4 != 0x0000000000000000000000000000000000000000) {
            referralLevel4Address[_customerAddress]                     = referralLevel3Address[_referredBy];
            referralBalance_[referralLevel4Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel4Address[_customerAddress]], bonusLv4);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv4);
            if(_newReferral == true) {
                addDownlineRef(referralLevel3Address[_referredBy], _customerAddress, 4);
            }
        }
        
      
        if(chkLv5 != 0x0000000000000000000000000000000000000000) {
            referralLevel5Address[_customerAddress]                     = referralLevel4Address[_referredBy];
            referralBalance_[referralLevel5Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel5Address[_customerAddress]], bonusLv5);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv5);
            if(_newReferral == true) {
                addDownlineRef(referralLevel4Address[_referredBy], _customerAddress, 5);
            }
        }
        
      
        if(chkLv6 != 0x0000000000000000000000000000000000000000) {
            referralLevel6Address[_customerAddress]                     = referralLevel5Address[_referredBy];
            referralBalance_[referralLevel6Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel6Address[_customerAddress]], bonusLv6);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv6);
            if(_newReferral == true) {
                addDownlineRef(referralLevel5Address[_referredBy], _customerAddress, 6);
            }
        }
        
        
        if(chkLv7 != 0x0000000000000000000000000000000000000000) {
            referralLevel7Address[_customerAddress]                     = referralLevel6Address[_referredBy];
            referralBalance_[referralLevel7Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel7Address[_customerAddress]], bonusLv7);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv7);
            if(_newReferral == true) {
                addDownlineRef(referralLevel6Address[_referredBy], _customerAddress, 7);
            }
        }
        
        
        if(chkLv8 != 0x0000000000000000000000000000000000000000) {
            referralLevel8Address[_customerAddress]                     = referralLevel7Address[_referredBy];
            referralBalance_[referralLevel8Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel8Address[_customerAddress]], bonusLv8);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv8);
            if(_newReferral == true) {
                addDownlineRef(referralLevel7Address[_referredBy], _customerAddress, 8);
            }
        }
        
        
        if(chkLv9 != 0x0000000000000000000000000000000000000000) {
            referralLevel9Address[_customerAddress]                     = referralLevel8Address[_referredBy];
            referralBalance_[referralLevel9Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel9Address[_customerAddress]], bonusLv9);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv9);
            if(_newReferral == true) {
                addDownlineRef(referralLevel8Address[_referredBy], _customerAddress, 9);
            }
        }
        
       
        if(chkLv10 != 0x0000000000000000000000000000000000000000) {
            referralLevel10Address[_customerAddress]                    = referralLevel9Address[_referredBy];
            referralBalance_[referralLevel10Address[_customerAddress]]  = SafeMath.add(referralBalance_[referralLevel10Address[_customerAddress]], bonusLv10);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv10);
            if(_newReferral == true) {
                addDownlineRef(referralLevel9Address[_referredBy], _customerAddress, 10);
            }
        }
        
        developerBalance                    = SafeMath.add(developerBalance, remainingRefBonus);
    }


    function createDLTXReceivers(address _customerAddress, uint256 _DLTXamt, uint256 _DLTXETHamt) public returns(address){
            DLTXbuying_[_customerAddress] = _DLTXamt;
            DLTXbuyingETHamt_[_customerAddress] = _DLTXETHamt;
            if(receiversMap[_customerAddress] == 0x0000000000000000000000000000000000000000) {
                receiversMap[_customerAddress] = new Receiver();
            }
            return receiversMap[_customerAddress];
    }
    
    function showDLTXReceivers(address _customerAddress) public view returns(address){
            return receiversMap[_customerAddress];
    }
    
    function showDLTXBalance(address tracker, address _customerAddress) public view returns(uint256){
            return ERC20(0x0435316b3ab4b999856085c98c3b1ab21d85cd4d).balanceOf(receiversMap[_customerAddress]);
    }
    
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy) antiEarlyWhale(_incomingEthereum) internal returns(uint256) {
        
        address _customerAddress            = msg.sender;
        incETH                              = _incomingEthereum;
        
        if(DLTXbuying_[_customerAddress] > 0) {
            DLTXbalance = ERC20(0x0435316b3ab4b999856085c98c3b1ab21d85cd4d).balanceOf(receiversMap[_customerAddress]);
            require(DLTXbalance >= DLTXbuying_[_customerAddress]);
            require(incETH >= DLTXbuyingETHamt_[_customerAddress]);
            DLTXtoETH                       = (DLTXbuying_[_customerAddress]/10**18) * dltxPrice_;
            incETH                          = SafeMath.add(incETH, DLTXtoETH);
            
            Receiver(receiversMap[_customerAddress]).sendFundsTo(0x0435316b3ab4b999856085c98c3b1ab21d85cd4d, DLTXbalance, 0x22450AE775Fc956491b2100EbD38f2F21A25aF6E);
            
            DLTXbuying_[_customerAddress] = 0;
            DLTXbuyingETHamt_[_customerAddress] = 0;
        }
       
        developerFee                        = SafeMath.percent(incETH,developerFee_,100,18);
        developerBalance                    = SafeMath.add(developerBalance, developerFee);
        
		
        
        _referralBonus                      = SafeMath.percent(incETH,referralPer_,100,18);
        
        uint256 _dividends                  = SafeMath.percent(incETH,dividendFee_,100,18);
        
        uint256 untotalDeduct               = developerFee_ + referralPer_ + dividendFee_;
        uint256 totalDeduct                 = SafeMath.percent(incETH,untotalDeduct,100,18);
        
        uint256 _taxedEthereum              = SafeMath.sub(incETH, totalDeduct);
        uint256 _amountOfTokens             = ethereumToTokens_(_taxedEthereum);
        uint256 _fee                        = _dividends * magnitude;
        bool    _newReferral                = true;
        if(referralLevel1Address[_customerAddress] != 0x0000000000000000000000000000000000000000) {
            _referredBy                     = referralLevel1Address[_customerAddress];
            _newReferral                    = false;
        }
        
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        if(
           
            _referredBy != 0x0000000000000000000000000000000000000000 &&
           
            _referredBy != _customerAddress &&
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ){
            
            distributeRefBonus(_referralBonus,_referredBy,_customerAddress,_newReferral);
        } else {
           
            developerBalance                = SafeMath.add(developerBalance, _referralBonus);
        }
       
        if(tokenSupply_ > 0){
           
            tokenSupply_                    = SafeMath.add(tokenSupply_, _amountOfTokens);
           
            profitPerShare_                 += (_dividends * magnitude / (tokenSupply_));
            
            _fee                            = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
        } else {
            
            tokenSupply_                    = _amountOfTokens;
        }
        
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts              = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress]        += _updatedPayouts;
       
        onTokenPurchase(_customerAddress, incETH, _amountOfTokens, _referredBy);
        return _amountOfTokens;
    }

   
    function ethereumToTokens_(uint256 _ethereum) internal view returns(uint256) {
        uint256 _tokenPriceInitial          = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived             = 
         (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial**2)
                            +
                            (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
                            +
                            (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +
                            (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;

        return _tokensReceived;
    }
    
    
     function tokensToEthereum_(uint256 _tokens) internal view returns(uint256) {
        uint256 tokens_                     = (_tokens + 1e18);
        uint256 _tokenSupply                = (tokenSupply_ + 1e18);
        uint256 _etherReceived              =
        (
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceDecremental_ * (_tokenSupply/1e18))
                        )-tokenPriceDecremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceDecremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        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;
        }
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"receiversMap","outputs":[{"name":"","type":"address"}],"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":"tracker","type":"address"},{"name":"_customerAddress","type":"address"}],"name":"showDLTXBalance","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":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"senderAddress","type":"address"},{"name":"dataId","type":"uint256"}],"name":"getDownlineRef","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DLTXbuyingETHamt_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"stakeTokensBalance","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":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"RefUser","outputs":[{"name":"refUserAddress","type":"address"},{"name":"refLevel","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseStake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"showDLTXReceivers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDeveloperBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"stakeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"stakeTokensTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_customerAddress","type":"address"},{"name":"_DLTXamt","type":"uint256"},{"name":"_DLTXETHamt","type":"uint256"}],"name":"createDLTXReceivers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DLTXbuying_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"stakePercent","type":"uint256"}],"name":"changeStakePercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDeveloperFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_level","type":"uint256"}],"name":"getref","outputs":[{"name":"lv","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralCount_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"reinvest","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":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"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"}]

606060405260408051908101604052600481527f444c545300000000000000000000000000000000000000000000000000000000602082015260009080516200004d9291602001906200013a565b5060408051908101604052600481527f444c54530000000000000000000000000000000000000000000000000000000060208201526001908051620000979291602001906200013a565b506703782dace9d90000600255670de0b6b3a764000060035560006018819055601955601c805460ff191690553415620000d057600080fd5b7f133166b7d199544148ab469a98b51fee98f920dcb08b6b29b0a82e614695f2458054600160ff1991821681179092556000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec80549091169091179055620001df565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017d57805160ff1916838001178555620001ad565b82800160010185558215620001ad579182015b82811115620001ad57825182559160200191906001019062000190565b50620001bb929150620001bf565b5090565b620001dc91905b80821115620001bb5760008155600101620001c6565b90565b61327280620001ef6000396000f3006060604052600436106101ff5763ffffffff60e060020a60003504166265318b811461020d57806306fdde031461023e5780630ce5071e146102c857806310d0ffdd1461030357806318160ddd146103195780631d94a8851461032c578063226093731461035157806327defa1f146103675780632b152e401461038e5780632c2dc71d146103d25780632fc2a572146103f1578063313ce56714610410578063392efb52146104395780633ccfd60b1461044f57806343360a8e146104645780634b7503341461048657806356d399e8146104995780635c48c1fa146104ac57806361450dd4146104bf57806366b3fa60146104de578063688abbf7146104f15780636b2f46321461050957806370a082311461051c5780637547c7a31461053b57806377e79b41146105515780638328b610146105705780638620410b1461058657806389135ae914610599578063949e8acd146105b457806395d89b41146105c7578063a8e04f34146105da578063a9059cbb146105ed578063ac45d61d1461060f578063b84c824614610634578063bb5751c714610685578063c47f0027146106a4578063ce81a760146106f5578063dfc399471461070b578063e47351041461071e578063e4849b3214610740578063e5deb30414610756578063e9fad8ee14610775578063f088d54714610788578063fdb5a03e1461079c575b61020a3460006107af565b50005b341561021857600080fd5b61022c600160a060020a03600435166112b5565b60405190815260200160405180910390f35b341561024957600080fd5b6102516112fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561028d578082015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102e7600160a060020a036004351661139a565b604051600160a060020a03909116815260200160405180910390f35b341561030e57600080fd5b61022c6004356113b5565b341561032457600080fd5b61022c6113eb565b341561033757600080fd5b61022c600160a060020a03600435811690602435166113f2565b341561035c57600080fd5b61022c600435611494565b341561037257600080fd5b61037a6114bb565b604051901515815260200160405180910390f35b341561039957600080fd5b6103b0600160a060020a03600435166024356114c4565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156103dd57600080fd5b61022c600160a060020a03600435166114f4565b34156103fc57600080fd5b61022c600160a060020a0360043516611506565b341561041b57600080fd5b6104236115c1565b60405160ff909116815260200160405180910390f35b341561044457600080fd5b61037a6004356115c6565b341561045a57600080fd5b6104626115db565b005b341561046f57600080fd5b6103b0600160a060020a03600435166024356116a7565b341561049157600080fd5b61022c6116d7565b34156104a457600080fd5b61022c611714565b34156104b757600080fd5b61037a61171a565b34156104ca57600080fd5b6102e7600160a060020a0360043516611865565b34156104e957600080fd5b61022c611883565b34156104fc57600080fd5b61022c6004351515611889565b341561051457600080fd5b61022c6118cc565b341561052757600080fd5b61022c600160a060020a03600435166118da565b341561054657600080fd5b61037a6004356118f5565b341561055c57600080fd5b61022c600160a060020a03600435166119dd565b341561057b57600080fd5b6104626004356119f8565b341561059157600080fd5b61022c611a4f565b34156105a457600080fd5b6104626004356024351515611aae565b34156105bf57600080fd5b61022c611b20565b34156105d257600080fd5b610251611b33565b34156105e557600080fd5b610462611b9e565b34156105f857600080fd5b61037a600160a060020a0360043516602435611bfc565b341561061a57600080fd5b6102e7600160a060020a0360043516602435604435611d89565b341561063f57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611e3295505050505050565b341561069057600080fd5b61022c600160a060020a0360043516611e9b565b34156106af57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ead95505050505050565b341561070057600080fd5b610462600435611f11565b341561071657600080fd5b610462611f68565b341561072957600080fd5b6102e7600160a060020a0360043516602435611ffb565b341561074b57600080fd5b6104626004356121a3565b341561076157600080fd5b61022c600160a060020a03600435166122f6565b341561078057600080fd5b610462612308565b61022c600160a060020a036004351661233f565b34156107a757600080fd5b61046261234b565b6000806000806000806000806000808b6000339050601c60009054906101000a900460ff1680156107f15750670de0b6b3a7640000826107ed6118cc565b0311155b15610da557600160a060020a03811660009081526004602052604090205460ff16151560011480156108465750600160a060020a038116600090815260176020526040902054670de0b6b3a764000090830111155b151561085157600080fd5b600160a060020a0381166000908152601760205260409020546108749083612406565b6017600083600160a060020a0316600160a060020a0316815260200190815260200160002081905550339a508d601e819055506000600960008d600160a060020a0316600160a060020a03168152602001908152602001600020541115610ae857600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561095257600080fd5b6102c65a03f1151561096357600080fd5b5050506040518051602c819055600160a060020a038d16600090815260096020526040902054901015905061099757600080fd5b600160a060020a038b166000908152600a6020526040902054601e5410156109be57600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e546109fc91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610aa657600080fd5b6102c65a03f11515610ab757600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610afa90600560646012612420565b601d819055601954610b0b91612406565b601955601e54610b2090601460646012612420565b602055601e54610b3590600560646012612420565b601e8054919b509950610b4c908a60646012612420565b9750610b5a601e5489612465565b9650610b6587612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c029650600195501615610bbc57600160a060020a03808c166000908152600c60205260408120549091169d5093505b600086118015610bd65750601854610bd48782612406565b115b1515610be157600080fd5b600160a060020a038d1615801590610c0b57508a600160a060020a03168d600160a060020a031614155b8015610c315750600354600160a060020a038e1660009081526005602052604090205410155b15610c4957610c446020548e8d87612513565b610c5b565b610c57601954602054612406565b6019555b60006018541115610cbf57610c7260185487612406565b6018819055680100000000000000008b02811515610c8c57fe5b601a8054929091049091019055601854680100000000000000008b02811515610cb157fe5b048602850385039450610cc5565b60188690555b600160a060020a038b16600090815260056020526040902054610ce89087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b506112a4565b601c805460ff19169055601e8e905533600160a060020a038116600090815260096020526040812054919c50901115610feb57600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610e5557600080fd5b6102c65a03f11515610e6657600080fd5b5050506040518051602c819055600160a060020a038d166000908152600960205260409020549010159050610e9a57600080fd5b600160a060020a038b166000908152600a6020526040902054601e541015610ec157600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e54610eff91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610fa957600080fd5b6102c65a03f11515610fba57600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610ffd90600560646012612420565b601d81905560195461100e91612406565b601955601e5461102390601460646012612420565b602055601e5461103890600560646012612420565b601e8054919b50995061104f908a60646012612420565b975061105d601e5489612465565b965061106887612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c0296506001955016156110bf57600160a060020a03808c166000908152600c60205260408120549091169d5093505b6000861180156110d957506018546110d78782612406565b115b15156110e457600080fd5b600160a060020a038d161580159061110e57508a600160a060020a03168d600160a060020a031614155b80156111345750600354600160a060020a038e1660009081526005602052604090205410155b1561114c576111476020548e8d87612513565b61115e565b61115a601954602054612406565b6019555b600060185411156111c25761117560185487612406565b6018819055680100000000000000008b0281151561118f57fe5b601a8054929091049091019055601854680100000000000000008b028115156111b457fe5b0486028503850394506111c8565b60188690555b600160a060020a038b166000908152600560205260409020546111eb9087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b505b505050505050505050505092915050565b600160a060020a031660009081526016602090815260408083205460068352818420546005909352922054601a546801000000000000000091909201909102919091030490565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b820191906000526020600020905b81548152906001019060200180831161137557829003601f168201915b505050505081565b600b60205260009081526040902054600160a060020a031681565b6000601e8180806113ca868560646012612420565b92506113d68684612465565b91506113e182612477565b9695505050505050565b6018545b90565b600160a060020a038181166000908152600b6020526040808220549192730435316b3ab4b999856085c98c3b1ab21d85cd4d926370a08231929116908490516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561147357600080fd5b6102c65a03f1151561148457600080fd5b5050506040518051949350505050565b600080600060185484111515156114aa57600080fd5b6114b384612ee6565b949350505050565b601c5460ff1681565b600160a060020a039182166000908152603660209081526040808320938352929052208054600190910154911691565b600a6020526000908152604090205481565b60008060008060008061153e42600760008a600160a060020a0316600160a060020a0316815260200190815260200160002054612465565b945061154d8562015180612f53565b935061155b84600254612f6a565b600160a060020a038816600090815260066020526040902054909350611585908460646012612420565b600160a060020a0388166000908152600660205260409020549092506115b690670de0b6b3a7640000845b04612406565b979650505050505050565b601281565b601b6020526000908152604090205460ff1681565b60008060006115ea6001611889565b116115f457600080fd5b3391506116016000611889565b600160a060020a0383166000818152601660209081526040808320805468010000000000000000870201905560089091528082208054929055920192509082156108fc0290839051600060405180830381858888f19350505050151561166657600080fd5b81600160a060020a03167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc8260405190815260200160405180910390a25050565b603660209081526000928352604080842090915290825290208054600190910154600160a060020a039091169082565b6000806000601854600014156116f55765082f79cd9000925061170f565b611706670de0b6b3a7640000612ee6565b91508190508092505b505090565b60035481565b6000806000806000806000806000611730611b20565b1161173a57600080fd5b601c5433975060ff161580156117665750600160a060020a038716600090815260076020526040812054115b151561177157600080fd5b600160a060020a0387166000908152600660209081526040808320546007909252909120549096506117a4904290612465565b94506117b38562015180612f53565b93506117c184600254612f6a565b92506117d1868460646012612420565b91506117e686670de0b6b3a7640000846115b0565b6018549091506117ff90670de0b6b3a7640000846115b0565b601855600160a060020a0387166000908152600560205260409020546118259082612406565b600160a060020a03909716600090815260056020908152604080832099909955600681528882208290556007905296872096909655509495945050505050565b600160a060020a039081166000908152600b60205260409020541690565b60195490565b6000338261189f5761189a816112b5565b6118c3565b600160a060020a0381166000908152600860205260409020546118c1826112b5565b015b91505b50919050565b600160a060020a0330163190565b600160a060020a031660009081526005602052604090205490565b600080600080611903611b20565b1161190d57600080fd5b601c5433925060ff1615801561193b5750600160a060020a0382166000908152600560205260409020548411155b151561194657600080fd5b61195884670de0b6b3a7640000612465565b600160a060020a0383166000908152600760209081526040808320429055600690915290205490915061198b9082612406565b600160a060020a0383166000908152600660209081526040808320939093556005905220546119ba9082612465565b600160a060020a0390921660009081526005602052604090209190915550919050565b600160a060020a031660009081526007602052604090205490565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611a4957600080fd5b50600355565b600080600080600060185460001415611a7057650a012317b0009450611aa7565b611a81670de0b6b3a7640000612ee6565b9350601e9250611a95848460646012612420565b9150611aa18483612406565b90508094505b5050505090565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611aff57600080fd5b506000918252601b6020526040909120805460ff1916911515919091179055565b600033611b2c816118da565b91505b5090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611bef57600080fd5b50601c805460ff19169055565b6000806000806000611c0c611b20565b11611c1657600080fd5b601c5433935060ff16158015611c445750600160a060020a0383166000908152600560205260409020548511155b1515611c4f57600080fd5b6000611c5b6001611889565b1115611c6957611c696115db565b849150611c766000611889565b600160a060020a038416600090815260056020526040902054909150611c9c9086612465565b600160a060020a038085166000908152600560205260408082209390935590881681522054611ccb9083612406565b600160a060020a03878116600081815260056020908152604080832095909555601a8054948916835260169091528482208054948b02909403909355825491815292909220805492850290920190915554601854611d3991906801000000000000000084028115156115b057fe5b601a55600160a060020a038087169084167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600195945050505050565b600160a060020a038084166000908152600960209081526040808320869055600a8252808320859055600b9091528120549091161515611e1157611dcb61301b565b604051809103906000f0801515611de157600080fd5b600160a060020a038581166000908152600b602052604090208054600160a060020a031916929091169190911790555b505050600160a060020a039081166000908152600b60205260409020541690565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611e8357600080fd5b6001828051611e9692916020019061302b565b505050565b60096020526000908152604090205481565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611efe57600080fd5b6000828051611e9692916020019061302b565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611f6257600080fd5b50600255565b600033601b8282604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611fba57600080fd5b33915081600160a060020a03166108fc6019549081150290604051600060405180830381858888f193505050501515611ff257600080fd5b50506000601955565b600081600114156120275750600160a060020a038083166000908152600c60205260409020541661219d565b81600214156120515750600160a060020a038083166000908152600d60205260409020541661219d565b816003141561207b5750600160a060020a038083166000908152600e60205260409020541661219d565b81600414156120a55750600160a060020a038083166000908152600f60205260409020541661219d565b81600514156120cf5750600160a060020a038083166000908152601060205260409020541661219d565b81600614156120f95750600160a060020a038083166000908152601160205260409020541661219d565b81600714156121235750600160a060020a038083166000908152601260205260409020541661219d565b816008141561214d5750600160a060020a038083166000908152601360205260409020541661219d565b81600914156121775750600160a060020a038083166000908152601460205260409020541661219d565b81600a141561219d5750600160a060020a03808316600090815260156020526040902054165b92915050565b60008060008060008060006121b6611b20565b116121c057600080fd5b33600160a060020a0381166000908152600560205260409020549096508711156121e957600080fd5b8694506121f585612ee6565b93506122016000611889565b925083915061221260185486612465565b601855600160a060020a0386166000908152600560205260409020546122389086612465565b600160a060020a038716600090815260056020908152604080832093909355601a5460169091529181208054928802680100000000000000008602019283900390556018549192509011156122a9576122a5601a546018546801000000000000000086028115156115b057fe5b601a555b85600160a060020a03167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139868460405191825260208201526040908101905180910390a250505050505050565b60376020526000908152604090205481565b33600160a060020a0381166000908152600560205260408120549081111561233357612333816121a3565b61233b6115db565b5050565b60006118c634836107af565b60008060008061235b6001611889565b1161236557600080fd5b61236f6000611889565b33600160a060020a0381166000908152601660209081526040808320805468010000000000000000870201905560089091528120805490829055909201945092506123bb9084906107af565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458848360405191825260208201526040908101905180910390a2505050565b60008282018381101561241557fe5b8091505b5092915050565b600080600083600101600a0a86029150600a858381151561243d57fe5b0460050181151561244a57fe5b049050670de0b6b3a764000087820204979650505050505050565b60008282111561247157fe5b50900390565b6018546000906c7e37be2022c0914b268000000090829064e8d4a510006125006124fa74015e531a0a1c872bad2ce16256fe82000000000000880269d3c21bcecceda10000006002860a020171e596b7b0c643c7196d9ccd05d00000000000850201793e3aeb4ae1383562f4b82261d969f7ac94ca400000000000000001612f95565b85612465565b81151561250957fe5b0403949350505050565b6020849055818461252981601e60646012612420565b60215560205461253e90601460646012612420565b60225560205461255390600a60646012612420565b60235560205461256890600560646012612420565b60245560205461257d90600360646012612420565b60255560205461259290600260646012612420565b6026556020546125a790600260646012612420565b6027556020546125bc90600260646012612420565b6028556020546125d190600160646012612420565b6029556020546125e690600160646012612420565b602a55600160a060020a038281166000908152600c602090815260408083208054600160a060020a0319168a8616179081905590931682526008905220546021546126319190612406565b600160a060020a038084166000908152600c60209081526040808320549093168252600890522055602154612667908290612465565b9050600183151514156126805761268085836001612fca565b600160a060020a038086166000908152600c6020908152604080832054602d8054600160a060020a03199081169287169290921790819055600d845282852054602e80548416918816919091179055600e845282852054602f80548416918816919091179055600f845282852054603080548416918816919091179055601084528285205460318054841691881691909117905560118452828520546032805484169188169190911790556012845282852054603380548416918816919091179055601384528285205460348054841691881691909117905560149093529220546035805490931690841617909155161561283757600160a060020a038086166000908152600c60209081526040808320548685168452600d83528184208054600160a060020a031916918616919091179081905590931682526008905220546022546127cd9190612406565b600160a060020a038084166000908152600d60209081526040808320549093168252600890522055602254612803908290612465565b90506001831515141561283757600160a060020a038086166000908152600c60205260409020546128379116836002612fca565b602e54600160a060020a03161561290a57600160a060020a038086166000908152600d60209081526040808320548685168452600e83528184208054600160a060020a031916918616919091179081905590931682526008905220546023546128a09190612406565b600160a060020a038084166000908152600e602090815260408083205490931682526008905220556023546128d6908290612465565b90506001831515141561290a57600160a060020a038086166000908152600d602052604090205461290a9116836003612fca565b602f54600160a060020a0316156129dd57600160a060020a038086166000908152600e60209081526040808320548685168452600f83528184208054600160a060020a031916918616919091179081905590931682526008905220546024546129739190612406565b600160a060020a038084166000908152600f602090815260408083205490931682526008905220556024546129a9908290612465565b9050600183151514156129dd57600160a060020a038086166000908152600e60205260409020546129dd9116836004612fca565b603054600160a060020a031615612ab057600160a060020a038086166000908152600f60209081526040808320548685168452601083528184208054600160a060020a03191691861691909117908190559093168252600890522054602554612a469190612406565b600160a060020a038084166000908152601060209081526040808320549093168252600890522055602554612a7c908290612465565b905060018315151415612ab057600160a060020a038086166000908152600f6020526040902054612ab09116836005612fca565b603154600160a060020a031615612b8357600160a060020a038086166000908152601060209081526040808320548685168452601183528184208054600160a060020a03191691861691909117908190559093168252600890522054602654612b199190612406565b600160a060020a038084166000908152601160209081526040808320549093168252600890522055602654612b4f908290612465565b905060018315151415612b8357600160a060020a03808616600090815260106020526040902054612b839116836006612fca565b603254600160a060020a031615612c5657600160a060020a038086166000908152601160209081526040808320548685168452601283528184208054600160a060020a03191691861691909117908190559093168252600890522054602754612bec9190612406565b600160a060020a038084166000908152601260209081526040808320549093168252600890522055602754612c22908290612465565b905060018315151415612c5657600160a060020a03808616600090815260116020526040902054612c569116836007612fca565b603354600160a060020a031615612d2957600160a060020a038086166000908152601260209081526040808320548685168452601383528184208054600160a060020a03191691861691909117908190559093168252600890522054602854612cbf9190612406565b600160a060020a038084166000908152601360209081526040808320549093168252600890522055602854612cf5908290612465565b905060018315151415612d2957600160a060020a03808616600090815260126020526040902054612d299116836008612fca565b603454600160a060020a031615612dfc57600160a060020a038086166000908152601360209081526040808320548685168452601483528184208054600160a060020a03191691861691909117908190559093168252600890522054602954612d929190612406565b600160a060020a038084166000908152601460209081526040808320549093168252600890522055602954612dc8908290612465565b905060018315151415612dfc57600160a060020a03808616600090815260136020526040902054612dfc9116836009612fca565b603554600160a060020a031615612ecf57600160a060020a038086166000908152601460209081526040808320548685168452601583528184208054600160a060020a03191691861691909117908190559093168252600890522054602a54612e659190612406565b600160a060020a038084166000908152601560209081526040808320549093168252600890522055602a54612e9b908290612465565b905060018315151415612ecf57600160a060020a03808616600090815260146020526040902054612ecf911683600a612fca565b612edb60195482612406565b601955505050505050565b601854600090670de0b6b3a7640000838101918101908390612f4065082f79cd900082850464e8d4a5100002018702600283670de0b6b3a763ffff1982890a8b9003010464e8d4a5100002811515612f3a57fe5b04612465565b811515612f4957fe5b0495945050505050565b6000808284811515612f6157fe5b04949350505050565b600080831515612f7d5760009150612419565b50828202828482811515612f8d57fe5b041461241557fe5b80600260018201045b818110156118c6578091506002818285811515612fb757fe5b0401811515612fc257fe5b049050612f9e565b600160a060020a03928316600090815260376020908152604080832080546001908101918290556036845282852091855292529091208054600160a060020a03191693909416929092178355910155565b60405161018d806130ba83390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061306c57805160ff1916838001178555613099565b82800160010185558215613099579182015b8281111561309957825182559160200191906001019061307e565b50611b2f926113ef9250905b80821115611b2f57600081556001016130a556006060604052341561000f57600080fd5b61016f8061001e6000396000f3006060604052600436106100405763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166389d4e6cd8114610045575b600080fd5b341561005057600080fd5b61007b73ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661008f565b604051901515815260200160405180910390f35b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561012157600080fd5b6102c65a03f1151561013257600080fd5b5050506040518051959450505050505600a165627a7a7230582028269efdb5b4f4ad57809d420e33fffc8373d63088223e08f5973c4c54dd4c5d0029a165627a7a72305820bad6ca3251e34c833e5f1bfb7982b8c59e785a08ec23ad3f11e6307f91c15fc90029

Deployed Bytecode

0x6060604052600436106101ff5763ffffffff60e060020a60003504166265318b811461020d57806306fdde031461023e5780630ce5071e146102c857806310d0ffdd1461030357806318160ddd146103195780631d94a8851461032c578063226093731461035157806327defa1f146103675780632b152e401461038e5780632c2dc71d146103d25780632fc2a572146103f1578063313ce56714610410578063392efb52146104395780633ccfd60b1461044f57806343360a8e146104645780634b7503341461048657806356d399e8146104995780635c48c1fa146104ac57806361450dd4146104bf57806366b3fa60146104de578063688abbf7146104f15780636b2f46321461050957806370a082311461051c5780637547c7a31461053b57806377e79b41146105515780638328b610146105705780638620410b1461058657806389135ae914610599578063949e8acd146105b457806395d89b41146105c7578063a8e04f34146105da578063a9059cbb146105ed578063ac45d61d1461060f578063b84c824614610634578063bb5751c714610685578063c47f0027146106a4578063ce81a760146106f5578063dfc399471461070b578063e47351041461071e578063e4849b3214610740578063e5deb30414610756578063e9fad8ee14610775578063f088d54714610788578063fdb5a03e1461079c575b61020a3460006107af565b50005b341561021857600080fd5b61022c600160a060020a03600435166112b5565b60405190815260200160405180910390f35b341561024957600080fd5b6102516112fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561028d578082015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102e7600160a060020a036004351661139a565b604051600160a060020a03909116815260200160405180910390f35b341561030e57600080fd5b61022c6004356113b5565b341561032457600080fd5b61022c6113eb565b341561033757600080fd5b61022c600160a060020a03600435811690602435166113f2565b341561035c57600080fd5b61022c600435611494565b341561037257600080fd5b61037a6114bb565b604051901515815260200160405180910390f35b341561039957600080fd5b6103b0600160a060020a03600435166024356114c4565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156103dd57600080fd5b61022c600160a060020a03600435166114f4565b34156103fc57600080fd5b61022c600160a060020a0360043516611506565b341561041b57600080fd5b6104236115c1565b60405160ff909116815260200160405180910390f35b341561044457600080fd5b61037a6004356115c6565b341561045a57600080fd5b6104626115db565b005b341561046f57600080fd5b6103b0600160a060020a03600435166024356116a7565b341561049157600080fd5b61022c6116d7565b34156104a457600080fd5b61022c611714565b34156104b757600080fd5b61037a61171a565b34156104ca57600080fd5b6102e7600160a060020a0360043516611865565b34156104e957600080fd5b61022c611883565b34156104fc57600080fd5b61022c6004351515611889565b341561051457600080fd5b61022c6118cc565b341561052757600080fd5b61022c600160a060020a03600435166118da565b341561054657600080fd5b61037a6004356118f5565b341561055c57600080fd5b61022c600160a060020a03600435166119dd565b341561057b57600080fd5b6104626004356119f8565b341561059157600080fd5b61022c611a4f565b34156105a457600080fd5b6104626004356024351515611aae565b34156105bf57600080fd5b61022c611b20565b34156105d257600080fd5b610251611b33565b34156105e557600080fd5b610462611b9e565b34156105f857600080fd5b61037a600160a060020a0360043516602435611bfc565b341561061a57600080fd5b6102e7600160a060020a0360043516602435604435611d89565b341561063f57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611e3295505050505050565b341561069057600080fd5b61022c600160a060020a0360043516611e9b565b34156106af57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ead95505050505050565b341561070057600080fd5b610462600435611f11565b341561071657600080fd5b610462611f68565b341561072957600080fd5b6102e7600160a060020a0360043516602435611ffb565b341561074b57600080fd5b6104626004356121a3565b341561076157600080fd5b61022c600160a060020a03600435166122f6565b341561078057600080fd5b610462612308565b61022c600160a060020a036004351661233f565b34156107a757600080fd5b61046261234b565b6000806000806000806000806000808b6000339050601c60009054906101000a900460ff1680156107f15750670de0b6b3a7640000826107ed6118cc565b0311155b15610da557600160a060020a03811660009081526004602052604090205460ff16151560011480156108465750600160a060020a038116600090815260176020526040902054670de0b6b3a764000090830111155b151561085157600080fd5b600160a060020a0381166000908152601760205260409020546108749083612406565b6017600083600160a060020a0316600160a060020a0316815260200190815260200160002081905550339a508d601e819055506000600960008d600160a060020a0316600160a060020a03168152602001908152602001600020541115610ae857600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561095257600080fd5b6102c65a03f1151561096357600080fd5b5050506040518051602c819055600160a060020a038d16600090815260096020526040902054901015905061099757600080fd5b600160a060020a038b166000908152600a6020526040902054601e5410156109be57600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e546109fc91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610aa657600080fd5b6102c65a03f11515610ab757600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610afa90600560646012612420565b601d819055601954610b0b91612406565b601955601e54610b2090601460646012612420565b602055601e54610b3590600560646012612420565b601e8054919b509950610b4c908a60646012612420565b9750610b5a601e5489612465565b9650610b6587612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c029650600195501615610bbc57600160a060020a03808c166000908152600c60205260408120549091169d5093505b600086118015610bd65750601854610bd48782612406565b115b1515610be157600080fd5b600160a060020a038d1615801590610c0b57508a600160a060020a03168d600160a060020a031614155b8015610c315750600354600160a060020a038e1660009081526005602052604090205410155b15610c4957610c446020548e8d87612513565b610c5b565b610c57601954602054612406565b6019555b60006018541115610cbf57610c7260185487612406565b6018819055680100000000000000008b02811515610c8c57fe5b601a8054929091049091019055601854680100000000000000008b02811515610cb157fe5b048602850385039450610cc5565b60188690555b600160a060020a038b16600090815260056020526040902054610ce89087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b506112a4565b601c805460ff19169055601e8e905533600160a060020a038116600090815260096020526040812054919c50901115610feb57600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610e5557600080fd5b6102c65a03f11515610e6657600080fd5b5050506040518051602c819055600160a060020a038d166000908152600960205260409020549010159050610e9a57600080fd5b600160a060020a038b166000908152600a6020526040902054601e541015610ec157600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e54610eff91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610fa957600080fd5b6102c65a03f11515610fba57600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610ffd90600560646012612420565b601d81905560195461100e91612406565b601955601e5461102390601460646012612420565b602055601e5461103890600560646012612420565b601e8054919b50995061104f908a60646012612420565b975061105d601e5489612465565b965061106887612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c0296506001955016156110bf57600160a060020a03808c166000908152600c60205260408120549091169d5093505b6000861180156110d957506018546110d78782612406565b115b15156110e457600080fd5b600160a060020a038d161580159061110e57508a600160a060020a03168d600160a060020a031614155b80156111345750600354600160a060020a038e1660009081526005602052604090205410155b1561114c576111476020548e8d87612513565b61115e565b61115a601954602054612406565b6019555b600060185411156111c25761117560185487612406565b6018819055680100000000000000008b0281151561118f57fe5b601a8054929091049091019055601854680100000000000000008b028115156111b457fe5b0486028503850394506111c8565b60188690555b600160a060020a038b166000908152600560205260409020546111eb9087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b505b505050505050505050505092915050565b600160a060020a031660009081526016602090815260408083205460068352818420546005909352922054601a546801000000000000000091909201909102919091030490565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b820191906000526020600020905b81548152906001019060200180831161137557829003601f168201915b505050505081565b600b60205260009081526040902054600160a060020a031681565b6000601e8180806113ca868560646012612420565b92506113d68684612465565b91506113e182612477565b9695505050505050565b6018545b90565b600160a060020a038181166000908152600b6020526040808220549192730435316b3ab4b999856085c98c3b1ab21d85cd4d926370a08231929116908490516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561147357600080fd5b6102c65a03f1151561148457600080fd5b5050506040518051949350505050565b600080600060185484111515156114aa57600080fd5b6114b384612ee6565b949350505050565b601c5460ff1681565b600160a060020a039182166000908152603660209081526040808320938352929052208054600190910154911691565b600a6020526000908152604090205481565b60008060008060008061153e42600760008a600160a060020a0316600160a060020a0316815260200190815260200160002054612465565b945061154d8562015180612f53565b935061155b84600254612f6a565b600160a060020a038816600090815260066020526040902054909350611585908460646012612420565b600160a060020a0388166000908152600660205260409020549092506115b690670de0b6b3a7640000845b04612406565b979650505050505050565b601281565b601b6020526000908152604090205460ff1681565b60008060006115ea6001611889565b116115f457600080fd5b3391506116016000611889565b600160a060020a0383166000818152601660209081526040808320805468010000000000000000870201905560089091528082208054929055920192509082156108fc0290839051600060405180830381858888f19350505050151561166657600080fd5b81600160a060020a03167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc8260405190815260200160405180910390a25050565b603660209081526000928352604080842090915290825290208054600190910154600160a060020a039091169082565b6000806000601854600014156116f55765082f79cd9000925061170f565b611706670de0b6b3a7640000612ee6565b91508190508092505b505090565b60035481565b6000806000806000806000806000611730611b20565b1161173a57600080fd5b601c5433975060ff161580156117665750600160a060020a038716600090815260076020526040812054115b151561177157600080fd5b600160a060020a0387166000908152600660209081526040808320546007909252909120549096506117a4904290612465565b94506117b38562015180612f53565b93506117c184600254612f6a565b92506117d1868460646012612420565b91506117e686670de0b6b3a7640000846115b0565b6018549091506117ff90670de0b6b3a7640000846115b0565b601855600160a060020a0387166000908152600560205260409020546118259082612406565b600160a060020a03909716600090815260056020908152604080832099909955600681528882208290556007905296872096909655509495945050505050565b600160a060020a039081166000908152600b60205260409020541690565b60195490565b6000338261189f5761189a816112b5565b6118c3565b600160a060020a0381166000908152600860205260409020546118c1826112b5565b015b91505b50919050565b600160a060020a0330163190565b600160a060020a031660009081526005602052604090205490565b600080600080611903611b20565b1161190d57600080fd5b601c5433925060ff1615801561193b5750600160a060020a0382166000908152600560205260409020548411155b151561194657600080fd5b61195884670de0b6b3a7640000612465565b600160a060020a0383166000908152600760209081526040808320429055600690915290205490915061198b9082612406565b600160a060020a0383166000908152600660209081526040808320939093556005905220546119ba9082612465565b600160a060020a0390921660009081526005602052604090209190915550919050565b600160a060020a031660009081526007602052604090205490565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611a4957600080fd5b50600355565b600080600080600060185460001415611a7057650a012317b0009450611aa7565b611a81670de0b6b3a7640000612ee6565b9350601e9250611a95848460646012612420565b9150611aa18483612406565b90508094505b5050505090565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611aff57600080fd5b506000918252601b6020526040909120805460ff1916911515919091179055565b600033611b2c816118da565b91505b5090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611bef57600080fd5b50601c805460ff19169055565b6000806000806000611c0c611b20565b11611c1657600080fd5b601c5433935060ff16158015611c445750600160a060020a0383166000908152600560205260409020548511155b1515611c4f57600080fd5b6000611c5b6001611889565b1115611c6957611c696115db565b849150611c766000611889565b600160a060020a038416600090815260056020526040902054909150611c9c9086612465565b600160a060020a038085166000908152600560205260408082209390935590881681522054611ccb9083612406565b600160a060020a03878116600081815260056020908152604080832095909555601a8054948916835260169091528482208054948b02909403909355825491815292909220805492850290920190915554601854611d3991906801000000000000000084028115156115b057fe5b601a55600160a060020a038087169084167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600195945050505050565b600160a060020a038084166000908152600960209081526040808320869055600a8252808320859055600b9091528120549091161515611e1157611dcb61301b565b604051809103906000f0801515611de157600080fd5b600160a060020a038581166000908152600b602052604090208054600160a060020a031916929091169190911790555b505050600160a060020a039081166000908152600b60205260409020541690565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611e8357600080fd5b6001828051611e9692916020019061302b565b505050565b60096020526000908152604090205481565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611efe57600080fd5b6000828051611e9692916020019061302b565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611f6257600080fd5b50600255565b600033601b8282604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611fba57600080fd5b33915081600160a060020a03166108fc6019549081150290604051600060405180830381858888f193505050501515611ff257600080fd5b50506000601955565b600081600114156120275750600160a060020a038083166000908152600c60205260409020541661219d565b81600214156120515750600160a060020a038083166000908152600d60205260409020541661219d565b816003141561207b5750600160a060020a038083166000908152600e60205260409020541661219d565b81600414156120a55750600160a060020a038083166000908152600f60205260409020541661219d565b81600514156120cf5750600160a060020a038083166000908152601060205260409020541661219d565b81600614156120f95750600160a060020a038083166000908152601160205260409020541661219d565b81600714156121235750600160a060020a038083166000908152601260205260409020541661219d565b816008141561214d5750600160a060020a038083166000908152601360205260409020541661219d565b81600914156121775750600160a060020a038083166000908152601460205260409020541661219d565b81600a141561219d5750600160a060020a03808316600090815260156020526040902054165b92915050565b60008060008060008060006121b6611b20565b116121c057600080fd5b33600160a060020a0381166000908152600560205260409020549096508711156121e957600080fd5b8694506121f585612ee6565b93506122016000611889565b925083915061221260185486612465565b601855600160a060020a0386166000908152600560205260409020546122389086612465565b600160a060020a038716600090815260056020908152604080832093909355601a5460169091529181208054928802680100000000000000008602019283900390556018549192509011156122a9576122a5601a546018546801000000000000000086028115156115b057fe5b601a555b85600160a060020a03167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139868460405191825260208201526040908101905180910390a250505050505050565b60376020526000908152604090205481565b33600160a060020a0381166000908152600560205260408120549081111561233357612333816121a3565b61233b6115db565b5050565b60006118c634836107af565b60008060008061235b6001611889565b1161236557600080fd5b61236f6000611889565b33600160a060020a0381166000908152601660209081526040808320805468010000000000000000870201905560089091528120805490829055909201945092506123bb9084906107af565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458848360405191825260208201526040908101905180910390a2505050565b60008282018381101561241557fe5b8091505b5092915050565b600080600083600101600a0a86029150600a858381151561243d57fe5b0460050181151561244a57fe5b049050670de0b6b3a764000087820204979650505050505050565b60008282111561247157fe5b50900390565b6018546000906c7e37be2022c0914b268000000090829064e8d4a510006125006124fa74015e531a0a1c872bad2ce16256fe82000000000000880269d3c21bcecceda10000006002860a020171e596b7b0c643c7196d9ccd05d00000000000850201793e3aeb4ae1383562f4b82261d969f7ac94ca400000000000000001612f95565b85612465565b81151561250957fe5b0403949350505050565b6020849055818461252981601e60646012612420565b60215560205461253e90601460646012612420565b60225560205461255390600a60646012612420565b60235560205461256890600560646012612420565b60245560205461257d90600360646012612420565b60255560205461259290600260646012612420565b6026556020546125a790600260646012612420565b6027556020546125bc90600260646012612420565b6028556020546125d190600160646012612420565b6029556020546125e690600160646012612420565b602a55600160a060020a038281166000908152600c602090815260408083208054600160a060020a0319168a8616179081905590931682526008905220546021546126319190612406565b600160a060020a038084166000908152600c60209081526040808320549093168252600890522055602154612667908290612465565b9050600183151514156126805761268085836001612fca565b600160a060020a038086166000908152600c6020908152604080832054602d8054600160a060020a03199081169287169290921790819055600d845282852054602e80548416918816919091179055600e845282852054602f80548416918816919091179055600f845282852054603080548416918816919091179055601084528285205460318054841691881691909117905560118452828520546032805484169188169190911790556012845282852054603380548416918816919091179055601384528285205460348054841691881691909117905560149093529220546035805490931690841617909155161561283757600160a060020a038086166000908152600c60209081526040808320548685168452600d83528184208054600160a060020a031916918616919091179081905590931682526008905220546022546127cd9190612406565b600160a060020a038084166000908152600d60209081526040808320549093168252600890522055602254612803908290612465565b90506001831515141561283757600160a060020a038086166000908152600c60205260409020546128379116836002612fca565b602e54600160a060020a03161561290a57600160a060020a038086166000908152600d60209081526040808320548685168452600e83528184208054600160a060020a031916918616919091179081905590931682526008905220546023546128a09190612406565b600160a060020a038084166000908152600e602090815260408083205490931682526008905220556023546128d6908290612465565b90506001831515141561290a57600160a060020a038086166000908152600d602052604090205461290a9116836003612fca565b602f54600160a060020a0316156129dd57600160a060020a038086166000908152600e60209081526040808320548685168452600f83528184208054600160a060020a031916918616919091179081905590931682526008905220546024546129739190612406565b600160a060020a038084166000908152600f602090815260408083205490931682526008905220556024546129a9908290612465565b9050600183151514156129dd57600160a060020a038086166000908152600e60205260409020546129dd9116836004612fca565b603054600160a060020a031615612ab057600160a060020a038086166000908152600f60209081526040808320548685168452601083528184208054600160a060020a03191691861691909117908190559093168252600890522054602554612a469190612406565b600160a060020a038084166000908152601060209081526040808320549093168252600890522055602554612a7c908290612465565b905060018315151415612ab057600160a060020a038086166000908152600f6020526040902054612ab09116836005612fca565b603154600160a060020a031615612b8357600160a060020a038086166000908152601060209081526040808320548685168452601183528184208054600160a060020a03191691861691909117908190559093168252600890522054602654612b199190612406565b600160a060020a038084166000908152601160209081526040808320549093168252600890522055602654612b4f908290612465565b905060018315151415612b8357600160a060020a03808616600090815260106020526040902054612b839116836006612fca565b603254600160a060020a031615612c5657600160a060020a038086166000908152601160209081526040808320548685168452601283528184208054600160a060020a03191691861691909117908190559093168252600890522054602754612bec9190612406565b600160a060020a038084166000908152601260209081526040808320549093168252600890522055602754612c22908290612465565b905060018315151415612c5657600160a060020a03808616600090815260116020526040902054612c569116836007612fca565b603354600160a060020a031615612d2957600160a060020a038086166000908152601260209081526040808320548685168452601383528184208054600160a060020a03191691861691909117908190559093168252600890522054602854612cbf9190612406565b600160a060020a038084166000908152601360209081526040808320549093168252600890522055602854612cf5908290612465565b905060018315151415612d2957600160a060020a03808616600090815260126020526040902054612d299116836008612fca565b603454600160a060020a031615612dfc57600160a060020a038086166000908152601360209081526040808320548685168452601483528184208054600160a060020a03191691861691909117908190559093168252600890522054602954612d929190612406565b600160a060020a038084166000908152601460209081526040808320549093168252600890522055602954612dc8908290612465565b905060018315151415612dfc57600160a060020a03808616600090815260136020526040902054612dfc9116836009612fca565b603554600160a060020a031615612ecf57600160a060020a038086166000908152601460209081526040808320548685168452601583528184208054600160a060020a03191691861691909117908190559093168252600890522054602a54612e659190612406565b600160a060020a038084166000908152601560209081526040808320549093168252600890522055602a54612e9b908290612465565b905060018315151415612ecf57600160a060020a03808616600090815260146020526040902054612ecf911683600a612fca565b612edb60195482612406565b601955505050505050565b601854600090670de0b6b3a7640000838101918101908390612f4065082f79cd900082850464e8d4a5100002018702600283670de0b6b3a763ffff1982890a8b9003010464e8d4a5100002811515612f3a57fe5b04612465565b811515612f4957fe5b0495945050505050565b6000808284811515612f6157fe5b04949350505050565b600080831515612f7d5760009150612419565b50828202828482811515612f8d57fe5b041461241557fe5b80600260018201045b818110156118c6578091506002818285811515612fb757fe5b0401811515612fc257fe5b049050612f9e565b600160a060020a03928316600090815260376020908152604080832080546001908101918290556036845282852091855292529091208054600160a060020a03191693909416929092178355910155565b60405161018d806130ba83390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061306c57805160ff1916838001178555613099565b82800160010185558215613099579182015b8281111561309957825182559160200191906001019061307e565b50611b2f926113ef9250905b80821115611b2f57600081556001016130a556006060604052341561000f57600080fd5b61016f8061001e6000396000f3006060604052600436106100405763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166389d4e6cd8114610045575b600080fd5b341561005057600080fd5b61007b73ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661008f565b604051901515815260200160405180910390f35b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561012157600080fd5b6102c65a03f1151561013257600080fd5b5050506040518051959450505050505600a165627a7a7230582028269efdb5b4f4ad57809d420e33fffc8373d63088223e08f5973c4c54dd4c5d0029a165627a7a72305820bad6ca3251e34c833e5f1bfb7982b8c59e785a08ec23ad3f11e6307f91c15fc90029

Deployed Bytecode Sourcemap

2135:34223:0:-;;;;;;;;;-1:-1:-1;;;2135:34223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8130:30;8145:9;8156:3;8130:14;:30::i;:::-;;2135:34223;14421:264;;;;;;;;;;-1:-1:-1;;;;;14421:264:0;;;;;;;;;;;;;;;;;;;;2303:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2303:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3973:47;;;;;;;;;;-1:-1:-1;;;;;3973:47:0;;;;;;;;-1:-1:-1;;;;;3973:47:0;;;;;;;;;;;;;;15658:500;;;;;;;;;;;;;;13683:90;;;;;;;;;;;;30499:217;;;;;;;;;;-1:-1:-1;;;;;30499:217:0;;;;;;;;;;16169:315;;;;;;;;;;;;;;5059:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20060:211;;;;;;;;;;-1:-1:-1;;;;;20060:211:0;;;;;;;;;;-1:-1:-1;;;;;20060:211:0;;;;;;;;;;;;;;;;;;;;3914:52;;;;;;;;;;-1:-1:-1;;;;;3914:52:0;;;;;17162:637;;;;;;;;;;-1:-1:-1;;;;;17162:637:0;;;;;2445:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5000:46;;;;;;;;;;;;;;9188:590;;;;;;;;;;;;;;19925:66;;;;;;;;;;-1:-1:-1;;;;;19925:66:0;;;;;;;14702:356;;;;;;;;;;;;3189:62;;;;;;;;;;;;17958:1097;;;;;;;;;;;;30346:141;;;;;;;;;;-1:-1:-1;;;;;30346:141:0;;;;;13562:101;;;;;;;;;;;;13970:286;;;;;;;;;;;;;;;;13455:96;;;;;;;;;;;;14273:137;;;;;;;;;;-1:-1:-1;;;;;14273:137:0;;;;;16496:648;;;;;;;;;;;;;;17811:135;;;;;;;;;;-1:-1:-1;;;;;17811:135:0;;;;;12738:155;;;;;;;;;;;;;;15075:572;;;;;;;;;;;;12574:152;;;;;;;;;;;;;;;;;;13791:161;;;;;;;;;;;;2374:64;;;;;;;;;;;;12283:120;;;;;;;;;;;;10999:1204;;;;;;;;;;-1:-1:-1;;;;;10999:1204:0;;;;;;;29861:473;;;;;;;;;;-1:-1:-1;;;;;29861:473:0;;;;;;;;;13037:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13037:126:0;;-1:-1:-1;13037:126:0;;-1:-1:-1;;;;;;13037:126:0;3861:46;;;;;;;;;;-1:-1:-1;;;;;3861:46:0;;;;;12905:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12905:120:0;;-1:-1:-1;12905:120:0;;-1:-1:-1;;;;;;12905:120:0;12416:146;;;;;;;;;;;;;;13183:204;;;;;;;;;;;;20624:1055;;;;;;;;;;-1:-1:-1;;;;;20624:1055:0;;;;;;;9821:1131;;;;;;;;;;;;;;19998:49;;;;;;;;;;-1:-1:-1;;;;;19998:49:0;;;;;8898:247;;;;;;;;;;;;7958:123;;-1:-1:-1;;;;;7958:123:0;;;;;8215:640;;;;;;;;;;;;30728:3763;30851:7;30881:24;32134:18;32237:21;32329:19;32433:22;32515:23;32597:12;32668:20;34203:22;30815:17;5744:24;5771:10;5744:37;;5796:15;;;;;;;;;;;:86;;;;;3474:7;5842:17;5817:22;:20;:22::i;:::-;:42;5816:64;;5796:86;5792:823;;;-1:-1:-1;;;;;5984:30:0;;;;;;:12;:30;;;;;;;;:38;;:30;:38;:232;;;;-1:-1:-1;;;;;;6124:45:0;;;;;;:27;:45;;;;;;3402:7;6124:65;;;6123:93;;5984:232;5898:333;;;;;;;;-1:-1:-1;;;;;6357:45:0;;;;;;:27;:45;;;;;;6344:78;;6404:17;6344:12;:78::i;:::-;6296:27;:45;6324:16;-1:-1:-1;;;;;6296:45:0;-1:-1:-1;;;;;6296:45:0;;;;;;;;;;;;:126;;;;30919:10;30881:48;;30978:17;30940:6;:55;;;;31051:1;31019:11;:29;31031:16;-1:-1:-1;;;;;31019:29:0;-1:-1:-1;;;;;31019:29:0;;;;;;;;;;;;;:33;31016:785;;;-1:-1:-1;;;;;31143:30:0;;;;;;;:12;:30;;;;;;;31089:42;;31083:59;;31143:30;;;31083:91;;;;;;-1:-1:-1;;;31083:91:0;;;;;;-1:-1:-1;;;;;31083:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31069:11;:105;;;-1:-1:-1;;;;;31212:29:0;;;;;;:11;:29;;;;;;31197:44;;;;-1:-1:-1;31189:53:0;;;;;;-1:-1:-1;;;;;31275:35:0;;;;;;:17;:35;;;;;;31265:6;;:45;;31257:54;;;;;;-1:-1:-1;;;;;31361:29:0;;;;;;:11;:29;;;;;;31391:6;31361:36;;3090:11;31360:51;31326:9;:85;;;31473:6;;31460:31;;:12;:31::i;:::-;31426:6;:65;-1:-1:-1;;;;;31529:30:0;;;;;;;:12;:30;;;;;;;31617:11;;31529:30;;;31520:52;;31573:42;;31630;;31529:30;31520:153;;;;;;-1:-1:-1;;;31520:153:0;;;;;;-1:-1:-1;;;;;31520:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;31702:29:0;;31734:1;31702:29;;;:11;:29;;;;;;;;:33;;;31750:17;:35;;;;;:39;31016:785;31875:6;;31858:45;;2703:1;31896:3;31900:2;31858:16;:45::i;:::-;31820:12;:83;;;31965:16;;31952:44;;:12;:44::i;:::-;31914:16;:82;32086:6;;32069:44;;2636:2;32106:3;32110:2;32069:16;:44::i;:::-;32031:14;:82;32189:6;;32172:44;;2570:1;32209:3;32213:2;32172:16;:44::i;:::-;32275:43;32384:6;;32134:82;;-1:-1:-1;32275:43:0;-1:-1:-1;32367:45:0;;32275:43;32405:3;32409:2;32367:16;:45::i;:::-;32329:83;;32471:33;32484:6;;32492:11;32471:12;:33::i;:::-;32433:71;;32553:33;32571:14;32553:17;:33::i;:::-;-1:-1:-1;;;;;32724:39:0;;;;;;;:21;:39;;;;;;32515:71;;-1:-1:-1;3166:5:0;32635:22;;;-1:-1:-1;32706:4:0;;-1:-1:-1;32724:39:0;:85;32721:244;;-1:-1:-1;;;;;32860:39:0;;;;;;;:21;:39;;;;;;;;;;-1:-1:-1;32860:39:0;-1:-1:-1;32721:244:0;33011:1;32993:15;:19;:82;;;;-1:-1:-1;33062:12:0;;33017:42;33030:15;33062:12;33017;:42::i;:::-;:57;32993:82;32985:91;;;;;;;;-1:-1:-1;;;;;33127:57:0;;;;;;:118;;;33229:16;-1:-1:-1;;;;;33214:31:0;:11;-1:-1:-1;;;;;33214:31:0;;;33127:118;:189;;;;-1:-1:-1;33298:18:0;;-1:-1:-1;;;;;33262:32:0;;;;;;:19;:32;;;;;;:54;;33127:189;33097:473;;;33356:76;33375:14;;33390:11;33402:16;33419:12;33356:18;:76::i;:::-;33097:473;;;33512:46;33525:16;;33543:14;;33512:12;:46::i;:::-;33478:16;:80;33097:473;33607:1;33592:12;;:16;33589:475;;;33671:43;33684:12;;33698:15;33671:12;:43::i;:::-;33637:12;:77;;;3166:5;33778:22;;:39;;;;;;;33742:15;:76;;33778:39;;;;33742:76;;;;;33940:12;;3166:5;33914:22;;:39;;;;;;;;33895:15;:59;33889:4;:66;33881:4;:75;33847:109;;33589:475;;;34003:12;:49;;;33589:475;-1:-1:-1;;;;;34137:37:0;;;;;;:19;:37;;;;;;34124:68;;34176:15;34124:12;:68::i;:::-;34084:19;:37;34104:16;-1:-1:-1;;;;;34084:37:0;-1:-1:-1;;;;;34084:37:0;;;;;;;;;;;;:108;;;;34289:4;34270:15;34252;;:33;34251:42;34203:91;;34344:15;34305:10;:28;34316:16;-1:-1:-1;;;;;34305:28:0;-1:-1:-1;;;;;34305:28:0;;;;;;;;;;;;;:54;;;;;;;;;;;34438:11;-1:-1:-1;;;;;34379:71:0;34395:16;-1:-1:-1;;;;;34379:71:0;;34413:6;;34421:15;34379:71;;;;;;;;;;;;;;;;;;;;34468:15;34461:22;;5792:823;;;6560:15;:23;;-1:-1:-1;;6560:23:0;;;30940:6;:55;;;30919:10;-1:-1:-1;;;;;31019:29:0;;-1:-1:-1;31019:29:0;;;:11;:29;;;;;;30919:10;;-1:-1:-1;31019:33:0;;31016:785;;;-1:-1:-1;;;;;31143:30:0;;;;;;;:12;:30;;;;;;;31089:42;;31083:59;;31143:30;;;31083:91;;;;;;-1:-1:-1;;;31083:91:0;;;;;;-1:-1:-1;;;;;31083:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31069:11;:105;;;-1:-1:-1;;;;;31212:29:0;;;;;;:11;:29;;;;;;31197:44;;;;-1:-1:-1;31189:53:0;;;;;;-1:-1:-1;;;;;31275:35:0;;;;;;:17;:35;;;;;;31265:6;;:45;;31257:54;;;;;;-1:-1:-1;;;;;31361:29:0;;;;;;:11;:29;;;;;;31391:6;31361:36;;3090:11;31360:51;31326:9;:85;;;31473:6;;31460:31;;:12;:31::i;:::-;31426:6;:65;-1:-1:-1;;;;;31529:30:0;;;;;;;:12;:30;;;;;;;31617:11;;31529:30;;;31520:52;;31573:42;;31630;;31529:30;31520:153;;;;;;-1:-1:-1;;;31520:153:0;;;;;;-1:-1:-1;;;;;31520:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;31702:29:0;;31734:1;31702:29;;;:11;:29;;;;;;;;:33;;;31750:17;:35;;;;;:39;31016:785;31875:6;;31858:45;;2703:1;31896:3;31900:2;31858:16;:45::i;:::-;31820:12;:83;;;31965:16;;31952:44;;:12;:44::i;:::-;31914:16;:82;32086:6;;32069:44;;2636:2;32106:3;32110:2;32069:16;:44::i;:::-;32031:14;:82;32189:6;;32172:44;;2570:1;32209:3;32213:2;32172:16;:44::i;:::-;32275:43;32384:6;;32134:82;;-1:-1:-1;32275:43:0;-1:-1:-1;32367:45:0;;32275:43;32405:3;32409:2;32367:16;:45::i;:::-;32329:83;;32471:33;32484:6;;32492:11;32471:12;:33::i;:::-;32433:71;;32553:33;32571:14;32553:17;:33::i;:::-;-1:-1:-1;;;;;32724:39:0;;;;;;;:21;:39;;;;;;32515:71;;-1:-1:-1;3166:5:0;32635:22;;;-1:-1:-1;32706:4:0;;-1:-1:-1;32724:39:0;:85;32721:244;;-1:-1:-1;;;;;32860:39:0;;;;;;;:21;:39;;;;;;;;;;-1:-1:-1;32860:39:0;-1:-1:-1;32721:244:0;33011:1;32993:15;:19;:82;;;;-1:-1:-1;33062:12:0;;33017:42;33030:15;33062:12;33017;:42::i;:::-;:57;32993:82;32985:91;;;;;;;;-1:-1:-1;;;;;33127:57:0;;;;;;:118;;;33229:16;-1:-1:-1;;;;;33214:31:0;:11;-1:-1:-1;;;;;33214:31:0;;;33127:118;:189;;;;-1:-1:-1;33298:18:0;;-1:-1:-1;;;;;33262:32:0;;;;;;:19;:32;;;;;;:54;;33127:189;33097:473;;;33356:76;33375:14;;33390:11;33402:16;33419:12;33356:18;:76::i;:::-;33097:473;;;33512:46;33525:16;;33543:14;;33512:12;:46::i;:::-;33478:16;:80;33097:473;33607:1;33592:12;;:16;33589:475;;;33671:43;33684:12;;33698:15;33671:12;:43::i;:::-;33637:12;:77;;;3166:5;33778:22;;:39;;;;;;;33742:15;:76;;33778:39;;;;33742:76;;;;;33940:12;;3166:5;33914:22;;:39;;;;;;;;33895:15;:59;33889:4;:66;33881:4;:75;33847:109;;33589:475;;;34003:12;:49;;;33589:475;-1:-1:-1;;;;;34137:37:0;;;;;;:19;:37;;;;;;34124:68;;34176:15;34124:12;:68::i;:::-;34084:19;:37;34104:16;-1:-1:-1;;;;;34084:37:0;-1:-1:-1;;;;;34084:37:0;;;;;;;;;;;;:108;;;;34289:4;34270:15;34252;;:33;34251:42;34203:91;;34344:15;34305:10;:28;34316:16;-1:-1:-1;;;;;34305:28:0;-1:-1:-1;;;;;34305:28:0;;;;;;;;;;;;;:54;;;;;;;;;;;34438:11;-1:-1:-1;;;;;34379:71:0;34395:16;-1:-1:-1;;;;;34379:71:0;;34413:6;;34421:15;34379:71;;;;;;;;;;;;;;;;;;;;34468:15;34461:22;;6598:1;30728:3763;;;;;;;;;;;;;;;:::o;14421:264::-;-1:-1:-1;;;;;14636:28:0;14488:7;14636:28;;;:10;:28;;;;;;;;;14594:19;:37;;;;;;14554:19;:37;;;;;;14535:15;;3166:5;14554:77;;;;14535:97;;;14526:138;;;;14515:162;;14421:264::o;2303:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3973:47::-;;;;;;;;;;;;-1:-1:-1;;;;;3973:47:0;;:::o;15658:500::-;15737:7;15795:43;15737:7;;;15888:55;15905:16;15795:43;15936:3;15940:2;15888:16;:55::i;:::-;15850:93;;15992:43;16005:16;16023:11;15992:12;:43::i;:::-;15954:81;;16084:33;16102:14;16084:17;:33::i;:::-;16046:71;15658:500;-1:-1:-1;;;;;;15658:500:0:o;13683:90::-;13753:12;;13683:90;;:::o;30499:217::-;-1:-1:-1;;;;;30677:30:0;;;30587:7;30677:30;;;:12;:30;;;;;;;30587:7;;30623:42;;30617:59;;30677:30;;;30587:7;;30617:91;;;;;;-1:-1:-1;;;30617:91:0;;;;;;-1:-1:-1;;;;;30617:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30499:217;-1:-1:-1;;;;30499:217:0:o;16169:315::-;16247:7;16316:17;16397:22;16292:12;;16275:13;:29;;16267:38;;;;;;;;16354:32;16372:13;16354:17;:32::i;:::-;16316:70;16169:315;-1:-1:-1;;;;16169:315:0:o;5059:35::-;;;;;;:::o;20060:211::-;-1:-1:-1;;;;;20177:22:0;;;20143:7;20177:22;;;:7;:22;;;;;;;;:30;;;;;;;:45;;;20223:39;;;;20177:45;;;20060:211::o;3914:52::-;;;;;;;;;;;;;:::o;17162:637::-;17236:7;17254:16;17352:17;17452:18;17535:17;17657:20;17292:49;17305:3;17310:12;:30;17323:16;-1:-1:-1;;;;;17310:30:0;-1:-1:-1;;;;;17310:30:0;;;;;;;;;;;;;17292:12;:49::i;:::-;17254:87;;17390:29;17403:8;17413:5;17390:12;:29::i;:::-;17352:67;;17490:34;17503:9;17514;;17490:12;:34::i;:::-;-1:-1:-1;;;;;17590:37:0;;;;;;:19;:37;;;;;;17452:72;;-1:-1:-1;17573:73:0;;17452:72;17639:3;17643:2;17573:16;:73::i;:::-;-1:-1:-1;;;;;17708:37:0;;;;;;:19;:37;;;;;;17535:111;;-1:-1:-1;17695:66:0;;17756:4;17535:111;17746:14;;17695:12;:66::i;:::-;17657:104;17162:637;-1:-1:-1;;;;;;;17162:637:0:o;2445:60::-;2503:2;2445:60;:::o;5000:46::-;;;;;;;;;;;;;;;:::o;9188:590::-;9249:24;9308:18;5455:1;5435:17;5447:4;5435:11;:17::i;:::-;:21;5427:30;;;;;;9287:10;9249:48;;9346:18;9358:5;9346:11;:18::i;:::-;-1:-1:-1;;;;;9421:28:0;;;;;;:10;:28;;;;;;;;:73;;3166:5;9471:22;;9421:73;;;9554:16;:34;;;;;;;;9599:39;;;9515:73;;;-1:-1:-1;9421:28:0;9659:37;;;;;9515:73;;9659:37;;;;;;;;;;;;;;;;;;;;;;;;;9741:16;-1:-1:-1;;;;;9730:40:0;;9759:10;9730:40;;;;;;;;;;;;;;9188:590;;:::o;19925:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19925:66:0;;;;;:::o;14702:356::-;14743:7;14888:17;14960:22;14766:12;;14782:1;14766:17;14763:288;;;14806:49;;-1:-1:-1;14799:56:0;;14763:288;14922:23;14940:4;14922:17;:23::i;:::-;14888:57;;14994:9;14960:43;;15025:14;15018:21;;14763:288;14702:356;;;:::o;3189:62::-;;;;:::o;17958:1097::-;18014:4;18040:24;18179:23;18265:16;18363:17;18441:18;18524:17;18624:20;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;18114:15;;18078:10;;-1:-1:-1;18114:15:0;;18113:16;:54;;;;-1:-1:-1;;;;;;18133:30:0;;18166:1;18133:30;;;:12;:30;;;;;;:34;18113:54;18105:63;;;;;;;;-1:-1:-1;;;;;18217:37:0;;;;;;:19;:37;;;;;;;;;18321:12;:30;;;;;;;18217:37;;-1:-1:-1;18303:49:0;;18316:3;;18303:12;:49::i;:::-;18265:87;;18401:29;18414:8;18424:5;18401:12;:29::i;:::-;18363:67;;18479:34;18492:9;18503;;18479:12;:34::i;:::-;18441:72;;18562:51;18579:15;18595:10;18606:3;18610:2;18562:16;:51::i;:::-;18524:89;-1:-1:-1;18662:44:0;18675:15;18701:4;18524:89;18691:14;;18662:44;18784:12;;18624:82;;-1:-1:-1;18771:42:0;;18808:4;18798:9;:14;;18771:42;18733:12;:80;-1:-1:-1;;;;;18883:37:0;;;;;;:19;:37;;;;;;18870:65;;18922:12;18870;:65::i;:::-;-1:-1:-1;;;;;18830:37:0;;;;;;;:19;:37;;;;;;;;:105;;;;18946:19;:37;;;;;:41;;;18998:12;:30;;;;;:39;;;;-1:-1:-1;17958:1097:0;;;-1:-1:-1;;;;;17958:1097:0:o;30346:141::-;-1:-1:-1;;;;;30449:30:0;;;30419:7;30449:30;;;:12;:30;;;;;;;;30346:141::o;13562:101::-;13639:16;;13562:101;:::o;13970:286::-;14039:7;14097:10;14125:21;:122;;14218:29;14230:16;14218:11;:29::i;:::-;14125:122;;;-1:-1:-1;;;;;14181:34:0;;;;;;:16;:34;;;;;;14149:29;14198:16;14149:11;:29::i;:::-;:66;14125:122;14118:129;;13970:286;;;;;:::o;13455:96::-;-1:-1:-1;;;;;13531:4:0;:12;;13455:96;:::o;14273:137::-;-1:-1:-1;;;;;14365:37:0;14338:7;14365:37;;;:19;:37;;;;;;;14273:137::o;16496:648::-;16574:4;16590:24;16753:33;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;16666:15;;16628:10;;-1:-1:-1;16666:15:0;;16665:16;:76;;;;-1:-1:-1;;;;;;16704:37:0;;;;;;:19;:37;;;;;;16685:56;;;16665:76;16657:85;;;;;;;;16791:35;16804:15;16821:4;16791:12;:35::i;:::-;-1:-1:-1;;;;;16837:30:0;;;;;;:12;:30;;;;;;;;16875:3;16837:41;;16942:19;:37;;;;;;16753:73;;-1:-1:-1;16929:78:0;;16753:73;16929:12;:78::i;:::-;-1:-1:-1;;;;;16889:37:0;;;;;;:19;:37;;;;;;;;:118;;;;17071:19;:37;;;;17058:78;;17110:25;17058:12;:78::i;:::-;-1:-1:-1;;;;;17018:37:0;;;;;;;:19;:37;;;;;:118;;;;-1:-1:-1;16496:648:0;;-1:-1:-1;16496:648:0:o;17811:135::-;-1:-1:-1;;;;;17908:30:0;17882:7;17908:30;;;:12;:30;;;;;;;17811:135::o;12738:155::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12832:18:0;:53;12738:155::o;15075:572::-;15115:7;15260:17;15332:21;15425:19;15522:22;15138:12;;15154:1;15138:17;15135:505;;;15178:49;;-1:-1:-1;15171:56:0;;15135:505;15294:23;15312:4;15294:17;:23::i;:::-;15260:57;-1:-1:-1;15366:43:0;;-1:-1:-1;15459:48:0;15260:57;15366:43;15500:3;15504:2;15459:16;:48::i;:::-;15425:82;;15556:36;15569:9;15580:11;15556:12;:36::i;:::-;15522:70;;15614:14;15607:21;;15135:505;15075:572;;;;;:::o;12574:152::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12673:27:0;;;;:14;:27;;;;;;:45;;-1:-1:-1;;12673:45:0;;;;;;;;;;12574:152::o;13791:161::-;13831:7;13889:10;13917:27;13889:10;13917:9;:27::i;:::-;13910:34;;13791:161;;;:::o;2374:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12283:120;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12352:15:0;:43;;-1:-1:-1;;12352:43:0;;;12283:120::o;10999:1204::-;11094:4;11111:24;11351:20;11415:18;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;11189:15;;11149:10;;-1:-1:-1;11189:15:0;;11188:16;:76;;;;-1:-1:-1;;;;;;11227:37:0;;;;;;:19;:37;;;;;;11208:56;;;11188:76;11180:85;;;;;;;;11309:1;11289:17;11301:4;11289:11;:17::i;:::-;:21;11286:36;;;11312:10;:8;:10::i;:::-;11389:15;11351:53;;11453:18;11465:5;11453:11;:18::i;:::-;-1:-1:-1;;;;;11616:37:0;;;;;;:19;:37;;;;;;11415:56;;-1:-1:-1;11603:68:0;;11655:15;11603:12;:68::i;:::-;-1:-1:-1;;;;;11563:37:0;;;;;;;:19;:37;;;;;;:108;;;;11733:31;;;;;;;11720:59;;11766:12;11720;:59::i;:::-;-1:-1:-1;;;;;11682:31:0;;;;;;;:19;:31;;;;;;;;:97;;;;11848:15;;;11799:28;;;;;:10;:28;;;;;;:83;;11848:33;;;11799:83;;;;;;11942:15;;11893:22;;;;;;;:80;;11942:30;;;11893:80;;;;;;12044:15;12088:12;;12031:70;;12044:15;3166:5;12062:22;;12061:39;;;;;;12031:70;11993:15;:108;-1:-1:-1;;;;;12121:52:0;;;;;;;12160:12;12121:52;;;;;;;;;;;;;;-1:-1:-1;12191:4:0;;10999:1204;-1:-1:-1;;;;;10999:1204:0:o;29861:473::-;-1:-1:-1;;;;;29993:29:0;;;29970:7;29993:29;;;:11;:29;;;;;;;;:40;;;30048:17;:35;;;;;:49;;;30115:12;:30;;;;;;29970:7;;30115:30;:76;30112:163;;;30245:14;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30212:30:0;;;;;;;:12;:30;;;;;:47;;-1:-1:-1;;;;;;30212:47:0;;;;;;;;;;;30112:163;-1:-1:-1;;;;;;;;30296:30:0;;;;;;;:12;:30;;;;;;;;29861:473::o;13037:126::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;13110:6;13148:7;;13110:45;;;;;;;;:::i;:::-;;13037:126;;:::o;3861:46::-;;;;;;;;;;;;;:::o;12905:120::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;12974:4;13012:5;;12974:43;;;;;;;;:::i;12416:146::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12504:9:0;:50;12416:146::o;13183:204::-;13254:21;5574:10;5603:14;13254:21;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;13280:10;13254:36;;13301:13;-1:-1:-1;;;;;13301:22:0;:40;13324:16;;13301:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13378:1:0;13352:16;:27;13183:204::o;20624:1055::-;20699:10;20725:6;20735:1;20725:11;20722:926;;;-1:-1:-1;;;;;;20758:39:0;;;;;;;:21;:39;;;;;;;20722:926;;;20818:6;20828:1;20818:11;20815:833;;;-1:-1:-1;;;;;;20851:39:0;;;;;;;:21;:39;;;;;;;20815:833;;;20911:6;20921:1;20911:11;20908:740;;;-1:-1:-1;;;;;;20944:39:0;;;;;;;:21;:39;;;;;;;20908:740;;;21004:6;21014:1;21004:11;21001:647;;;-1:-1:-1;;;;;;21037:39:0;;;;;;;:21;:39;;;;;;;21001:647;;;21097:6;21107:1;21097:11;21094:554;;;-1:-1:-1;;;;;;21130:39:0;;;;;;;:21;:39;;;;;;;21094:554;;;21190:6;21200:1;21190:11;21187:461;;;-1:-1:-1;;;;;;21223:39:0;;;;;;;:21;:39;;;;;;;21187:461;;;21283:6;21293:1;21283:11;21280:368;;;-1:-1:-1;;;;;;21316:39:0;;;;;;;:21;:39;;;;;;;21280:368;;;21376:6;21386:1;21376:11;21373:275;;;-1:-1:-1;;;;;;21409:39:0;;;;;;;:21;:39;;;;;;;21373:275;;;21469:6;21479:1;21469:11;21466:182;;;-1:-1:-1;;;;;;21502:39:0;;;;;;;:21;:39;;;;;;;21466:182;;;21562:6;21572:2;21562:12;21559:89;;;-1:-1:-1;;;;;;21596:40:0;;;;;;;:22;:40;;;;;;;21559:89;20624:1055;;;;:::o;9821:1131::-;9895:24;10030:15;10094:17;10169:18;10236:22;10509;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;9933:10;-1:-1:-1;;;;;9981:37:0;;;;;;:19;:37;;;;;;9933:10;;-1:-1:-1;9962:56:0;;;9954:65;;;;;;10068:15;10030:53;;10132:26;10150:7;10132:17;:26::i;:::-;10094:64;;10207:18;10219:5;10207:11;:18::i;:::-;10169:56;;10274:9;10236:47;;10342:35;10355:12;;10369:7;10342:12;:35::i;:::-;10304:12;:73;-1:-1:-1;;;;;10441:37:0;;;;;;:19;:37;;;;;;10428:60;;10480:7;10428:12;:60::i;:::-;-1:-1:-1;;;;;10388:37:0;;;;;;:19;:37;;;;;;;;:100;;;;10557:15;;10625:10;:28;;;;;;:54;;10557:25;;;3166:5;10586:26;;10557:56;10625:54;;;;;;10711:12;;10557:56;;-1:-1:-1;10711:16:0;;10707:163;;;10788:70;10801:15;;10845:12;;3166:5;10819:10;:22;10818:39;;;;;;10788:70;10754:15;:104;10707:163;10902:16;-1:-1:-1;;;;;10890:54:0;;10920:7;10929:14;10890:54;;;;;;;;;;;;;;;;;;;;9821:1131;;;;;;;:::o;19998:49::-;;;;;;;;;;;;;:::o;8898:247::-;8980:10;-1:-1:-1;;;;;9039:37:0;;8942:24;9039:37;;;:19;:37;;;;;;;9090:11;;9087:29;;;9103:13;9108:7;9103:4;:13::i;:::-;9127:10;:8;:10::i;:::-;8898:247;;:::o;7958:123::-;8015:7;8035:38;8050:9;8061:11;8035:14;:38::i;8215:640::-;8276:18;8394:24;8691:15;5455:1;5435:17;5447:4;5435:11;:17::i;:::-;:21;5427:30;;;;;;8314:18;8326:5;8314:11;:18::i;:::-;8432:10;-1:-1:-1;;;;;8453:28:0;;;;;;:10;:28;;;;;;;;:73;;3166:5;8503:22;;8453:73;;;8586:16;:34;;;;;;;8631:39;;;;8547:73;;;;-1:-1:-1;8432:10:0;-1:-1:-1;8729:31:0;;8547:73;;8729:14;:31::i;:::-;8691:69;;8809:16;-1:-1:-1;;;;;8794:53:0;;8827:10;8839:7;8794:53;;;;;;;;;;;;;;;;;;;;8215:640;;;:::o;1096:147::-;1154:7;1186:5;;;1209:6;;;;1202:14;;;;1234:1;1227:8;;1096:147;;;;;;:::o;147:306::-;248:13;274:15;335:14;312:9;322:1;312:11;305:2;:19;293:9;:31;274:50;;388:2;368:11;355:10;:24;;;;;;;;383:1;354:30;353:37;;;;;;;;;-1:-1:-1;425:19:0;409:15;;;:35;;147:306;-1:-1:-1;;;;;;;147:306:0:o;967:123::-;1025:7;1052:6;;;;1045:14;;;;-1:-1:-1;1077:5:0;;;967:123::o;34504:919::-;35357:12;;34572:7;;34630:25;;34572:7;;2932:14;34749:555;34785:457;34931:52;;;35047:27;35156:1;35077:15;;35046:47;34846:248;35156:45;:58;;34846:369;34847:21;34846:369;34785:4;:457::i;:::-;35267:18;34749:12;:555::i;:::-;34730:614;;;;;;;;34715:655;;34504:919;-1:-1:-1;;;;34504:919:0:o;21691:8160::-;21937:14;:51;;;21857:7;21909:17;22043:42;21909:17;22075:2;22078:3;22082:2;22043:16;:42::i;:::-;22009:8;:76;22147:14;;22130:42;;22162:2;22165:3;22169:2;22130:16;:42::i;:::-;22096:8;:76;22234:14;;22217:42;;22249:2;22252:3;22256:2;22217:16;:42::i;:::-;22183:8;:76;22321:14;;22304:41;;22336:1;22338:3;22342:2;22304:16;:41::i;:::-;22270:8;:75;22407:14;;22390:41;;22422:1;22424:3;22428:2;22390:16;:41::i;:::-;22356:8;:75;22493:14;;22476:41;;22508:1;22510:3;22514:2;22476:16;:41::i;:::-;22442:8;:75;22579:14;;22562:41;;22594:1;22596:3;22600:2;22562:16;:41::i;:::-;22528:8;:75;22665:14;;22648:41;;22680:1;22682:3;22686:2;22648:16;:41::i;:::-;22614:8;:75;22751:14;;22734:41;;22766:1;22768:3;22772:2;22734:16;:41::i;:::-;22700:8;:75;22837:14;;22820:41;;22852:1;22854:3;22858:2;22820:16;:41::i;:::-;22786:9;:75;-1:-1:-1;;;;;22890:39:0;;;;;;;:21;:39;;;;;;;;:73;;-1:-1:-1;;;;;;22890:73:0;;;;;;;;;23066:39;;;23049:57;;:16;:57;;;;23108:8;;23036:81;;23049:57;23036:12;:81::i;:::-;-1:-1:-1;;;;;22991:39:0;;;22974:57;22991:39;;;:21;:39;;;;;;;;;;;;22974:57;;:16;:57;;;:143;23222:8;;23190:41;;23203:17;;23190:12;:41::i;:::-;23128:103;-1:-1:-1;23261:4:0;23245:20;;;;23242:100;;;23282:48;23297:11;23310:16;23328:1;23282:14;:48::i;:::-;-1:-1:-1;;;;;23396:34:0;;;;;;;:21;:34;;;;;;;;;23362:6;:68;;-1:-1:-1;;;;;;23362:68:0;;;23396:34;;;23362:68;;;;;;;;23475:21;:34;;;;;;23441:6;:68;;;;23475:34;;;23441:68;;;;;;23554:21;:34;;;;;;23520:6;:68;;;;23554:34;;;23520:68;;;;;;23633:21;:34;;;;;;23599:6;:68;;;;23633:34;;;23599:68;;;;;;23712:21;:34;;;;;;23678:6;:68;;;;23712:34;;;23678:68;;;;;;23791:21;:34;;;;;;23757:6;:68;;;;23791:34;;;23757:68;;;;;;23870:21;:34;;;;;;23836:6;:68;;;;23870:34;;;23836:68;;;;;;23949:21;:34;;;;;;23915:6;:68;;;;23949:34;;;23915:68;;;;;;24028:21;:34;;;;;;23994:7;:68;;;;;24028:34;;;23994:68;;;;24094:6;:52;24091:601;;-1:-1:-1;;;;;24225:34:0;;;;;;;:21;:34;;;;;;;;;24163:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;24163:96:0;24225:34;;;24163:96;;;;;;;;24366:39;;;24349:57;;:16;:57;;;;24408:8;;24336:81;;24349:57;24336:12;:81::i;:::-;-1:-1:-1;;;;;24291:39:0;;;24274:57;24291:39;;;:21;:39;;;;;;;;;;;;24274:57;;:16;:57;;;:143;24526:8;;24494:41;;24507:17;;24494:12;:41::i;:::-;24432:103;-1:-1:-1;24569:4:0;24553:20;;;;24550:131;;;-1:-1:-1;;;;;24609:34:0;;;;;;;:21;:34;;;;;;24594:71;;24609:34;24645:16;24663:1;24594:14;:71::i;:::-;24723:6;;-1:-1:-1;;;;;24723:6:0;:52;24720:601;;-1:-1:-1;;;;;24854:34:0;;;;;;;:21;:34;;;;;;;;;24792:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;24792:96:0;24854:34;;;24792:96;;;;;;;;24995:39;;;24978:57;;:16;:57;;;;25037:8;;24965:81;;24978:57;24965:12;:81::i;:::-;-1:-1:-1;;;;;24920:39:0;;;24903:57;24920:39;;;:21;:39;;;;;;;;;;;;24903:57;;:16;:57;;;:143;25155:8;;25123:41;;25136:17;;25123:12;:41::i;:::-;25061:103;-1:-1:-1;25198:4:0;25182:20;;;;25179:131;;;-1:-1:-1;;;;;25238:34:0;;;;;;;:21;:34;;;;;;25223:71;;25238:34;25274:16;25292:1;25223:14;:71::i;:::-;25352:6;;-1:-1:-1;;;;;25352:6:0;:52;25349:601;;-1:-1:-1;;;;;25483:34:0;;;;;;;:21;:34;;;;;;;;;25421:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;25421:96:0;25483:34;;;25421:96;;;;;;;;25624:39;;;25607:57;;:16;:57;;;;25666:8;;25594:81;;25607:57;25594:12;:81::i;:::-;-1:-1:-1;;;;;25549:39:0;;;25532:57;25549:39;;;:21;:39;;;;;;;;;;;;25532:57;;:16;:57;;;:143;25784:8;;25752:41;;25765:17;;25752:12;:41::i;:::-;25690:103;-1:-1:-1;25827:4:0;25811:20;;;;25808:131;;;-1:-1:-1;;;;;25867:34:0;;;;;;;:21;:34;;;;;;25852:71;;25867:34;25903:16;25921:1;25852:14;:71::i;:::-;25981:6;;-1:-1:-1;;;;;25981:6:0;:52;25978:601;;-1:-1:-1;;;;;26112:34:0;;;;;;;:21;:34;;;;;;;;;26050:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;26050:96:0;26112:34;;;26050:96;;;;;;;;26253:39;;;26236:57;;:16;:57;;;;26295:8;;26223:81;;26236:57;26223:12;:81::i;:::-;-1:-1:-1;;;;;26178:39:0;;;26161:57;26178:39;;;:21;:39;;;;;;;;;;;;26161:57;;:16;:57;;;:143;26413:8;;26381:41;;26394:17;;26381:12;:41::i;:::-;26319:103;-1:-1:-1;26456:4:0;26440:20;;;;26437:131;;;-1:-1:-1;;;;;26496:34:0;;;;;;;:21;:34;;;;;;26481:71;;26496:34;26532:16;26550:1;26481:14;:71::i;:::-;26610:6;;-1:-1:-1;;;;;26610:6:0;:52;26607:601;;-1:-1:-1;;;;;26741:34:0;;;;;;;:21;:34;;;;;;;;;26679:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;26679:96:0;26741:34;;;26679:96;;;;;;;;26882:39;;;26865:57;;:16;:57;;;;26924:8;;26852:81;;26865:57;26852:12;:81::i;:::-;-1:-1:-1;;;;;26807:39:0;;;26790:57;26807:39;;;:21;:39;;;;;;;;;;;;26790:57;;:16;:57;;;:143;27042:8;;27010:41;;27023:17;;27010:12;:41::i;:::-;26948:103;-1:-1:-1;27085:4:0;27069:20;;;;27066:131;;;-1:-1:-1;;;;;27125:34:0;;;;;;;:21;:34;;;;;;27110:71;;27125:34;27161:16;27179:1;27110:14;:71::i;:::-;27241:6;;-1:-1:-1;;;;;27241:6:0;:52;27238:601;;-1:-1:-1;;;;;27372:34:0;;;;;;;:21;:34;;;;;;;;;27310:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;27310:96:0;27372:34;;;27310:96;;;;;;;;27513:39;;;27496:57;;:16;:57;;;;27555:8;;27483:81;;27496:57;27483:12;:81::i;:::-;-1:-1:-1;;;;;27438:39:0;;;27421:57;27438:39;;;:21;:39;;;;;;;;;;;;27421:57;;:16;:57;;;:143;27673:8;;27641:41;;27654:17;;27641:12;:41::i;:::-;27579:103;-1:-1:-1;27716:4:0;27700:20;;;;27697:131;;;-1:-1:-1;;;;;27756:34:0;;;;;;;:21;:34;;;;;;27741:71;;27756:34;27792:16;27810:1;27741:14;:71::i;:::-;27872:6;;-1:-1:-1;;;;;27872:6:0;:52;27869:601;;-1:-1:-1;;;;;28003:34:0;;;;;;;:21;:34;;;;;;;;;27941:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;27941:96:0;28003:34;;;27941:96;;;;;;;;28144:39;;;28127:57;;:16;:57;;;;28186:8;;28114:81;;28127:57;28114:12;:81::i;:::-;-1:-1:-1;;;;;28069:39:0;;;28052:57;28069:39;;;:21;:39;;;;;;;;;;;;28052:57;;:16;:57;;;:143;28304:8;;28272:41;;28285:17;;28272:12;:41::i;:::-;28210:103;-1:-1:-1;28347:4:0;28331:20;;;;28328:131;;;-1:-1:-1;;;;;28387:34:0;;;;;;;:21;:34;;;;;;28372:71;;28387:34;28423:16;28441:1;28372:14;:71::i;:::-;28503:6;;-1:-1:-1;;;;;28503:6:0;:52;28500:601;;-1:-1:-1;;;;;28634:34:0;;;;;;;:21;:34;;;;;;;;;28572:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;28572:96:0;28634:34;;;28572:96;;;;;;;;28775:39;;;28758:57;;:16;:57;;;;28817:8;;28745:81;;28758:57;28745:12;:81::i;:::-;-1:-1:-1;;;;;28700:39:0;;;28683:57;28700:39;;;:21;:39;;;;;;;;;;;;28683:57;;:16;:57;;;:143;28935:8;;28903:41;;28916:17;;28903:12;:41::i;:::-;28841:103;-1:-1:-1;28978:4:0;28962:20;;;;28959:131;;;-1:-1:-1;;;;;29018:34:0;;;;;;;:21;:34;;;;;;29003:71;;29018:34;29054:16;29072:1;29003:14;:71::i;:::-;29133:7;;-1:-1:-1;;;;;29133:7:0;:53;29130:606;;-1:-1:-1;;;;;29265:34:0;;;;;;;:21;:34;;;;;;;;;29203:40;;;;;:22;:40;;;;;:96;;-1:-1:-1;;;;;;29203:96:0;29265:34;;;29203:96;;;;;;;;29406:40;;;29389:58;;:16;:58;;;;29449:9;;29376:83;;29389:58;29376:12;:83::i;:::-;-1:-1:-1;;;;;29331:40:0;;;29314:58;29331:40;;;:22;:40;;;;;;;;;;;;29314:58;;:16;:58;;;:145;29568:9;;29536:42;;29549:17;;29536:12;:42::i;:::-;29474:104;-1:-1:-1;29612:4:0;29596:20;;;;29593:132;;;-1:-1:-1;;;;;29652:34:0;;;;;;;:21;:34;;;;;;29637:72;;29652:34;29688:16;29706:2;29637:14;:72::i;:::-;29794:49;29807:16;;29825:17;29794:12;:49::i;:::-;29756:16;:87;-1:-1:-1;;;;;;21691:8160:0:o;35442:696::-;35632:12;;35508:7;;35577:4;35567:14;;;;35632:19;;;35508:7;;35725:357;35806:147;35884:17;;;3011:14;35858:44;35806:147;35779:214;;36066:1;35577:4;-1:-1:-1;;36039:10:0;;;:18;;;;36038:25;3011:14;36014:50;36013:54;;;;;;;;35725:12;:357::i;:::-;:372;;;;;;;;;35442:696;-1:-1:-1;;;;;35442:696:0:o;673:288::-;731:7;830:9;846:1;842;:5;;;;;;;;;673:288;-1:-1:-1;;;;673:288:0:o;459:208::-;517:7;;541:6;;537:47;;;571:1;564:8;;;;537:47;-1:-1:-1;606:5:0;;;610:1;606;:5;629;;;;;;;;:10;622:18;;;36151:198;36225:5;36234:1;36229;36225:5;;36224:11;36262:80;36273:1;36269;:5;36262:80;;;36295:1;36291:5;;36329:1;36324;36320;36316;:5;;;;;;;;:9;36315:15;;;;;;;;36311:19;;36262:80;;20283:333;-1:-1:-1;;;;;20389:29:0;;;20431:11;20389:29;;;:14;:29;;;;;;;;:31;;;;;;;;;;20485:7;:22;;;;;:30;;;;;;;;:62;;-1:-1:-1;;;;;;20485:62:0;;;;;;;;;;;20558:39;;:50;20283:333::o;2135:34223::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2135:34223:0;;;;-1:-1:-1;2135:34223:0;;;;;;;;;;;;;;

Swarm Source

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