ETH Price: $3,068.52 (-3.85%)

Contract

0x9921b4986d91F150f1536253aC5f661FEE1b923e
 
Transaction Hash
Method
Block
From
To
Exit120048432021-03-09 14:34:481346 days ago1615300488IN
Fake_Phishing284873
0 ETH0.00771694111
Sell120046482021-03-09 13:48:461346 days ago1615297726IN
Fake_Phishing284873
0 ETH0.0049439130
Exit116627972021-01-15 23:44:121398 days ago1610754252IN
Fake_Phishing284873
0 ETH0.0047388271
Withdraw116627882021-01-15 23:43:221398 days ago1610754202IN
Fake_Phishing284873
0 ETH0.0030317152.53
Withdraw116627822021-01-15 23:41:591398 days ago1610754119IN
Fake_Phishing284873
0 ETH0.00251742101
Withdraw113391522020-11-27 7:15:281448 days ago1606461328IN
Fake_Phishing284873
0 ETH0.002466536
Sell113391492020-11-27 7:15:041448 days ago1606461304IN
Fake_Phishing284873
0 ETH0.0019077836
Withdraw112059562020-11-06 20:34:431469 days ago1604694883IN
Fake_Phishing284873
0 ETH0.0011715817.1
Sell112059252020-11-06 20:27:301469 days ago1604694450IN
Fake_Phishing284873
0 ETH0.0009538918
Exit111988112020-11-05 18:21:211470 days ago1604600481IN
Fake_Phishing284873
0 ETH0.0020023230
Exit111987672020-11-05 18:11:051470 days ago1604599865IN
Fake_Phishing284873
0 ETH0.001307916
Withdraw111932252020-11-04 21:44:521471 days ago1604526292IN
Fake_Phishing284873
0 ETH0.0008562216
Sell111932172020-11-04 21:42:461471 days ago1604526166IN
Fake_Phishing284873
0 ETH0.000847916
Withdraw111932102020-11-04 21:40:261471 days ago1604526026IN
Fake_Phishing284873
0 ETH0.0008562216
Withdraw111881242020-11-04 3:01:401471 days ago1604458900IN
Fake_Phishing284873
0 ETH0.0019183928
Exit111617462020-10-31 1:44:091475 days ago1604108649IN
Fake_Phishing284873
0 ETH0.0015351123.00000145
Exit111285502020-10-25 23:22:521480 days ago1603668172IN
Fake_Phishing284873
0 ETH0.0011525914.1
Withdraw111156602020-10-24 0:01:491482 days ago1603497709IN
Fake_Phishing284873
0 ETH0.0011184420.9
Sell111156582020-10-24 0:01:291482 days ago1603497689IN
Fake_Phishing284873
0 ETH0.0011075720.9
Withdraw110964912020-10-21 1:22:301485 days ago1603243350IN
Fake_Phishing284873
0 ETH0.0027292151
Sell110963682020-10-21 0:52:161485 days ago1603241536IN
Fake_Phishing284873
0 ETH0.0023317344
Withdraw110959242020-10-20 23:10:251485 days ago1603235425IN
Fake_Phishing284873
0 ETH0.0018729935
Withdraw110764342020-10-17 23:30:581488 days ago1602977458IN
Fake_Phishing284873
0 ETH0.001267518.5
Sell110764302020-10-17 23:30:371488 days ago1602977437IN
Fake_Phishing284873
0 ETH0.0009806118.5
Withdraw110731392020-10-17 11:21:461489 days ago1602933706IN
Fake_Phishing284873
0 ETH0.0012254722.9
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Link3D

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-27
*/

pragma solidity ^0.5.15;


interface ERC20 {
    function totalSupply() external view returns (uint256 supply);

    function balanceOf(address _owner) external view returns (uint256 balance);

    function transfer(address _to, uint256 _value)
        external
        returns (bool success);

    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) external returns (bool success);

    function approve(address _spender, uint256 _value)
        external
        returns (bool success);

    function allowance(address _owner, address _spender)
        external
        view
        returns (uint256 remaining);

    function decimals() external view returns (uint256 digits);

    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _value
    );
}


