ETH Price: $2,649.36 (+1.88%)
Gas: 1 Gwei

Contract

0xdd11F5cdCd86FbADC097417f9FB9919e51c8F2f3
 

Overview

ETH Balance

0.022758959100113944 ETH

Eth Value

$60.30 (@ $2,649.36/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer112480962020-11-13 7:49:181366 days ago1605253758IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0005801225
Buy112162172020-11-08 10:31:351371 days ago1604831495IN
0xdd11F5cd...e51c8F2f3
0.0180951 ETH0.0028152621
Sell112162112020-11-08 10:29:181371 days ago1604831358IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0014845121
Sell112161362020-11-08 10:11:301371 days ago1604830290IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0014229219
Sell112161322020-11-08 10:10:271371 days ago1604830227IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0017203319
Sell112161322020-11-08 10:10:271371 days ago1604830227IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0014229219
Buy112160792020-11-08 9:58:371371 days ago1604829517IN
0xdd11F5cd...e51c8F2f3
1.1 ETH0.0031620620
Buy112159842020-11-08 9:38:211371 days ago1604828301IN
0xdd11F5cd...e51c8F2f3
0.01 ETH0.0019455819
Sell112159732020-11-08 9:35:561371 days ago1604828156IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0013480318
Sell112159602020-11-08 9:33:161371 days ago1604827996IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0016295718
Buy112159352020-11-08 9:26:341371 days ago1604827594IN
0xdd11F5cd...e51c8F2f3
0.33 ETH0.0015304517
Sell112159252020-11-08 9:23:061371 days ago1604827386IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0015390417
Sell112159092020-11-08 9:20:201371 days ago1604827220IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0015392417
Buy112158612020-11-08 9:10:161371 days ago1604826616IN
0xdd11F5cd...e51c8F2f3
0.03 ETH0.0025268218
Buy112158482020-11-08 9:07:451371 days ago1604826465IN
0xdd11F5cd...e51c8F2f3
0.004 ETH0.001939919
Buy112158442020-11-08 9:06:491371 days ago1604826409IN
0xdd11F5cd...e51c8F2f3
0 ETH0.0011292819
Buy112158332020-11-08 9:03:491371 days ago1604826229IN
0xdd11F5cd...e51c8F2f3
0.03 ETH0.0014426217
Buy112157392020-11-08 8:40:191371 days ago1604824819IN
0xdd11F5cd...e51c8F2f3
0.015 ETH0.0030374517
Buy112138292020-11-08 1:40:081372 days ago1604799608IN
0xdd11F5cd...e51c8F2f3
0.027 ETH0.0038214525
Buy112119382020-11-07 18:32:041372 days ago1604773924IN
0xdd11F5cd...e51c8F2f3
0.21 ETH0.0037525927
Sell112115602020-11-07 17:07:501372 days ago1604768870IN
0xdd11F5cd...e51c8F2f3
0 ETH0.003295244
Buy112106832020-11-07 13:51:591372 days ago1604757119IN
0xdd11F5cd...e51c8F2f3
0.2 ETH0.0080706673
Buy112106292020-11-07 13:38:561372 days ago1604756336IN
0xdd11F5cd...e51c8F2f3
0.1 ETH0.0060557856
Buy112101462020-11-07 11:50:321372 days ago1604749832IN
0xdd11F5cd...e51c8F2f3
0.32 ETH0.0029349833
Buy112100582020-11-07 11:30:521372 days ago1604748652IN
0xdd11F5cd...e51c8F2f3
0.16 ETH0.0050443133
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
112162112020-11-08 10:29:181371 days ago1604831358
0xdd11F5cd...e51c8F2f3
0.13684109 ETH
112161362020-11-08 10:11:301371 days ago1604830290
0xdd11F5cd...e51c8F2f3
0.67723875 ETH
112161322020-11-08 10:10:271371 days ago1604830227
0xdd11F5cd...e51c8F2f3
0.33520742 ETH
112159732020-11-08 9:35:561371 days ago1604828156
0xdd11F5cd...e51c8F2f3
0.37265051 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
6,779.02974266 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
1.68817204 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
767.78739665 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
3,698.90257325 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
3,227.25678126 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48909647 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.4891051 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48911372 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48912234 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48913097 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48913959 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48914821 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48915684 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48916546 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48917408 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48918271 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48919133 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48919995 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48920858 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.4892172 ETH
112156072020-11-08 8:11:411371 days ago1604823101
0xdd11F5cd...e51c8F2f3
0.48922582 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LTT_Exchange

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-04
*/

pragma solidity ^0.4.26;

contract LTT_Exchange {
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }
    /*==============================
    =            EVENTS            =
    ==============================*/

    event Reward(
       address indexed to,
       uint256 rewardAmount,
       uint256 level
    );
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
   
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "Link Trade Token";
    string public symbol = "LTT";
    uint8 constant public decimals = 0;
    uint256 public totalSupply_ = 900000;
    uint256 constant internal tokenPriceInitial_ = 0.00013 ether;
    uint256 constant internal tokenPriceIncremental_ = 263157894;
    uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_;
    uint256 public base = 1;
    uint256 public basePrice = 380;
    uint public percent = 1100;
    uint256 public rewardSupply_ = 2000000;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal rewardBalanceLedger_;
    address commissionHolder;
    uint256 internal tokenSupply_ = 0;
    mapping(address => bool) internal administrators;
    mapping(address => address) public genTree;
    mapping(address => uint256) public level1Holding_;
    address terminal;
    uint8[] percent_ = [5,2,1,1,1];
    uint256[] holding_ = [0,460,460,930,930];
    uint internal minWithdraw = 1000;
    uint funds = 0;
    bool distributeRewards_ = false;
    bool reEntrancyMutex = false;
   
    constructor() public
    {
        terminal = msg.sender;
        administrators[terminal] = true;
    }
   
   function upgradeContract(address[] _users, uint256[] _balances, uint256[] _rewards, address[] _referredBy, uint modeType)
    onlyAdministrator()
    public
    {
        if(modeType == 1)
        {
            for(uint i = 0; i<_users.length;i++)
            {
                tokenBalanceLedger_[_users[i]] += _balances[i];
                tokenSupply_ += _balances[i];
                genTree[_users[i]] = _referredBy[i];
                
                rewardBalanceLedger_[_users[i]] += _rewards[i];
                tokenSupply_ += _rewards[i]/100;
                
                emit Transfer(address(this),_users[i],_balances[i]);
            }
        }
        if(modeType == 2)
        {
            for(i = 0; i<_users.length;i++)
            {
                rewardBalanceLedger_[_users[i]] += _balances[i];
                tokenSupply_ += _balances[i]/100;
            }
        }
    }
   
   function fundsInjection() public payable returns(bool)
    {
        return true;
    }
    
    function startSellDistribution() onlyAdministrator() public
    {
        distributeRewards_ = true;
    }
    
    function stopSellDistribution() onlyAdministrator() public
    {
        distributeRewards_ = false;
    }
    
    function upgradeDetails(uint256 _currentPrice, uint256 _grv)
    onlyAdministrator()
    public
    {
        currentPrice_ = _currentPrice;
        base = _grv;
    }
   
    function withdrawRewards() public returns(uint256)
    {
        address _customerAddress = msg.sender;
        require(!reEntrancyMutex);
        require(rewardBalanceLedger_[_customerAddress]>minWithdraw);
        reEntrancyMutex = true;
        uint256 _balance = rewardBalanceLedger_[_customerAddress]/100;
        rewardBalanceLedger_[_customerAddress] -= _balance*100;
        emit Transfer(_customerAddress, address(this),_balance);
        _balance = SafeMath.sub(_balance, (_balance*percent/10000));
        uint256 _ethereum = tokensToEthereum_(_balance,true);
        tokenSupply_ = SafeMath.sub(tokenSupply_, _balance);
        _customerAddress.transfer(_ethereum);
        reEntrancyMutex = false;
    }
   
    function distributeRewards(uint256 _amountToDistribute, address _idToDistribute)
    internal
    {
        uint256 _currentPrice = currentPrice_*basePrice;
        uint256 _tempAmountToDistribute = _amountToDistribute*100;
        for(uint i=0; i<5; i++)
        {
            address referrer = genTree[_idToDistribute];
            uint256 value = _currentPrice*tokenBalanceLedger_[referrer];
            uint256 _holdingLevel1 = level1Holding_[referrer]*_currentPrice;
            if(referrer != 0x0 && value >= (50*10**18) && _holdingLevel1 >= (holding_[i]*10**18))
            {
                rewardBalanceLedger_[referrer] += (_amountToDistribute*percent_[i]*100)/10;
                _idToDistribute = referrer;
                emit Reward(referrer,(_amountToDistribute*percent_[i]*100)/10,i);
                _tempAmountToDistribute -= (_amountToDistribute*percent_[i]*100)/10;
            }
        }
        rewardBalanceLedger_[commissionHolder] += _tempAmountToDistribute;
    }
   
   function setBasePrice(uint256 _price)
    onlyAdministrator()
    public
    returns(bool) {
        basePrice = _price;
    }
   
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        if(msg.sender == _referredBy)
        {
            genTree[msg.sender] = terminal;
        }
        else
        {
            genTree[msg.sender] = _referredBy;
        }
        purchaseTokens(msg.value, _referredBy);
    }
   
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
   
    /**
     * Liquifies tokens to ethereum.
    */
     
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        require(!reEntrancyMutex);
        // setup data
        reEntrancyMutex = true;
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _deficit = _tokens * percent / 10000;
        uint256 _dividends = _tokens * (percent-200)/10000;
        tokenBalanceLedger_[commissionHolder] += (_tokens*200)/10000;
        _tokens = SafeMath.sub(_tokens, _deficit);
        uint256 _ethereum = tokensToEthereum_(_tokens,true);
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        if(_dividends > 0 && distributeRewards_)
        {
            distributeRewards(_dividends,_customerAddress);
        }
        level1Holding_[genTree[_customerAddress]] -=_amountOfTokens;
        
        _customerAddress.transfer(_ethereum);
        emit Transfer(_customerAddress, address(this), _amountOfTokens);
        reEntrancyMutex = false;
    }
   
    function rewardOf(address _toCheck)
        public view
        returns(uint256)
    {
        return rewardBalanceLedger_[_toCheck];    
    }
   
    function holdingLevel1(address _toCheck)
        public view
        returns(uint256)
    {
        return level1Holding_[_toCheck];    
    }
   
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyAdministrator()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        return true;
    }
   
    function destruct() onlyAdministrator() public{
        selfdestruct(terminal);
    }
   
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
   
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    function setupCommissionHolder(address _commissionHolder)
    onlyAdministrator()
    public
    {
        commissionHolder = _commissionHolder;
        administrators[commissionHolder] = true;
    }

    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
   
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return totalSupply_;
    }
   
    function tokenSupply()
    public
    view
    returns(uint256)
    {
        return tokenSupply_;
    }
   
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
   
   
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
   
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice()
        public
        view
        returns(uint256)
    {
        return currentPrice_;
    }
   
    function calculateEthereumReceived(uint256 _tokensToSell)
        public
        view
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _deficit = _tokensToSell * percent / 10000;
        _tokensToSell = SafeMath.sub(_tokensToSell, (_deficit-1));
        uint256 _ethereum = tokensToEthereum_(_tokensToSell,false);
        return _ethereum;
    }
   
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
   
    event testLog(
        uint256 currBal
    );

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

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

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

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

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"level1Holding_","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[],"name":"stopSellDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_toCheck","type":"address"}],"name":"rewardOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentPrice","type":"uint256"},{"name":"_grv","type":"uint256"}],"name":"upgradeDetails","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"base","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":true,"inputs":[],"name":"percent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"genTree","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startSellDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"fundsInjection","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawRewards","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_users","type":"address[]"},{"name":"_balances","type":"uint256[]"},{"name":"_rewards","type":"uint256[]"},{"name":"_referredBy","type":"address[]"},{"name":"modeType","type":"uint256"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"setBasePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_commissionHolder","type":"address"}],"name":"setupCommissionHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_toCheck","type":"address"}],"name":"holdingLevel1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"rewardAmount","type":"uint256"},{"indexed":false,"name":"level","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currBal","type":"uint256"}],"name":"testLog","type":"event"}]

60806040526040805190810160405280601081526020017f4c696e6b20547261646520546f6b656e0000000000000000000000000000000081525060009080519060200190620000519291906200028b565b506040805190810160405280600381526020017f4c54540000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200028b565b50620dbba0600255630faf788665763bfbd2200001600355600160045561017c60055561044c600655621e84806007556000600b5560a060405190810160405280600560ff168152602001600260ff168152602001600160ff168152602001600160ff168152602001600160ff1681525060109060056200012292919062000312565b5060a060405190810160405280600061ffff1681526020016101cc61ffff1681526020016101cc61ffff1681526020016103a261ffff1681526020016103a261ffff1681525060119060056200017a929190620003c0565b506103e860125560006013556000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff021916908315150217905550348015620001c957600080fd5b5033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000473565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ce57805160ff1916838001178555620002ff565b82800160010185558215620002ff579182015b82811115620002fe578251825591602001919060010190620002e1565b5b5090506200030e919062000418565b5090565b82805482825590600052602060002090601f01602090048101928215620003ad5791602002820160005b838211156200037c57835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026200033c565b8015620003ab5782816101000a81549060ff02191690556001016020816000010492830192600103026200037c565b505b509050620003bc919062000440565b5090565b82805482825590600052602060002090810192821562000405579160200282015b8281111562000404578251829061ffff16905591602001919060010190620003e1565b5b50905062000414919062000418565b5090565b6200043d91905b80821115620004395760008160009055506001016200041f565b5090565b90565b6200047091905b808211156200046c57600081816101000a81549060ff02191690555060010162000447565b5090565b90565b612a7980620004836000396000f3006080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101c55780630c9a49f01461025557806310d0ffdd146102ac5780631732f7cf146102ed57806318160ddd146103045780631d62ebd91461032f57806322609373146103865780632b68b9c6146103c75780632e926d49146103de578063313ce56714610409578063324536eb1461043a5780633319544c146104655780635001f3b51461049c5780636b2f4632146104c757806370a08231146104f257806370ba1113146105495780637824407f146105745780638620410b1461059f578063949e8acd146105ca57806395d89b41146105f55780639b5aaebf14610685578063a9059cbb14610708578063a90ffbe31461076d578063b84c824614610784578063ba1b37f2146107ed578063c47f00271461080f578063c7876ea414610878578063c7b8981c146108a3578063d5afbee4146108ce578063da51cc85146108f9578063de4b326214610a32578063e4849b3214610a77578063f088d54714610aa4578063f531497c14610aee578063f71e41a514610b31575b6101c2346000610b88565b50005b3480156101d157600080fd5b506101da610d7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026157600080fd5b50610296600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e1d565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102d760048036038101908080359060200190929190505050610e35565b6040518082815260200191505060405180910390f35b3480156102f957600080fd5b50610302610e71565b005b34801561031057600080fd5b50610319610eec565b6040518082815260200191505060405180910390f35b34801561033b57600080fd5b50610370600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef6565b6040518082815260200191505060405180910390f35b34801561039257600080fd5b506103b160048036038101908080359060200190929190505050610f3f565b6040518082815260200191505060405180910390f35b3480156103d357600080fd5b506103dc610f8f565b005b3480156103ea57600080fd5b506103f3611027565b6040518082815260200191505060405180910390f35b34801561041557600080fd5b5061041e61102d565b604051808260ff1660ff16815260200191505060405180910390f35b34801561044657600080fd5b5061044f611032565b6040518082815260200191505060405180910390f35b34801561047157600080fd5b5061049a6004803603810190808035906020019092919080359060200190929190505050611038565b005b3480156104a857600080fd5b506104b16110a8565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b506104dc6110ae565b6040518082815260200191505060405180910390f35b3480156104fe57600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110cd565b6040518082815260200191505060405180910390f35b34801561055557600080fd5b5061055e611116565b6040518082815260200191505060405180910390f35b34801561058057600080fd5b5061058961111c565b6040518082815260200191505060405180910390f35b3480156105ab57600080fd5b506105b4611126565b6040518082815260200191505060405180910390f35b3480156105d657600080fd5b506105df611130565b6040518082815260200191505060405180910390f35b34801561060157600080fd5b5061060a611145565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561064a57808201518184015260208101905061062f565b50505050905090810190601f1680156106775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561069157600080fd5b506106c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071457600080fd5b50610753600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611216565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b50610782611402565b005b34801561079057600080fd5b506107eb600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061147d565b005b6107f56114f5565b604051808215151515815260200191505060405180910390f35b34801561081b57600080fd5b50610876600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506114fe565b005b34801561088457600080fd5b5061088d611576565b6040518082815260200191505060405180910390f35b3480156108af57600080fd5b506108b861157c565b6040518082815260200191505060405180910390f35b3480156108da57600080fd5b506108e36117b2565b6040518082815260200191505060405180910390f35b34801561090557600080fd5b50610a3060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001909291905050506117b8565b005b348015610a3e57600080fd5b50610a5d60048036038101908080359060200190929190505050611ba6565b604051808215151515815260200191505060405180910390f35b348015610a8357600080fd5b50610aa260048036038101908080359060200190929190505050611c11565b005b610ad8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fc1565b6040518082815260200191505060405180910390f35b348015610afa57600080fd5b50610b2f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061212b565b005b348015610b3d57600080fd5b50610b72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612247565b6040518082815260200191505060405180910390f35b6000806000339150610ba1856003546004546001612290565b9050600081118015610bbf5750600b54610bbd82600b546123e2565b115b1515610bca57600080fd5b610bd6600b54826123e2565b600b8190555060075460025401610bef82600b546123e2565b101515610bfb57600080fd5b610c1961271060c8600654038302811515610c1257fe5b0483612400565b610c34816127106006548402811515610c2e57fe5b0461276c565b905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610ccc600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826123e2565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3809250505092915050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e155780601f10610dea57610100808354040283529160200191610e15565b820191906000526020600020905b815481529060010190602001808311610df857829003601f168201915b505050505081565b600e6020528060005260406000206000915090505481565b600080610e49836003546004546000612290565b9050610e66816127106006548402811515610e6057fe5b0461276c565b905080915050919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610ece57600080fd5b6000601460006101000a81548160ff02191690831515021790555050565b6000600254905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000600b548411151515610f5557600080fd5b6127106006548502811515610f6657fe5b049150610f76846001840361276c565b9350610f83846000612785565b90508092505050919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610fec57600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b60025481565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561109557600080fd5b8260038190555081600481905550505050565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000600b54905090565b6000600354905090565b60008033905061113f816110cd565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111db5780601f106111b0576101008083540402835291602001916111db565b820191906000526020600020905b8154815290600101906020018083116111be57829003601f168201915b505050505081565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561127657600080fd5b3391506112c2600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561276c565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061134e600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856123e2565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561145f57600080fd5b6001601460006101000a81548160ff02191690831515021790555050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114da57600080fd5b81600190805190602001906114f09291906129a8565b505050565b60006001905090565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561155b57600080fd5b81600090805190602001906115719291906129a8565b505050565b60055481565b600080600080339250601460019054906101000a900460ff161515156115a157600080fd5b601254600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156115f057600080fd5b6001601460016101000a81548160ff0219169083151502179055506064600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481151561165657fe5b04915060648202600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a361172982612710600654850281151561172357fe5b0461276c565b9150611736826001612785565b9050611744600b548361276c565b600b819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611790573d6000803e3d6000fd5b506000601460016101000a81548160ff02191690831515021790555050505090565b60075481565b600080339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561181657600080fd5b6001831415611aca57600091505b8651821015611ac957858281518110151561183b57fe5b9060200190602002015160086000898581518110151561185757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085828151811015156118b657fe5b90602001906020020151600b6000828254019250508190555083828151811015156118dd57fe5b90602001906020020151600d600089858151811015156118f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848281518110151561198957fe5b906020019060200201516009600089858151811015156119a557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060648583815181101515611a0657fe5b90602001906020020151811515611a1957fe5b04600b600082825401925050819055508682815181101515611a3757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8885815181101515611a9d57fe5b906020019060200201516040518082815260200191505060405180910390a38180600101925050611824565b5b6002831415611b9d57600091505b8651821015611b9c578582815181101515611aef57fe5b90602001906020020151600960008985815181101515611b0b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060648683815181101515611b6c57fe5b90602001906020020151811515611b7f57fe5b04600b600082825401925050819055508180600101925050611ad8565b5b50505050505050565b600080339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c0457600080fd5b8260058190555050919050565b600080600080600080611c22611130565b111515611c2e57600080fd5b601460019054906101000a900460ff16151515611c4a57600080fd5b6001601460016101000a81548160ff021916908315150217905550339450600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515611cb657600080fd5b8593506127106006548502811515611cca57fe5b04925061271060c8600654038502811515611ce157fe5b04915061271060c88502811515611cf457fe5b0460086000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611d6d848461276c565b9350611d7a846001612785565b9050611d88600b548561276c565b600b81905550611dd7600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761276c565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082118015611e365750601460009054906101000a900460ff165b15611e4657611e458286612400565b5b85600e6000600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f38573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a36000601460016101000a81548160ff021916908315150217905550505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561209c57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061211b565b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6121253483610b88565b50919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561218857600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008060008060008060018a0360020a630faf78860296506122b88b6002028861276c565b9550600b54945060009350866002026122e36122dd8e8a6008020260028a0a016128bd565b8861276c565b8115156122ec57fe5b0492506122f88a612908565b91505b8185840111156123a557848203925061232c8c8860018603028d6002020160028681151561232557fe5b040261276c565b9b508660018403028b019a5060018a01995060018a0360020a630faf788602965061235a8b6002028861276c565b95508660020261237c6123768e8a6008020260028a0a016128bd565b8861276c565b81151561238557fe5b0490508285019450828401935080925061239e8a612908565b91506122fb565b82840193508660018403028b019a506001151589151514156123d0578a600381905550896004819055505b83975050505050505050949350505050565b60008082840190508381101515156123f657fe5b8091505092915050565b600080600080600080600554600354029550606488029450600093505b60058410156126f357600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548602915085600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402905060008373ffffffffffffffffffffffffffffffffffffffff161415801561254057506802b5e3af16b18800008210155b801561256f5750670de0b6b3a764000060118581548110151561255f57fe5b9060005260206000200154028110155b156126e657600a606460108681548110151561258757fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a02028115156125b657fe5b04600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508296508273ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a606460108881548110151561265157fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168c020281151561268057fe5b0486604051808381526020018281526020019250505060405180910390a2600a60646010868154811015156126b157fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a02028115156126e057fe5b04850394505b838060010194505061241d565b8460096000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050505050505050565b600082821115151561277a57fe5b818303905092915050565b600080600080600080600080600080600b5498506000975060045496506127ae60018803612908565b955060035494506001870360020a630faf78860293505b858c8a03101561285657858903925060008314156127fc576001890398506001870396506127f560018803612908565b95506127c5565b83600184030291508185039050828c039b5081816002020160028481151561282057fe5b04028801975080945082890398506001870396506001870360020a630faf788602935061284f60018803612908565b95506127c5565b60008c111561288f578360018d0302850390508360018d0302816002020160028d81151561288057fe5b0402880197508b890398508094505b600115158b151514156128ab5786600481905550846003819055505b87995050505050505050505092915050565b6000806002600184018115156128cf57fe5b0490508291505b818110156129025780915060028182858115156128ef57fe5b04018115156128fa57fe5b0490506128d6565b50919050565b6000600582111515612920578161ea600290506129a3565b6005821180156129315750600a8211155b1561294a5761c3506005830302620493e00190506129a3565b600a8211801561295b5750600f8211155b1561297457619c40600a830302620864700190506129a3565b600f82118015612985575060148211155b1561299e57617530600f830302620b71b00190506129a3565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129e957805160ff1916838001178555612a17565b82800160010185558215612a17579182015b82811115612a165782518255916020019190600101906129fb565b5b509050612a249190612a28565b5090565b612a4a91905b80821115612a46576000816000905550600101612a2e565b5090565b905600a165627a7a7230582030025a6a476084c4a094a453822cb957fc91d32369c03775e1b8b793eee535c60029