contract Link3D {
    /*=================================
  =            MODIFIERS            =
  =================================*/
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }

    // only people with profits
    modifier onlyStronghands() {
        require(myDividends(true) > 0);
        _;
    }

    modifier onlyAdmin() {
        require(msg.sender == administrator);
        _;
    }

    /*==============================
  =            EVENTS            =
  ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );

    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );

    // ERC20
    event Transfer(address indexed from, address indexed to, uint256 tokens);

    /*=====================================
  =            CONFIGURABLES            =
  =====================================*/
    string public name = "Link3D";
    string public symbol = "L3D";
    uint8 public constant decimals = 18;
    uint8 internal constant dividendFee_ = 10; // 10%
    uint8 internal constant sellFee_ = 15; // 15%
    uint256 internal constant baseIncrease = 1e8;
    uint256 internal constant basePrice = 1e11;
    uint256 internal constant tokenPriceInitial_ = 50 * basePrice; // (1*10^11)/10^18 => 0,0000001
    uint256 internal constant tokenPriceIncremental_ = 2 * baseIncrease; // (1*10^10)/10^18 => 0,00000001, 1e10/50 = 2*10e8
    uint256 internal constant magnitude = 2**64;
    address internal constant tokenAddress = address(
        0x514910771AF9Ca656af840dff83E8264EcF986CA  // chainlink token address
    );
    ERC20 internal constant _contract = ERC20(tokenAddress);

    // admin for premine lock
    address internal administrator;
    uint256 public stakingRequirement = 10e18;
    uint256 public releaseTime = 1593295200;

    /*================================
  =            DATASETS            =
  ================================*/
    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_ = 0;
    uint256 internal profitPerShare_;

    /*=======================================
  =            PUBLIC FUNCTIONS            =
  =======================================*/
    /*
     * -- APPLICATION ENTRY POINTS --
     */
    constructor() public {
        administrator = msg.sender;
    }

    /**
     * ERC677 transferandcall support
     */
    function onTokenTransfer(address _sender, uint _value, bytes calldata _data) external {
        // make sure that only chainlink transferandcalls are supported
        require(msg.sender == tokenAddress);

        // convert _data to address
        bytes memory x = _data;
        address _referredBy;

        assembly {
            _referredBy := mload(add(x,20))
        }

        

        purchaseTokens(_value, _referredBy, _sender);
    }

    /**
     * refuse to receive any tokens directly sent
     *
     */
    function() external payable {
        revert();
    }

    function distribute(uint256 amount) external {
        _contract.transferFrom(msg.sender, address(this), amount);
        profitPerShare_ = SafeMath.add(
            profitPerShare_,
            (amount * magnitude) / tokenSupply_
        );
    }

    /**
     * Converts all of caller's dividends to tokens.
     */
    function reinvest() public onlyStronghands() {
        // fetch dividends
        uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code

        // pay out the dividends virtually
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);

        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends, address(0x0), _customerAddress);
        emit onReinvestment(
            _customerAddress,
            _dividends,
            _tokens
        );
    }

    /**
     * Alias of sell() and withdraw().
     */
    function exit() public {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);

        withdraw();
    }

    /**
     * Withdraws all of the callers earnings.
     */
    function withdraw() public onlyStronghands() {
        // setup data
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // get ref. bonus later in the code

        // update dividend tracker
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);

        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        // lambo delivery service
        _contract.transfer(_customerAddress, _dividends);

        // fire event
        emit onWithdraw(
            _customerAddress,
            _dividends
        );
    }

    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens) public onlyBagholders() {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div((_ethereum*sellFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(
            tokenBalanceLedger_[_customerAddress],
            _tokens
        );

        // update dividends tracker
        int256 _updatedPayouts = (int256)(
            profitPerShare_ * _tokens + (_taxedEthereum * magnitude)
        );
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        // dividing by zero is a bad idea
        if (tokenSupply_ > 0) {
            // update the amount of dividends per token
            profitPerShare_ = SafeMath.add(
                profitPerShare_,
                (_dividends * magnitude) / tokenSupply_
            );
        }

        // fire event
        emit onTokenSell(
            _customerAddress,
            _tokens,
            _taxedEthereum
        );
    }

    /**
     * Transfers tokens to another wallet.
     * There is no transfer fee.
     */
    function transfer(address _toAddress, uint256 _amountOfTokens)
        public
        onlyBagholders()
        returns (bool)
    {
        // setup
        address _customerAddress = msg.sender;

        // make sure we have the requested tokens
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        // withdraw all outstanding dividends first
        if (myDividends(true) > 0) withdraw();

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(
            tokenBalanceLedger_[_customerAddress],
            _amountOfTokens
        );
        tokenBalanceLedger_[_toAddress] = SafeMath.add(
            tokenBalanceLedger_[_toAddress],
            _amountOfTokens
        );

        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256)(
            profitPerShare_ * _amountOfTokens
        );
        payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _amountOfTokens);

        // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);

        // ERC20
        return true;
    }

    /*----------  HELPERS AND CALCULATORS  ----------*/
    /**
     * Method to view the current Chainlink stored in the contract
     * Example: totalLinkBalance()
     */
    function totalLinkBalance() public view returns (uint256) {
        return _contract.balanceOf(address(this));
    }

    /**
     * Retrieve the total token supply.
     */
    function totalSupply() 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 dividends owned by the caller.
     * If `_includeReferralBonus` is to to 1/true, the referral bonus will be included in the calculations.
     * The reason for this, is that in the frontend, we will want to get the total divs (global + ref)
     * But in the internal calculations, we want them separate.
     */
    function myDividends(bool _includeReferralBonus)
        public
        view
        returns (uint256)
    {
        address _customerAddress = msg.sender;
        return
            _includeReferralBonus
                ? dividendsOf(_customerAddress) +
                    referralBalance_[_customerAddress]
                : dividendsOf(_customerAddress);
    }

    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    /**
     * Retrieve the referral balance of any single address.
     */
    function getReferralBalance(address _customerAddress) public view returns (uint256) {
        return referralBalance_[_customerAddress];
    }

    /**
     * Retrieve the dividend balance of any single address.
     */
    function dividendsOf(address _customerAddress)
        public
        view
        returns (uint256)
    {
        return
            (uint256)(
                (int256)(
                    profitPerShare_ * tokenBalanceLedger_[_customerAddress]
                ) - payoutsTo_[_customerAddress]
            ) / magnitude;
    }

    /**
     * Return the sell price of 1 individual token.
     */
    function sellPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div((_ethereum*sellFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }

    /**
     * Return the buy price of 1 individual token.
     */
    function buyPrice() public view returns (uint256) {
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }

    /**
     * Function for the frontend to dynamically retrieve the price scaling of buy orders.
     */
    function calculateTokensReceived(uint256 _ethereumToSpend)
        public
        view
        returns (uint256)
    {
        uint256 _dividends = SafeMath.div(_ethereumToSpend, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    /**
     * Function for the frontend to dynamically retrieve the price scaling of sell orders.
     */
    function calculateEthereumReceived(uint256 _tokensToSell)
        public
        view
        returns (uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div((_ethereum*sellFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }

    /*==========================================
  =            INTERNAL FUNCTIONS            =
  ==========================================*/
    function purchaseTokens(
        uint256 _incomingEthereum,
        address _referredBy,
        address _sender
    ) internal returns (uint256) {
        require((block.timestamp >= releaseTime) || (_sender == administrator));
        // data setup
        address _customerAddress = _sender;
        uint256 _undividedDividends = SafeMath.div(
            _incomingEthereum,
            dividendFee_
        );
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEthereum = SafeMath.sub(
            _incomingEthereum,
            _undividedDividends
        );
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(
            _amountOfTokens > 0 &&
                (SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_)
        );

        // is the user referred by a masternode?
        if (
            // is this a referred purchase?
            _referredBy != 0x0000000000000000000000000000000000000000 &&
            // no cheating!
            _referredBy != _customerAddress &&

            // does the referrer have at least X whole tokens?
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            // wealth redistribution
            referralBalance_[_referredBy] = SafeMath.add(
                referralBalance_[_referredBy],
                _referralBonus
            );
        } else {
            // no ref purchase
            // add the referral bonus back to the global dividends
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

        // we can't give people infinite ethereum
        if (tokenSupply_ > 0) {
            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);

            // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
            profitPerShare_ += ((_dividends * magnitude) / (tokenSupply_));

            // calculate the amount of tokens the customer receives over his purchase
            _fee =
                _fee -
                (_fee -
                    (_amountOfTokens *
                        ((_dividends * magnitude) / (tokenSupply_))));
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }

        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(
            tokenBalanceLedger_[_customerAddress],
            _amountOfTokens
        );

        // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
        //really i know you think you do but you don't
        int256 _updatedPayouts = (int256)(
            (profitPerShare_ * _amountOfTokens) - _fee
        );
        payoutsTo_[_customerAddress] += _updatedPayouts;

        // fire event
        emit onTokenPurchase(
            _customerAddress,
            _incomingEthereum,
            _amountOfTokens,
            _referredBy
        );

        return _amountOfTokens;
    }

    /**
     * Calculate Token price based on an amount of incoming ethereum
     * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function ethereumToTokens_(uint256 _ethereum)
        internal
        view
        returns (uint256)
    {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived = ((
            SafeMath.sub(
                (
                    sqrt(
                        (_tokenPriceInitial**2) +
                            (2 *
                                (tokenPriceIncremental_ * 1e18) *
                                (_ethereum * 1e18)) +
                            (((tokenPriceIncremental_)**2) *
                                (tokenSupply_**2)) +
                            (2 *
                                (tokenPriceIncremental_) *
                                _tokenPriceInitial *
                                tokenSupply_)
                    )
                ),
                _tokenPriceInitial
            )
        ) / (tokenPriceIncremental_)) - (tokenSupply_);

        return _tokensReceived;
    }

    /**
     * Calculate token sell value.
     * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function tokensToEthereum_(uint256 _tokens)
        internal
        view
        returns (uint256)
    {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived = (SafeMath.sub(
            (((tokenPriceInitial_ +
                (tokenPriceIncremental_ * (_tokenSupply / 1e18))) -
                tokenPriceIncremental_) * (tokens_ - 1e18)),
            (tokenPriceIncremental_ * ((tokens_**2 - tokens_) / 1e18)) / 2
        ) / 1e18);
        return _etherReceived;
    }

    //This is where all your gas goes apparently
    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 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;
        require(c / a == b);
        return c;
    }

    /**
     * @dev Integer division of two numbers, truncating the quotient.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        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) {
        require(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;
        require(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethereumReinvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"incomingEthereum","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":true,"internalType":"address","name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"getReferralBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"releaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLinkBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600681526020017f4c696e6b3344000000000000000000000000000000000000000000000000000081525060009080519060200190620000519291906200010e565b506040518060400160405280600381526020017f4c33440000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200010e565b50678ac7230489e80000600355635ef7c1606004556000600855348015620000c657600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001bd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015157805160ff191683800117855562000182565b8280016001018555821562000182579182015b828111156200018157825182559160200191906001019062000164565b5b50905062000191919062000195565b5090565b620001ba91905b80821115620001b65760008160009055506001016200019c565b5090565b90565b611df180620001cd6000396000f3fe60806040526004361061013f5760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb14610652578063b5b86a51146106c5578063b91d40011461072a578063e4849b3214610755578063e9fad8ee14610790578063fdb5a03e146107a75761013f565b806370a082311461041c5780638620410b1461048157806391c05b0b146104ac578063949e8acd146104e757806395d89b4114610512578063a4c0ed36146105a25761013f565b80632e01f949116101085780632e01f94914610302578063313ce5671461032d5780633ccfd60b1461035e5780634b7503341461037557806356d399e8146103a0578063688abbf7146103cb5761013f565b806265318b1461014457806306fdde03146101a957806310d0ffdd1461023957806318160ddd1461028857806322609373146102b3575b600080fd5b34801561015057600080fd5b506101936004803603602081101561016757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107be565b6040518082815260200191505060405180910390f35b3480156101b557600080fd5b506101be61085e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fe5780820151818401526020810190506101e3565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024557600080fd5b506102726004803603602081101561025c57600080fd5b81019080803590602001909291905050506108fc565b6040518082815260200191505060405180910390f35b34801561029457600080fd5b5061029d610935565b6040518082815260200191505060405180910390f35b3480156102bf57600080fd5b506102ec600480360360208110156102d657600080fd5b810190808035906020019092919050505061093f565b6040518082815260200191505060405180910390f35b34801561030e57600080fd5b5061031761098b565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b50610342610a5e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561036a57600080fd5b50610373610a63565b005b34801561038157600080fd5b5061038a610c96565b6040518082815260200191505060405180910390f35b3480156103ac57600080fd5b506103b5610cfd565b6040518082815260200191505060405180910390f35b3480156103d757600080fd5b50610406600480360360208110156103ee57600080fd5b81019080803515159060200190929190505050610d03565b6040518082815260200191505060405180910390f35b34801561042857600080fd5b5061046b6004803603602081101561043f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6f565b6040518082815260200191505060405180910390f35b34801561048d57600080fd5b50610496610db8565b6040518082815260200191505060405180910390f35b3480156104b857600080fd5b506104e5600480360360208110156104cf57600080fd5b8101908080359060200190929190505050610e1c565b005b3480156104f357600080fd5b506104fc610f52565b6040518082815260200191505060405180910390f35b34801561051e57600080fd5b50610527610f67565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561056757808201518184015260208101905061054c565b50505050905090810190601f1680156105945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105ae57600080fd5b50610650600480360360608110156105c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561060c57600080fd5b82018360208201111561061e57600080fd5b8035906020019184600183028401116401000000008311171561064057600080fd5b9091929391929390505050611005565b005b34801561065e57600080fd5b506106ab6004803603604081101561067557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110b7565b604051808215151515815260200191505060405180910390f35b3480156106d157600080fd5b50610714600480360360208110156106e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611362565b6040518082815260200191505060405180910390f35b34801561073657600080fd5b5061073f6113ab565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b5061078e6004803603602081101561077857600080fd5b81019080803590602001909291905050506113b1565b005b34801561079c57600080fd5b506107a56115df565b005b3480156107b357600080fd5b506107bc611647565b005b600068010000000000000000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460095402038161085657fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b505050505081565b60008061090d83600a60ff166117bc565b9050600061091b84836117d5565b90506000610928826117ef565b9050809350505050919050565b6000600854905090565b600060085482111561095057600080fd5b600061095b83611885565b90506000610970600f60ff16830260646117bc565b9050600061097e83836117d5565b9050809350505050919050565b600073514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a1e57600080fd5b505afa158015610a32573d6000803e3d6000fd5b505050506040513d6020811015610a4857600080fd5b8101908080519060200190929190505050905090565b601281565b6000610a6f6001610d03565b11610a7957600080fd5b60003390506000610a8a6000610d03565b9050680100000000000000008102600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c0857600080fd5b505af1158015610c1c573d6000803e3d6000fd5b505050506040513d6020811015610c3257600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6000806008541415610cbb576305f5e10060020264174876e800603202039050610cfa565b6000610cce670de0b6b3a7640000611885565b90506000610ce3600f60ff16830260646117bc565b90506000610cf183836117d5565b90508093505050505b90565b60035481565b60008033905082610d1c57610d17816107be565b610d67565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d65826107be565b015b915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806008541415610ddd576305f5e10060020264174876e800603202019050610e19565b6000610df0670de0b6b3a7640000611885565b90506000610e0282600a60ff166117bc565b90506000610e108383611932565b90508093505050505b90565b73514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610eeb57600080fd5b505af1158015610eff573d6000803e3d6000fd5b505050506040513d6020811015610f1557600080fd5b810190808051906020019092919050505050610f4960095460085468010000000000000000840281610f4357fe5b04611932565b60098190555050565b600080339050610f6181610d6f565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081565b73514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105157600080fd5b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000601482015190506110ae858288611951565b50505050505050565b6000806110c2610f52565b116110cc57600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111561111d57600080fd5b60006111296001610d03565b111561113857611137610a63565b5b611181600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846117d5565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061120d600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611932565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260095402600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508260095402600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60045481565b60006113bb610f52565b116113c557600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561141657600080fd5b6000829050600061142682611885565b9050600061143b600f60ff16830260646117bc565b9050600061144983836117d5565b9050611457600854856117d5565b6008819055506114a6600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856117d5565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000680100000000000000008202856009540201905080600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611580576115796009546008546801000000000000000086028161157357fe5b04611932565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b60003390506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561163b5761163a816113b1565b5b611643610a63565b5050565b60006116536001610d03565b1161165d57600080fd5b60006116696000610d03565b90506000339050680100000000000000008202600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061175f83600084611951565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000808284816117c857fe5b0490508091505092915050565b6000828211156117e457600080fd5b818303905092915050565b600080670de0b6b3a764000064174876e80060320202905060006008546305f5e10060020261187061186a600854866305f5e100600202600202020260026008540a60026305f5e1006002020a02670de0b6b3a76400008a02670de0b6b3a76400006305f5e10060020202600202026002890a010101611d77565b856117d5565b8161187757fe5b040390508092505050919050565b600080670de0b6b3a7640000830190506000670de0b6b3a76400006008540190506000670de0b6b3a764000061191d670de0b6b3a764000085036305f5e100600202670de0b6b3a764000086816118d857fe5b046305f5e1006002020264174876e8006032020103026002670de0b6b3a7640000876002890a038161190657fe5b046305f5e100600202028161191757fe5b046117d5565b8161192457fe5b049050809350505050919050565b60008082840190508381101561194757600080fd5b8091505092915050565b6000600454421015806119b15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6119ba57600080fd5b600082905060006119cf86600a60ff166117bc565b905060006119de8260036117bc565b905060006119ec83836117d5565b905060006119fa89856117d5565b90506000611a07826117ef565b905060006801000000000000000084029050600082118015611a355750600854611a3383600854611932565b115b611a3e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614158015611aa757508673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b8015611af45750600354600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611b8a57611b42600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611932565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ba5565b611b948486611932565b935068010000000000000000840290505b60006008541115611c0c57611bbc60085483611932565b60088190555060085468010000000000000000850281611bd857fe5b0460096000828254019250508190555060085468010000000000000000850281611bfe57fe5b048202810381039050611c14565b816008819055505b611c5d600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611932565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081836009540203905080600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508a73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58e86604051808381526020018281526020019250505060405180910390a382985050505050505050509392505050565b60008060026001840181611d8757fe5b0490508291505b81811015611db657809150600281828581611da557fe5b040181611dae57fe5b049050611d8e565b5091905056fea265627a7a7231582011ee8a6dee51abe04260857502a9f731ba3cbe49530a4083820e2dd3feac4b1c64736f6c63430005110032

Deployed Bytecode

0x60806040526004361061013f5760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb14610652578063b5b86a51146106c5578063b91d40011461072a578063e4849b3214610755578063e9fad8ee14610790578063fdb5a03e146107a75761013f565b806370a082311461041c5780638620410b1461048157806391c05b0b146104ac578063949e8acd146104e757806395d89b4114610512578063a4c0ed36146105a25761013f565b80632e01f949116101085780632e01f94914610302578063313ce5671461032d5780633ccfd60b1461035e5780634b7503341461037557806356d399e8146103a0578063688abbf7146103cb5761013f565b806265318b1461014457806306fdde03146101a957806310d0ffdd1461023957806318160ddd1461028857806322609373146102b3575b600080fd5b34801561015057600080fd5b506101936004803603602081101561016757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107be565b6040518082815260200191505060405180910390f35b3480156101b557600080fd5b506101be61085e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fe5780820151818401526020810190506101e3565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024557600080fd5b506102726004803603602081101561025c57600080fd5b81019080803590602001909291905050506108fc565b6040518082815260200191505060405180910390f35b34801561029457600080fd5b5061029d610935565b6040518082815260200191505060405180910390f35b3480156102bf57600080fd5b506102ec600480360360208110156102d657600080fd5b810190808035906020019092919050505061093f565b6040518082815260200191505060405180910390f35b34801561030e57600080fd5b5061031761098b565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b50610342610a5e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561036a57600080fd5b50610373610a63565b005b34801561038157600080fd5b5061038a610c96565b6040518082815260200191505060405180910390f35b3480156103ac57600080fd5b506103b5610cfd565b6040518082815260200191505060405180910390f35b3480156103d757600080fd5b50610406600480360360208110156103ee57600080fd5b81019080803515159060200190929190505050610d03565b6040518082815260200191505060405180910390f35b34801561042857600080fd5b5061046b6004803603602081101561043f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6f565b6040518082815260200191505060405180910390f35b34801561048d57600080fd5b50610496610db8565b6040518082815260200191505060405180910390f35b3480156104b857600080fd5b506104e5600480360360208110156104cf57600080fd5b8101908080359060200190929190505050610e1c565b005b3480156104f357600080fd5b506104fc610f52565b6040518082815260200191505060405180910390f35b34801561051e57600080fd5b50610527610f67565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561056757808201518184015260208101905061054c565b50505050905090810190601f1680156105945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105ae57600080fd5b50610650600480360360608110156105c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561060c57600080fd5b82018360208201111561061e57600080fd5b8035906020019184600183028401116401000000008311171561064057600080fd5b9091929391929390505050611005565b005b34801561065e57600080fd5b506106ab6004803603604081101561067557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110b7565b604051808215151515815260200191505060405180910390f35b3480156106d157600080fd5b50610714600480360360208110156106e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611362565b6040518082815260200191505060405180910390f35b34801561073657600080fd5b5061073f6113ab565b6040518082815260200191505060405180910390f35b34801561076157600080fd5b5061078e6004803603602081101561077857600080fd5b81019080803590602001909291905050506113b1565b005b34801561079c57600080fd5b506107a56115df565b005b3480156107b357600080fd5b506107bc611647565b005b600068010000000000000000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460095402038161085657fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b505050505081565b60008061090d83600a60ff166117bc565b9050600061091b84836117d5565b90506000610928826117ef565b9050809350505050919050565b6000600854905090565b600060085482111561095057600080fd5b600061095b83611885565b90506000610970600f60ff16830260646117bc565b9050600061097e83836117d5565b9050809350505050919050565b600073514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a1e57600080fd5b505afa158015610a32573d6000803e3d6000fd5b505050506040513d6020811015610a4857600080fd5b8101908080519060200190929190505050905090565b601281565b6000610a6f6001610d03565b11610a7957600080fd5b60003390506000610a8a6000610d03565b9050680100000000000000008102600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c0857600080fd5b505af1158015610c1c573d6000803e3d6000fd5b505050506040513d6020811015610c3257600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6000806008541415610cbb576305f5e10060020264174876e800603202039050610cfa565b6000610cce670de0b6b3a7640000611885565b90506000610ce3600f60ff16830260646117bc565b90506000610cf183836117d5565b90508093505050505b90565b60035481565b60008033905082610d1c57610d17816107be565b610d67565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d65826107be565b015b915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806008541415610ddd576305f5e10060020264174876e800603202019050610e19565b6000610df0670de0b6b3a7640000611885565b90506000610e0282600a60ff166117bc565b90506000610e108383611932565b90508093505050505b90565b73514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610eeb57600080fd5b505af1158015610eff573d6000803e3d6000fd5b505050506040513d6020811015610f1557600080fd5b810190808051906020019092919050505050610f4960095460085468010000000000000000840281610f4357fe5b04611932565b60098190555050565b600080339050610f6181610d6f565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffd5780601f10610fd257610100808354040283529160200191610ffd565b820191906000526020600020905b815481529060010190602001808311610fe057829003601f168201915b505050505081565b73514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105157600080fd5b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000601482015190506110ae858288611951565b50505050505050565b6000806110c2610f52565b116110cc57600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111561111d57600080fd5b60006111296001610d03565b111561113857611137610a63565b5b611181600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846117d5565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061120d600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611932565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260095402600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508260095402600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60045481565b60006113bb610f52565b116113c557600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561141657600080fd5b6000829050600061142682611885565b9050600061143b600f60ff16830260646117bc565b9050600061144983836117d5565b9050611457600854856117d5565b6008819055506114a6600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856117d5565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000680100000000000000008202856009540201905080600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611580576115796009546008546801000000000000000086028161157357fe5b04611932565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b60003390506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561163b5761163a816113b1565b5b611643610a63565b5050565b60006116536001610d03565b1161165d57600080fd5b60006116696000610d03565b90506000339050680100000000000000008202600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061175f83600084611951565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000808284816117c857fe5b0490508091505092915050565b6000828211156117e457600080fd5b818303905092915050565b600080670de0b6b3a764000064174876e80060320202905060006008546305f5e10060020261187061186a600854866305f5e100600202600202020260026008540a60026305f5e1006002020a02670de0b6b3a76400008a02670de0b6b3a76400006305f5e10060020202600202026002890a010101611d77565b856117d5565b8161187757fe5b040390508092505050919050565b600080670de0b6b3a7640000830190506000670de0b6b3a76400006008540190506000670de0b6b3a764000061191d670de0b6b3a764000085036305f5e100600202670de0b6b3a764000086816118d857fe5b046305f5e1006002020264174876e8006032020103026002670de0b6b3a7640000876002890a038161190657fe5b046305f5e100600202028161191757fe5b046117d5565b8161192457fe5b049050809350505050919050565b60008082840190508381101561194757600080fd5b8091505092915050565b6000600454421015806119b15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6119ba57600080fd5b600082905060006119cf86600a60ff166117bc565b905060006119de8260036117bc565b905060006119ec83836117d5565b905060006119fa89856117d5565b90506000611a07826117ef565b905060006801000000000000000084029050600082118015611a355750600854611a3383600854611932565b115b611a3e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614158015611aa757508673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b8015611af45750600354600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611b8a57611b42600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611932565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ba5565b611b948486611932565b935068010000000000000000840290505b60006008541115611c0c57611bbc60085483611932565b60088190555060085468010000000000000000850281611bd857fe5b0460096000828254019250508190555060085468010000000000000000850281611bfe57fe5b048202810381039050611c14565b816008819055505b611c5d600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611932565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081836009540203905080600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508a73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58e86604051808381526020018281526020019250505060405180910390a382985050505050505050509392505050565b60008060026001840181611d8757fe5b0490508291505b81811015611db657809150600281828581611da557fe5b040181611dae57fe5b049050611d8e565b5091905056fea265627a7a7231582011ee8a6dee51abe04260857502a9f731ba3cbe49530a4083820e2dd3feac4b1c64736f6c63430005110032

Deployed Bytecode Sourcemap

881:18944:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4588:8;;;11425:339;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11425:339:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11425:339:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2281:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2281:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2281:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12972:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12972:388:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12972:388:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9837:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9837:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13478:414;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13478:414:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13478:414:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9652:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9652:118:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2352:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2352:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6115:674;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6115:674:0;;;:::i;:::-;;11843:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11843:506:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3150:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3150:41:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10510:375;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10510:375:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10510:375:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10969:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10969:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10969:138:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12427:428;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12427:428:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4612:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4612:253:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4612:253:0;;;;;;;;;;;;;;;;;:::i;:::-;;10003:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10003:151:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2317:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2317:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2317:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4002:462;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4002:462:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4002:462:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4002:462:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4002:462:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4002:462:0;;;;;;;;;;;;:::i;:::-;;8328:1137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8328:1137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8328:1137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11194:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11194:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11194:144:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3198:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3198:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6853:1371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6853:1371:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6853:1371:0;;;;;;;;;;;;;;;;;:::i;:::-;;5778:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5778:264:0;;;:::i;:::-;;4945:767;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4945:767:0;;;:::i;:::-;;11425:339;11520:7;2863:5;11701:10;:28;11712:16;11701:28;;;;;;;;;;;;;;;;11642:19;:37;11662:16;11642:37;;;;;;;;;;;;;;;;11624:15;;:55;11593:136;11565:191;;;;;;11545:211;;11425:339;;;:::o;2281:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12972:388::-;13079:7;13104:18;13125:44;13138:16;2433:2;13125:44;;:12;:44::i;:::-;13104:65;;13180:22;13205:42;13218:16;13236:10;13205:12;:42::i;:::-;13180:67;;13258:23;13284:33;13302:14;13284:17;:33::i;:::-;13258:59;;13337:15;13330:22;;;;;12972:388;;;:::o;9837:91::-;9881:7;9908:12;;9901:19;;9837:91;:::o;13478:414::-;13584:7;13634:12;;13617:13;:29;;13609:38;;;;;;13658:17;13678:32;13696:13;13678:17;:32::i;:::-;13658:52;;13721:18;13742:39;2484:2;13756:18;;:9;:18;13777:3;13742:12;:39::i;:::-;13721:60;;13792:22;13817:35;13830:9;13841:10;13817:12;:35::i;:::-;13792:60;;13870:14;13863:21;;;;;13478:414;;;:::o;9652:118::-;9701:7;2934:42;9728:19;;;9756:4;9728:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9728:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9728:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9728:34:0;;;;;;;;;;;;;;;;9721:41;;9652:118;:::o;2352:35::-;2385:2;2352:35;:::o;6115:674::-;1242:1;1222:17;1234:4;1222:11;:17::i;:::-;:21;1214:30;;;;;;6194:24;6221:10;6194:37;;6242:18;6263;6275:5;6263:11;:18::i;:::-;6242:39;;2863:5;6407:10;:22;6366:10;:28;6377:16;6366:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;6484:16;:34;6501:16;6484:34;;;;;;;;;;;;;;;;6470:48;;;;6566:1;6529:16;:34;6546:16;6529:34;;;;;;;;;;;;;;;:38;;;;2934:42;6615:18;;;6634:16;6652:10;6615:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6615:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6615:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6615:48:0;;;;;;;;;;;;;;;;;6729:16;6704:77;;;6760:10;6704:77;;;;;;;;;;;;;;;;;;1255:1;;6115:674::o;11843:506::-;11885:7;12000:1;11984:12;;:17;11980:362;;;2541:3;2751:1;:16;2589:4;2647:2;:14;12025:43;12018:50;;;;11980:362;12101:17;12121:23;12139:4;12121:17;:23::i;:::-;12101:43;;12159:18;12180:39;2484:2;12194:18;;:9;:18;12215:3;12180:12;:39::i;:::-;12159:60;;12234:22;12259:35;12272:9;12283:10;12259:12;:35::i;:::-;12234:60;;12316:14;12309:21;;;;;11843:506;;:::o;3150:41::-;;;;:::o;10510:375::-;10607:7;10632:24;10659:10;10632:37;;10700:21;:177;;10848:29;10860:16;10848:11;:29::i;:::-;10700:177;;;10794:16;:34;10811:16;10794:34;;;;;;;;;;;;;;;;10741:29;10753:16;10741:11;:29::i;:::-;:87;10700:177;10680:197;;;10510:375;;;:::o;10969:138::-;11035:7;11062:19;:37;11082:16;11062:37;;;;;;;;;;;;;;;;11055:44;;10969:138;;;:::o;12427:428::-;12468:7;12508:1;12492:12;;:17;12488:360;;;2541:3;2751:1;:16;2589:4;2647:2;:14;12533:43;12526:50;;;;12488:360;12609:17;12629:23;12647:4;12629:17;:23::i;:::-;12609:43;;12667:18;12688:37;12701:9;2433:2;12688:37;;:12;:37::i;:::-;12667:58;;12740:22;12765:35;12778:9;12789:10;12765:12;:35::i;:::-;12740:60;;12822:14;12815:21;;;;;12427:428;;:::o;4612:253::-;2934:42;4668:22;;;4691:10;4711:4;4718:6;4668:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4668:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4668:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4668:57:0;;;;;;;;;;;;;;;;;4754:103;4781:15;;4834:12;;2863:5;4812:6;:18;4811:35;;;;;;4754:12;:103::i;:::-;4736:15;:121;;;;4612:253;:::o;10003:151::-;10044:7;10064:24;10091:10;10064:37;;10119:27;10129:16;10119:9;:27::i;:::-;10112:34;;;10003:151;:::o;2317:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4002:462::-;2934:42;4180:26;;:10;:26;;;4172:35;;;;;;4257:14;4274:5;;4257:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4257:22:0;;;;;;;;4290:19;4373:2;4371:1;4367:9;4361:16;4346:31;;4412:44;4427:6;4435:11;4448:7;4412:14;:44::i;:::-;;4002:462;;;;;;:::o;8328:1137::-;8451:4;1113:1;1100:10;:8;:10::i;:::-;:14;1092:23;;;;;;8491:24;8518:10;8491:37;;8619:19;:37;8639:16;8619:37;;;;;;;;;;;;;;;;8600:15;:56;;8592:65;;;;;;8747:1;8727:17;8739:4;8727:11;:17::i;:::-;:21;8723:37;;;8750:10;:8;:10::i;:::-;8723:37;8841:105;8868:19;:37;8888:16;8868:37;;;;;;;;;;;;;;;;8920:15;8841:12;:105::i;:::-;8801:19;:37;8821:16;8801:37;;;;;;;;;;;;;;;:145;;;;8991:99;9018:19;:31;9038:10;9018:31;;;;;;;;;;;;;;;;9064:15;8991:12;:99::i;:::-;8957:19;:31;8977:10;8957:31;;;;;;;;;;;;;;;:133;;;;9213:15;9195;;:33;9140:10;:28;9151:16;9140:28;;;;;;;;;;;;;;;;:99;;;;;;;;;;;9303:15;9285;;:33;9250:10;:22;9261:10;9250:22;;;;;;;;;;;;;;;;:69;;;;;;;;;;;9387:10;9360:55;;9369:16;9360:55;;;9399:15;9360:55;;;;;;;;;;;;;;;;;;9453:4;9446:11;;;8328:1137;;;;:::o;11194:144::-;11269:7;11296:16;:34;11313:16;11296:34;;;;;;;;;;;;;;;;11289:41;;11194:144;;;:::o;3198:39::-;;;;:::o;6853:1371::-;1113:1;1100:10;:8;:10::i;:::-;:14;1092:23;;;;;;6950:24;6977:10;6950:37;;7025:19;:37;7045:16;7025:37;;;;;;;;;;;;;;;;7006:15;:56;;6998:65;;;;;;7074:15;7092;7074:33;;7118:17;7138:26;7156:7;7138:17;:26::i;:::-;7118:46;;7175:18;7196:39;2484:2;7210:18;;:9;:18;7231:3;7196:12;:39::i;:::-;7175:60;;7246:22;7271:35;7284:9;7295:10;7271:12;:35::i;:::-;7246:60;;7367:35;7380:12;;7394:7;7367:12;:35::i;:::-;7352:12;:50;;;;7453:97;7480:19;:37;7500:16;7480:37;;;;;;;;;;;;;;;;7532:7;7453:12;:97::i;:::-;7413:19;:37;7433:16;7413:37;;;;;;;;;;;;;;;:137;;;;7600:22;2863:5;7677:14;:26;7666:7;7648:15;;:25;:56;7600:115;;7758:15;7726:10;:28;7737:16;7726:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7848:1;7833:12;;:16;7829:243;;;7941:119;7972:15;;8033:12;;2863:5;8007:10;:22;8006:39;;;;;;7941:12;:119::i;:::-;7923:15;:137;;;;7829:243;8138:16;8112:104;;;8169:7;8191:14;8112:104;;;;;;;;;;;;;;;;;;;;;;;;1126:1;;;;;;6853:1371;:::o;5778:264::-;5867:24;5894:10;5867:37;;5915:15;5933:19;:37;5953:16;5933:37;;;;;;;;;;;;;;;;5915:55;;5995:1;5985:7;:11;5981:30;;;5998:13;6003:7;5998:4;:13::i;:::-;5981:30;6024:10;:8;:10::i;:::-;5778:264;;:::o;4945:767::-;1242:1;1222:17;1234:4;1222:11;:17::i;:::-;:21;1214:30;;;;;;5029:18;5050;5062:5;5050:11;:18::i;:::-;5029:39;;5166:24;5193:10;5166:37;;2863:5;5255:10;:22;5214:10;:28;5225:16;5214:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;5337:16;:34;5354:16;5337:34;;;;;;;;;;;;;;;;5323:48;;;;5419:1;5382:16;:34;5399:16;5382:34;;;;;;;;;;;;;;;:38;;;;5509:15;5527:58;5542:10;5562:3;5568:16;5527:14;:58::i;:::-;5509:76;;5630:16;5601:103;;;5661:10;5686:7;5601:103;;;;;;;;;;;;;;;;;;;;;;;;1255:1;;;4945:767::o;20328:122::-;20386:7;20406:9;20422:1;20418;:5;;;;;;20406:17;;20441:1;20434:8;;;20328:122;;;;:::o;20578:124::-;20636:7;20669:1;20664;:6;;20656:15;;;;;;20693:1;20689;:5;20682:12;;20578:124;;;;:::o;17736:998::-;17832:7;17857:26;17907:4;2589;2647:2;:14;17886:25;17857:54;;17922:23;18678:12;;2541:3;2751:1;:16;17964:671;18018:546;18528:12;;18474:18;2541:3;2751:1;:16;18377:1;:61;:115;:163;18341:1;18327:12;;:15;18288:1;2541:3;2751:1;:16;18262:27;18261:82;18222:4;18210:9;:16;18168:4;2541:3;2751:1;:16;18143:29;18105:1;:68;:122;18070:1;18050:18;:21;18049:179;:295;:492;18018:4;:546::i;:::-;18602:18;17964:12;:671::i;:::-;17949:724;;;;;;17948:743;17922:769;;18711:15;18704:22;;;;17736:998;;;:::o;18996:561::-;19090:7;19115:15;19144:4;19134:7;:14;19115:34;;19160:20;19199:4;19184:12;;:19;19160:44;;19215:22;19512:4;19241:268;19415:4;19405:7;:14;2541:3;2751:1;:16;19351:4;19336:12;:19;;;;;;2541:3;2751:1;:16;19310:46;2589:4;2647:2;:14;19271:86;19270:130;19269:151;19497:1;19488:4;19477:7;19473:1;19464:7;:10;:20;19463:29;;;;;;2541:3;2751:1;:16;19437:56;19436:62;;;;;;19241:12;:268::i;:::-;:275;;;;;;19215:302;;19535:14;19528:21;;;;;18996:561;;;:::o;20779:148::-;20837:7;20857:9;20873:1;20869;:5;20857:17;;20898:1;20893;:6;;20885:15;;;;;;20918:1;20911:8;;;20779:148;;;;:::o;14046:3394::-;14187:7;14235:11;;14216:15;:30;;14215:62;;;;14263:13;;;;;;;;;;;14252:24;;:7;:24;;;14215:62;14207:71;;;;;;14312:24;14339:7;14312:34;;14357:27;14387:82;14414:17;2433:2;14387:82;;:12;:82::i;:::-;14357:112;;14480:22;14505:36;14518:19;14539:1;14505:12;:36::i;:::-;14480:61;;14552:18;14573:49;14586:19;14607:14;14573:12;:49::i;:::-;14552:70;;14633:22;14658:89;14685:17;14717:19;14658:12;:89::i;:::-;14633:114;;14758:23;14784:33;14802:14;14784:17;:33::i;:::-;14758:59;;14828:12;2863:5;14843:10;:22;14828:37;;14918:1;14900:15;:19;:100;;;;;14987:12;;14941:43;14954:15;14971:12;;14941;:43::i;:::-;:58;14900:100;14878:133;;;;;;15152:42;15137:57;;:11;:57;;;;:134;;;;;15255:16;15240:31;;:11;:31;;;;15137:134;:271;;;;;15390:18;;15354:19;:32;15374:11;15354:32;;;;;;;;;;;;;;;;:54;;15137:271;15074:781;;;15505:108;15536:16;:29;15553:11;15536:29;;;;;;;;;;;;;;;;15584:14;15505:12;:108::i;:::-;15473:16;:29;15490:11;15473:29;;;;;;;;;;;;;;;:140;;;;15074:781;;;15759:40;15772:10;15784:14;15759:12;:40::i;:::-;15746:53;;2863:5;15821:10;:22;15814:29;;15074:781;15937:1;15922:12;;:16;15918:721;;;16009:43;16022:12;;16036:15;16009:12;:43::i;:::-;15994:12;:58;;;;16241:12;;2863:5;16214:10;:22;16213:41;;;;;;16193:15;;:62;;;;;;;;;;;16509:12;;2863:5;16482:10;:22;16481:41;;;;;;16437:15;:86;16408:4;:116;16383:4;:142;16359:166;;15918:721;;;16612:15;16597:12;:30;;;;15918:721;16767:105;16794:19;:37;16814:16;16794:37;;;;;;;;;;;;;;;;16846:15;16767:12;:105::i;:::-;16727:19;:37;16747:16;16727:37;;;;;;;;;;;;;;;:145;;;;17052:22;17138:4;17119:15;17101;;:33;17100:42;17052:101;;17196:15;17164:10;:28;17175:16;17164:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;17375:11;17252:145;;17282:16;17252:145;;;17313:17;17345:15;17252:145;;;;;;;;;;;;;;;;;;;;;;;;17417:15;17410:22;;;;;;;;;;14046:3394;;;;;:::o;19615:207::-;19663:9;19685;19707:1;19702;19698;:5;19697:11;;;;;;19685:23;;19723:1;19719:5;;19735:80;19746:1;19742;:5;19735:80;;;19768:1;19764:5;;19802:1;19797;19793;19789;:5;;;;;;:9;19788:15;;;;;;19784:19;;19735:80;;;19615:207;;;;:::o

Swarm Source

bzzr://11ee8a6dee51abe04260857502a9f731ba3cbe49530a4083820e2dd3feac4b1c

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  ]

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.