Deployed Bytecode

0x6080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101c55780630c9a49f01461025557806310d0ffdd146102ac5780631732f7cf146102ed57806318160ddd146103045780631d62ebd91461032f57806322609373146103865780632b68b9c6146103c75780632e926d49146103de578063313ce56714610409578063324536eb1461043a5780633319544c146104655780635001f3b51461049c5780636b2f4632146104c757806370a08231146104f257806370ba1113146105495780637824407f146105745780638620410b1461059f578063949e8acd146105ca57806395d89b41146105f55780639b5aaebf14610685578063a9059cbb14610708578063a90ffbe31461076d578063b84c824614610784578063ba1b37f2146107ed578063c47f00271461080f578063c7876ea414610878578063c7b8981c146108a3578063d5afbee4146108ce578063da51cc85146108f9578063de4b326214610a32578063e4849b3214610a77578063f088d54714610aa4578063f531497c14610aee578063f71e41a514610b31575b6101c2346000610b88565b50005b3480156101d157600080fd5b506101da610d7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026157600080fd5b50610296600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e1d565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102d760048036038101908080359060200190929190505050610e35565b6040518082815260200191505060405180910390f35b3480156102f957600080fd5b50610302610e71565b005b34801561031057600080fd5b50610319610eec565b6040518082815260200191505060405180910390f35b34801561033b57600080fd5b50610370600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef6565b6040518082815260200191505060405180910390f35b34801561039257600080fd5b506103b160048036038101908080359060200190929190505050610f3f565b6040518082815260200191505060405180910390f35b3480156103d357600080fd5b506103dc610f8f565b005b3480156103ea57600080fd5b506103f3611027565b6040518082815260200191505060405180910390f35b34801561041557600080fd5b5061041e61102d565b604051808260ff1660ff16815260200191505060405180910390f35b34801561044657600080fd5b5061044f611032565b6040518082815260200191505060405180910390f35b34801561047157600080fd5b5061049a6004803603810190808035906020019092919080359060200190929190505050611038565b005b3480156104a857600080fd5b506104b16110a8565b6040518082815260200191505060405180910390f35b3480156104d357600080fd5b506104dc6110ae565b6040518082815260200191505060405180910390f35b3480156104fe57600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110cd565b6040518082815260200191505060405180910390f35b34801561055557600080fd5b5061055e611116565b6040518082815260200191505060405180910390f35b34801561058057600080fd5b5061058961111c565b6040518082815260200191505060405180910390f35b3480156105ab57600080fd5b506105b4611126565b6040518082815260200191505060405180910390f35b3480156105d657600080fd5b506105df611130565b6040518082815260200191505060405180910390f35b34801561060157600080fd5b5061060a611145565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561064a57808201518184015260208101905061062f565b50505050905090810190601f1680156106775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561069157600080fd5b506106c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561071457600080fd5b50610753600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611216565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b50610782611402565b005b34801561079057600080fd5b506107eb600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061147d565b005b6107f56114f5565b604051808215151515815260200191505060405180910390f35b34801561081b57600080fd5b50610876600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506114fe565b005b34801561088457600080fd5b5061088d611576565b6040518082815260200191505060405180910390f35b3480156108af57600080fd5b506108b861157c565b6040518082815260200191505060405180910390f35b3480156108da57600080fd5b506108e36117b2565b6040518082815260200191505060405180910390f35b34801561090557600080fd5b50610a3060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001909291905050506117b8565b005b348015610a3e57600080fd5b50610a5d60048036038101908080359060200190929190505050611ba6565b604051808215151515815260200191505060405180910390f35b348015610a8357600080fd5b50610aa260048036038101908080359060200190929190505050611c11565b005b610ad8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fc1565b6040518082815260200191505060405180910390f35b348015610afa57600080fd5b50610b2f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061212b565b005b348015610b3d57600080fd5b50610b72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612247565b6040518082815260200191505060405180910390f35b6000806000339150610ba1856003546004546001612290565b9050600081118015610bbf5750600b54610bbd82600b546123e2565b115b1515610bca57600080fd5b610bd6600b54826123e2565b600b8190555060075460025401610bef82600b546123e2565b101515610bfb57600080fd5b610c1961271060c8600654038302811515610c1257fe5b0483612400565b610c34816127106006548402811515610c2e57fe5b0461276c565b905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610ccc600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826123e2565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3809250505092915050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e155780601f10610dea57610100808354040283529160200191610e15565b820191906000526020600020905b815481529060010190602001808311610df857829003601f168201915b505050505081565b600e6020528060005260406000206000915090505481565b600080610e49836003546004546000612290565b9050610e66816127106006548402811515610e6057fe5b0461276c565b905080915050919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610ece57600080fd5b6000601460006101000a81548160ff02191690831515021790555050565b6000600254905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000600b548411151515610f5557600080fd5b6127106006548502811515610f6657fe5b049150610f76846001840361276c565b9350610f83846000612785565b90508092505050919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610fec57600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60035481565b600081565b60025481565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561109557600080fd5b8260038190555081600481905550505050565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6000600b54905090565b6000600354905090565b60008033905061113f816110cd565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111db5780601f106111b0576101008083540402835291602001916111db565b820191906000526020600020905b8154815290600101906020018083116111be57829003601f168201915b505050505081565b600d6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561127657600080fd5b3391506112c2600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561276c565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061134e600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856123e2565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561145f57600080fd5b6001601460006101000a81548160ff02191690831515021790555050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114da57600080fd5b81600190805190602001906114f09291906129a8565b505050565b60006001905090565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561155b57600080fd5b81600090805190602001906115719291906129a8565b505050565b60055481565b600080600080339250601460019054906101000a900460ff161515156115a157600080fd5b601254600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156115f057600080fd5b6001601460016101000a81548160ff0219169083151502179055506064600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481151561165657fe5b04915060648202600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a361172982612710600654850281151561172357fe5b0461276c565b9150611736826001612785565b9050611744600b548361276c565b600b819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611790573d6000803e3d6000fd5b506000601460016101000a81548160ff02191690831515021790555050505090565b60075481565b600080339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561181657600080fd5b6001831415611aca57600091505b8651821015611ac957858281518110151561183b57fe5b9060200190602002015160086000898581518110151561185757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085828151811015156118b657fe5b90602001906020020151600b6000828254019250508190555083828151811015156118dd57fe5b90602001906020020151600d600089858151811015156118f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848281518110151561198957fe5b906020019060200201516009600089858151811015156119a557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060648583815181101515611a0657fe5b90602001906020020151811515611a1957fe5b04600b600082825401925050819055508682815181101515611a3757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8885815181101515611a9d57fe5b906020019060200201516040518082815260200191505060405180910390a38180600101925050611824565b5b6002831415611b9d57600091505b8651821015611b9c578582815181101515611aef57fe5b90602001906020020151600960008985815181101515611b0b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060648683815181101515611b6c57fe5b90602001906020020151811515611b7f57fe5b04600b600082825401925050819055508180600101925050611ad8565b5b50505050505050565b600080339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c0457600080fd5b8260058190555050919050565b600080600080600080611c22611130565b111515611c2e57600080fd5b601460019054906101000a900460ff16151515611c4a57600080fd5b6001601460016101000a81548160ff021916908315150217905550339450600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515611cb657600080fd5b8593506127106006548502811515611cca57fe5b04925061271060c8600654038502811515611ce157fe5b04915061271060c88502811515611cf457fe5b0460086000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611d6d848461276c565b9350611d7a846001612785565b9050611d88600b548561276c565b600b81905550611dd7600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761276c565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082118015611e365750601460009054906101000a900460ff165b15611e4657611e458286612400565b5b85600e6000600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f38573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a36000601460016101000a81548160ff021916908315150217905550505050505050565b60008173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561209c57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061211b565b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6121253483610b88565b50919050565b6000339050600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561218857600080fd5b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008060008060008060018a0360020a630faf78860296506122b88b6002028861276c565b9550600b54945060009350866002026122e36122dd8e8a6008020260028a0a016128bd565b8861276c565b8115156122ec57fe5b0492506122f88a612908565b91505b8185840111156123a557848203925061232c8c8860018603028d6002020160028681151561232557fe5b040261276c565b9b508660018403028b019a5060018a01995060018a0360020a630faf788602965061235a8b6002028861276c565b95508660020261237c6123768e8a6008020260028a0a016128bd565b8861276c565b81151561238557fe5b0490508285019450828401935080925061239e8a612908565b91506122fb565b82840193508660018403028b019a506001151589151514156123d0578a600381905550896004819055505b83975050505050505050949350505050565b60008082840190508381101515156123f657fe5b8091505092915050565b600080600080600080600554600354029550606488029450600093505b60058410156126f357600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548602915085600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402905060008373ffffffffffffffffffffffffffffffffffffffff161415801561254057506802b5e3af16b18800008210155b801561256f5750670de0b6b3a764000060118581548110151561255f57fe5b9060005260206000200154028110155b156126e657600a606460108681548110151561258757fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a02028115156125b657fe5b04600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508296508273ffffffffffffffffffffffffffffffffffffffff167f02a6a2be713fedf52f113c0a759f1c1a23a113476d9b1b1a2a453c910660de4e600a606460108881548110151561265157fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168c020281151561268057fe5b0486604051808381526020018281526020019250505060405180910390a2600a60646010868154811015156126b157fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff168a02028115156126e057fe5b04850394505b838060010194505061241d565b8460096000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050505050505050565b600082821115151561277a57fe5b818303905092915050565b600080600080600080600080600080600b5498506000975060045496506127ae60018803612908565b955060035494506001870360020a630faf78860293505b858c8a03101561285657858903925060008314156127fc576001890398506001870396506127f560018803612908565b95506127c5565b83600184030291508185039050828c039b5081816002020160028481151561282057fe5b04028801975080945082890398506001870396506001870360020a630faf788602935061284f60018803612908565b95506127c5565b60008c111561288f578360018d0302850390508360018d0302816002020160028d81151561288057fe5b0402880197508b890398508094505b600115158b151514156128ab5786600481905550846003819055505b87995050505050505050505092915050565b6000806002600184018115156128cf57fe5b0490508291505b818110156129025780915060028182858115156128ef57fe5b04018115156128fa57fe5b0490506128d6565b50919050565b6000600582111515612920578161ea600290506129a3565b6005821180156129315750600a8211155b1561294a5761c3506005830302620493e00190506129a3565b600a8211801561295b5750600f8211155b1561297457619c40600a830302620864700190506129a3565b600f82118015612985575060148211155b1561299e57617530600f830302620b71b00190506129a3565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129e957805160ff1916838001178555612a17565b82800160010185558215612a17579182015b82811115612a165782518255916020019190600101906129fb565b5b509050612a249190612a28565b5090565b612a4a91905b80821115612a46576000816000905550600101612a2e565b5090565b905600a165627a7a7230582030025a6a476084c4a094a453822cb957fc91d32369c03775e1b8b793eee535c60029

Deployed Bytecode Sourcemap

28:16723:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5852:30;5867:9;5878:3;5852:14;:30::i;:::-;;28:16723;819:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;819:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;819:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1646:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1646:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10404:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10404:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3227:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3227:109:0;;;;;;8805:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8805:122:0;;;;;;;;;;;;;;;;;;;;;;;7210:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7210:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9782:401;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9782:401:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8095:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8095:87:0;;;;;;1118:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1118:74:0;;;;;;;;;;;;;;;;;;;;;;;900:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;900:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;941:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;941:36:0;;;;;;;;;;;;;;;;;;;;;;;3348:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3348:173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1199:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1199:23:0;;;;;;;;;;;;;;;;;;;;;;;8657:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8657:137:0;;;;;;;;;;;;;;;;;;;;;;;9400:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9400:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:26:0;;;;;;;;;;;;;;;;;;;;;;;8938:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8938:110:0;;;;;;;;;;;;;;;;;;;;;;;9651:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9651:120:0;;;;;;;;;;;;;;;;;;;;;;;9126:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9126:182:0;;;;;;;;;;;;;;;;;;;;;;;865:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;865:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;865:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1597:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1597:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7527:557;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7527:557:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3106:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3106:109:0;;;;;;8316:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8316:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3004:90;;;;;;;;;;;;;;;;;;;;;;;;;;;8193:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8193:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1229:30:0;;;;;;;;;;;;;;;;;;;;;;;3532:730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3532:730:0;;;;;;;;;;;;;;;;;;;;;;;1299:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1299:38:0;;;;;;;;;;;;;;;;;;;;;;;2065:929;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2065:929:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5294:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5294:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5963:1236;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5963:1236:0;;;;;;;;;;;;;;;;;;;;;;;;;;5436:345;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8444:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8444:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7369:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7369:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10767:1089;10874:7;10922:24;10970:23;10949:10;10922:37;;10996:64;11014:17;11034:13;;11049:4;;11055;10996:17;:64::i;:::-;10970:90;;11097:1;11079:15;:19;:82;;;;;11148:12;;11103:42;11116:15;11132:12;;11103;:42::i;:::-;:57;11079:82;11071:91;;;;;;;;11188:43;11201:12;;11215:15;11188:12;:43::i;:::-;11173:12;:58;;;;11309:13;;11296:12;;:26;11250:42;11263:15;11279:12;;11250;:42::i;:::-;:73;11242:82;;;;;;;;11379:73;11429:5;11424:3;11416:7;;:11;11397:15;:31;:37;;;;;;;;11435:16;11379:17;:73::i;:::-;11481:62;11494:15;11537:5;11529:7;;11511:15;:25;:31;;;;;;;;11481:12;:62::i;:::-;11463:80;;11584:15;11554:14;:27;11569:11;11554:27;;;;;;;;;;;;;;;;:45;;;;;;;;;;;11650:68;11663:19;:37;11683:16;11663:37;;;;;;;;;;;;;;;;11702:15;11650:12;:68::i;:::-;11610:19;:37;11630:16;11610:37;;;;;;;;;;;;;;;:108;;;;11781:16;11757:58;;11774:4;11757:58;;;11799:15;11757:58;;;;;;;;;;;;;;;;;;11833:15;11826:22;;10767:1089;;;;;;:::o;819:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1646:49::-;;;;;;;;;;;;;;;;;:::o;10404:352::-;10510:7;10535:23;10561:63;10579:16;10597:13;;10612:4;;10618:5;10561:17;:63::i;:::-;10535:89;;10653:62;10666:15;10709:5;10701:7;;10683:15;:25;:31;;;;;;;;10653:12;:62::i;:::-;10635:80;;10733:15;10726:22;;10404:352;;;;:::o;3227:109::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;3323:5;3302:18;;:26;;;;;;;;;;;;;;;;;;3227:109;:::o;8805:122::-;8875:7;8907:12;;8900:19;;8805:122;:::o;7210:148::-;7284:7;7316:20;:30;7337:8;7316:30;;;;;;;;;;;;;;;;7309:37;;7210:148;;;:::o;9782:401::-;9887:7;9961:16;10090:17;9937:12;;9920:13;:29;;9912:38;;;;;;;;10006:5;9996:7;;9980:13;:23;:31;;;;;;;;9961:50;;10038:41;10051:13;10076:1;10067:8;:10;10038:12;:41::i;:::-;10022:57;;10110:38;10128:13;10142:5;10110:17;:38::i;:::-;10090:58;;10166:9;10159:16;;9782:401;;;;;:::o;8095:87::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;8165:8;;;;;;;;;;;8152:22;;;1118:74;;;;:::o;900:34::-;933:1;900:34;:::o;941:36::-;;;;:::o;3348:173::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;3478:13;3462;:29;;;;3509:4;3502;:11;;;;3348:173;;;:::o;1199:23::-;;;;:::o;8657:137::-;8736:4;8773;8765:21;;;8758:28;;8657:137;:::o;9400:169::-;9492:7;9524:19;:37;9544:16;9524:37;;;;;;;;;;;;;;;;9517:44;;9400:169;;;:::o;1266:26::-;;;;:::o;8938:110::-;8996:7;9028:12;;9021:19;;8938:110;:::o;9651:120::-;9718:7;9750:13;;9743:20;;9651:120;:::o;9126:182::-;9193:7;9218:24;9245:10;9218:37;;9273:27;9283:16;9273:9;:27::i;:::-;9266:34;;9126:182;;:::o;865:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1597:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7527:557::-;7652:4;7692:24;214;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;7719:10;7692:37;;7808:68;7821:19;:37;7841:16;7821:37;;;;;;;;;;;;;;;;7860:15;7808:12;:68::i;:::-;7768:19;:37;7788:16;7768:37;;;;;;;;;;;;;;;:108;;;;7921:62;7934:19;:31;7954:10;7934:31;;;;;;;;;;;;;;;;7967:15;7921:12;:62::i;:::-;7887:19;:31;7907:10;7887:31;;;;;;;;;;;;;;;:96;;;;8026:10;7999:55;;8008:16;7999:55;;;8038:15;7999:55;;;;;;;;;;;;;;;;;;8072:4;8065:11;;7527:557;;;;;;:::o;3106:109::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;3203:4;3182:18;;:25;;;;;;;;;;;;;;;;;;3106:109;:::o;8316:120::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;8421:7;8412:6;:16;;;;;;;;;;;;:::i;:::-;;8316:120;;:::o;3004:90::-;3053:4;3082;3075:11;;3004:90;:::o;8193:112::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;8292:5;8285:4;:12;;;;;;;;;;;;:::i;:::-;;8193:112;;:::o;1229:30::-;;;;:::o;3532:730::-;3574:7;3599:24;3786:16;4059:17;3626:10;3599:37;;3656:15;;;;;;;;;;;3655:16;3647:25;;;;;;;;3730:11;;3691:20;:38;3712:16;3691:38;;;;;;;;;;;;;;;;:50;3683:59;;;;;;;;3771:4;3753:15;;:22;;;;;;;;;;;;;;;;;;3844:3;3805:20;:38;3826:16;3805:38;;;;;;;;;;;;;;;;:42;;;;;;;;3786:61;;3909:3;3900:8;:12;3858:20;:38;3879:16;3858:38;;;;;;;;;;;;;;;;:54;;;;;;;;;;;3963:4;3928:50;;3937:16;3928:50;;;3969:8;3928:50;;;;;;;;;;;;;;;;;;4000:48;4013:8;4041:5;4033:7;;4024:8;:16;:22;;;;;;;;4000:12;:48::i;:::-;3989:59;;4079:32;4097:8;4106:4;4079:17;:32::i;:::-;4059:52;;4137:36;4150:12;;4164:8;4137:12;:36::i;:::-;4122:12;:51;;;;4184:16;:25;;:36;4210:9;4184:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4184:36:0;4249:5;4231:15;;:23;;;;;;;;;;;;;;;;;;3532:730;;;;:::o;1299:38::-;;;;:::o;2065:929::-;2286:6;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;2255:1;2243:8;:13;2240:506;;;2295:1;2286:10;;2282:453;2300:6;:13;2298:1;:15;2282:453;;;2385:9;2395:1;2385:12;;;;;;;;;;;;;;;;;;2351:19;:30;2371:6;2378:1;2371:9;;;;;;;;;;;;;;;;;;2351:30;;;;;;;;;;;;;;;;:46;;;;;;;;;;;2432:9;2442:1;2432:12;;;;;;;;;;;;;;;;;;2416;;:28;;;;;;;;;;;2484:11;2496:1;2484:14;;;;;;;;;;;;;;;;;;2463:7;:18;2471:6;2478:1;2471:9;;;;;;;;;;;;;;;;;;2463:18;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;2570:8;2579:1;2570:11;;;;;;;;;;;;;;;;;;2535:20;:31;2556:6;2563:1;2556:9;;;;;;;;;;;;;;;;;;2535:31;;;;;;;;;;;;;;;;:46;;;;;;;;;;;2628:3;2616:8;2625:1;2616:11;;;;;;;;;;;;;;;;;;:15;;;;;;;;2600:12;;:31;;;;;;;;;;;2696:6;2703:1;2696:9;;;;;;;;;;;;;;;;;;2673:46;;2690:4;2673:46;;;2706:9;2716:1;2706:12;;;;;;;;;;;;;;;;;;2673:46;;;;;;;;;;;;;;;;;;2314:3;;;;;;;2282:453;;;2240:506;2771:1;2759:8;:13;2756:231;;;2806:1;2802:5;;2798:178;2811:6;:13;2809:1;:15;2798:178;;;2897:9;2907:1;2897:12;;;;;;;;;;;;;;;;;;2862:20;:31;2883:6;2890:1;2883:9;;;;;;;;;;;;;;;;;;2862:31;;;;;;;;;;;;;;;;:47;;;;;;;;;;;2957:3;2944:9;2954:1;2944:12;;;;;;;;;;;;;;;;;;:16;;;;;;;;2928:12;;:32;;;;;;;;;;;2825:3;;;;;;;2798:178;;;2756:231;2065:929;;;;;;;:::o;5294:131::-;5382:4;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;5411:6;5399:9;:18;;;;5294:131;;;;:::o;5963:1236::-;6152:24;6276:15;6320:16;6375:18;6559:17;147:1;134:10;:8;:10::i;:::-;:14;126:23;;;;;;;;6069:15;;;;;;;;;;;6068:16;6060:25;;;;;;;;6137:4;6119:15;;:22;;;;;;;;;;;;;;;;;;6179:10;6152:37;;6227:19;:37;6247:16;6227:37;;;;;;;;;;;;;;;;6208:15;:56;;6200:65;;;;;;;;6294:15;6276:33;;6359:5;6349:7;;6339;:17;:25;;;;;;;;6320:44;;6420:5;6415:3;6407:7;;:11;6396:7;:23;:29;;;;;;;;6375:50;;6491:5;6486:3;6478:7;:11;6477:19;;;;;;;;6436;:37;6456:16;;;;;;;;;;;6436:37;;;;;;;;;;;;;;;;:60;;;;;;;;;;;6517:31;6530:7;6539:8;6517:12;:31::i;:::-;6507:41;;6579:31;6597:7;6605:4;6579:17;:31::i;:::-;6559:51;;6669:35;6682:12;;6696:7;6669:12;:35::i;:::-;6654:12;:50;;;;6755:68;6768:19;:37;6788:16;6768:37;;;;;;;;;;;;;;;;6807:15;6755:12;:68::i;:::-;6715:19;:37;6735:16;6715:37;;;;;;;;;;;;;;;:108;;;;6850:1;6837:10;:14;:36;;;;;6855:18;;;;;;;;;;;6837:36;6834:123;;;6899:46;6917:10;6928:16;6899:17;:46::i;:::-;6834:123;7011:15;6967:14;:41;6982:7;:25;6990:16;6982:25;;;;;;;;;;;;;;;;;;;;;;;;;6967:41;;;;;;;;;;;;;;;;:59;;;;;;;;;;;7047:16;:25;;:36;7073:9;7047:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7047:36:0;7134:4;7099:58;;7108:16;7099:58;;;7141:15;7099:58;;;;;;;;;;;;;;;;;;7186:5;7168:15;;:23;;;;;;;;;;;;;;;;;;5963:1236;;;;;;:::o;5436:345::-;5520:7;5562:11;5548:25;;:10;:25;;;5545:180;;;5621:8;;;;;;;;;;;5599:7;:19;5607:10;5599:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5545:180;;;5702:11;5680:7;:19;5688:10;5680:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;5545:180;5735:38;5750:9;5761:11;5735:14;:38::i;:::-;;5436:345;;;:::o;8444:205::-;214:24;241:10;214:37;;270:14;:32;285:16;270:32;;;;;;;;;;;;;;;;;;;;;;;;;262:41;;;;;;;;8574:17;8555:16;;:36;;;;;;;;;;;;;;;;;;8637:4;8602:14;:32;8617:16;;;;;;;;;;;8602:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8444:205;;:::o;7369:147::-;7448:7;7480:14;:24;7495:8;7480:24;;;;;;;;;;;;;;;;7473:31;;7369:147;;;:::o;11867:2399::-;12010:7;12035:30;12117:15;12201:20;12247;12282:23;12659:16;13329:27;12102:1;12097:4;:6;12093:1;:11;1102:9;12069:36;12035:71;;12135:55;12151:13;12149:1;:15;12167:22;12135:12;:55::i;:::-;12117:73;;12224:12;;12201:35;;12270:1;12247:24;;12614:22;12612:1;:24;12342:253;12378:166;12507:9;12484:22;12482:1;:24;:34;12448:1;12439:7;:10;:78;12378:4;:166::i;:::-;12569:7;12342:12;:253::i;:::-;12323:314;;;;;;;;12282:366;;12678:17;12690:4;12678:11;:17::i;:::-;12659:36;;12706:1264;12747:8;12731:12;12713:15;:30;12712:43;12706:1264;;;12800:12;12789:8;:23;12771:41;;12839:196;12870:9;12996:22;12975:1;12959:15;:17;12958:60;12942:13;12940:1;:15;12939:80;12917:1;12900:15;12899:19;;;;;;;;12898:122;12839:12;:196::i;:::-;12827:208;;13101:22;13098:1;13082:15;:17;13081:42;13066:13;:58;13050:74;;13153:1;13146:4;:8;13139:15;;13230:1;13225:4;:6;13220:1;13219:13;1102:9;13195:38;13169:65;;13259:55;13275:13;13273:1;:15;13291:22;13259:12;:55::i;:::-;13249:65;;13705:22;13703:1;:24;13401:281;13441:182;13582:9;13559:22;13557:1;:24;:34;13519:1;13510:7;:10;:82;13441:4;:182::i;:::-;13652:7;13401:12;:281::i;:::-;13378:350;;;;;;;;13329:414;;13788:15;13773:12;:30;13758:45;;13848:15;13833:12;:30;13818:45;;13896:19;13878:37;;13941:17;13953:4;13941:11;:17::i;:::-;13930:28;;12706:1264;;;14010:15;13995:12;:30;13980:45;;14087:22;14084:1;14068:15;:17;14067:42;14052:13;:58;14036:74;;14132:4;14124:12;;:4;:12;;;14121:108;;;14178:13;14162;:29;;;;14213:4;14206;:11;;;;14121:108;14246:12;14239:19;;11867:2399;;;;;;;;;;;;;:::o;17863:147::-;17921:7;17941:9;17957:1;17953;:5;17941:17;;17981:1;17976;:6;;17969:14;;;;;;18001:1;17994:8;;17863:147;;;;;:::o;4273:1011::-;4384:21;4442:31;4514:6;4558:16;4616:13;4690:22;4422:9;;4408:13;;:23;4384:47;;4496:3;4476:19;:23;4442:57;;4521:1;4514:8;;4510:691;4526:1;4524;:3;4510:691;;;4577:7;:24;4585:15;4577:24;;;;;;;;;;;;;;;;;;;;;;;;;4558:43;;4646:19;:29;4666:8;4646:29;;;;;;;;;;;;;;;;4632:13;:43;4616:59;;4740:13;4715:14;:24;4730:8;4715:24;;;;;;;;;;;;;;;;:38;4690:63;;4783:3;4771:8;:15;;;;:39;;;;;4800:9;4790:5;:20;;4771:39;:81;;;;;4845:6;4833:8;4842:1;4833:11;;;;;;;;;;;;;;;;;;:18;4814:14;:38;;4771:81;4768:422;;;4958:2;4953:3;4941:8;4950:1;4941:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4921:31;;:19;:31;:35;4920:40;;;;;;;;4886:20;:30;4907:8;4886:30;;;;;;;;;;;;;;;;:74;;;;;;;;;;;4997:8;4979:26;;5036:8;5029:59;;;5083:2;5078:3;5066:8;5075:1;5066:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5046:31;;:19;:31;:35;5045:40;;;;;;;;5086:1;5029:59;;;;;;;;;;;;;;;;;;;;;;;;5172:2;5167:3;5155:8;5164:1;5155:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5135:31;;:19;:31;:35;5134:40;;;;;;;;5107:67;;;;4768:422;4529:3;;;;;;;4510:691;;;5253:23;5211:20;:38;5232:16;;;;;;;;;;;5211:38;;;;;;;;;;;;;;;;:65;;;;;;;;;;;4273:1011;;;;;;;;:::o;17665:123::-;17723:7;17755:1;17750;:6;;17743:14;;;;;;17779:1;17775;:5;17768:12;;17665:123;;;;:::o;14807:1727::-;14912:7;14937:20;14983:22;15020:12;15050:16;15099:21;15147:30;15298:20;15578:9;15646;14960:12;;14937:35;;15008:1;14983:26;;15035:4;;15020:19;;15069;15086:1;15081:4;:6;15069:11;:19::i;:::-;15050:38;;15123:13;;15099:37;;15216:1;15211:4;:6;15206:1;15205:13;1102:9;15181:38;15147:73;;15231:823;15264:8;15253:7;15238:12;:22;15237:35;15231:823;;;15336:8;15321:12;:23;15298:46;;15378:1;15362:12;:17;15359:205;;;15443:1;15428:12;:16;15413:31;;15471:1;15463:9;;;;15502:19;15519:1;15514:4;:6;15502:11;:19::i;:::-;15491:30;;15540:8;;15359:205;15608:22;15605:1;15592:12;:14;15591:39;15578:53;;15674:1;15658:13;:17;15646:29;;15710:12;15700:7;:22;15690:32;;15796:1;15793;15791;:3;15790:7;15786:1;15773:12;:14;;;;;;;;15772:26;15754:14;:45;15737:62;;15830:1;15814:17;;15876:12;15861;:27;15846:42;;15915:1;15910:4;:6;15903:13;;15993:1;15988:4;:6;15983:1;15982:13;1102:9;15958:38;15932:65;;16023:19;16040:1;16035:4;:6;16023:11;:19::i;:::-;16012:30;;15231:823;;;16077:1;16067:7;:11;16064:303;;;16138:22;16135:1;16127:7;:9;16126:34;16109:13;:52;16105:56;;16244:22;16241:1;16233:7;:9;16232:34;16228:1;16226;:3;16225:42;16221:1;16213:7;:9;;;;;;;;16212:56;16194:14;:75;16177:92;;16315:7;16300:12;:22;16285:37;;16354:1;16338:17;;16064:303;16398:4;16389:13;;:5;:13;;;16386:109;;;16435:4;16428;:11;;;;16470:13;16454;:29;;;;16386:109;16512:14;16505:21;;14807:1727;;;;;;;;;;;;;:::o;16550:198::-;16595:6;16614;16633:1;16628;16624;:5;16623:11;;;;;;;;16614:20;;16649:1;16645:5;;16661:80;16672:1;16668;:5;16661:80;;;16694:1;16690:5;;16728:1;16723;16719;16715;:5;;;;;;;;:9;16714:15;;;;;;;;16710:19;;16661:80;;;16550:198;;;;:::o;14277:518::-;14349:7;14385:1;14377:4;:9;;14374:71;;;14428:4;14420:5;:12;14412:21;;;;14374:71;14465:1;14458:4;:8;:22;;;;;14478:2;14470:4;:10;;14458:22;14455:97;;;14533:5;14530:1;14525:4;:6;14524:14;14514:6;:25;14506:34;;;;14455:97;14572:2;14565:4;:9;:23;;;;;14586:2;14578:4;:10;;14565:23;14562:99;;;14642:5;14638:2;14633:4;:7;14632:15;14622:6;:26;14614:35;;;;14562:99;14681:2;14674:4;:9;:23;;;;;14695:2;14687:4;:10;;14674:23;14671:98;;;14750:5;14746:2;14741:4;:7;14740:15;14731:6;:25;14723:34;;;;14671:98;14786:1;14779:8;;14277:518;;;;:::o;28:16723::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://30025a6a476084c4a094a453822cb957fc91d32369c03775e1b8b793eee535c6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.