ETH Price: $3,479.94 (+0.46%)

Token

BlockStake (BLOCK)
 

Overview

Max Total Supply

55,886,068.770160538648947252 BLOCK

Holders

278

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
790,787.99015588816479993 BLOCK

Value
$0.00
0x8c256300ED850185A10A6FD0b0c69d2EF87fdF11
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BlockStake

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-07-22
*/

// BLOCKCLOUT is a social DeFi network for cryptocurrency enthusiasts 
// https://blockclout.com
// https://blockclout.com/staking
// https://discord.gg/HDc2U5M
// https://t.me/blockcloutENG
// https://reddit.com/r/blockcloutENG
// https://medium.com/@blockclout
pragma solidity ^ 0.4.26;

library SafeMath {

    function mul(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }
    
    function div(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        return a / b;
    }
    
    function sub(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        assert(b <= a);
        return a - b;
    }
    
    function add(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        c = a + b;
        assert(c >= a);
        return c;
    }

}


contract IERC20 {

    function totalSupply() 
        external 
        view 
        returns(uint256);
    
    function balanceOf(
        address account
    ) 
        external 
        view 
        returns(uint256);
    
    function transfer(
        address recipient, 
        uint256 amount
    ) 
        external 
        returns(bool);
    
    function allowance(
        address owner, 
        address spender
    ) 
        external 
        view 
        returns(uint256);
    
    function approve(
        address spender, 
        uint256 amount
    ) 
        external returns(bool);
    
    function transferFrom(
        address sender, 
        address recipient, 
        uint256 amount
    ) 
        external returns(bool);

}


contract BlockStake {

    mapping(address => bool) internal ambassadors_;

    uint256 constant internal ambassadorMaxPurchase_ = 1000000e18;

    mapping(address => uint256) internal ambassadorAccumulatedQuota_;

    bool public onlyAmbassadors = true;

    uint256 ACTIVATION_TIME = now;

    modifier antiEarlyWhale(
        uint256 _amountOfERC20, 
        address _customerAddress
    )
    {
        if (now >= ACTIVATION_TIME) {
            onlyAmbassadors = false;
        }
        
        if (onlyAmbassadors) {
            
            require((ambassadors_[_customerAddress] == true && 
            
            (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfERC20) <= 
                ambassadorMaxPurchase_));
                
            ambassadorAccumulatedQuota_[_customerAddress] = 
                SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfERC20);
    
            _;
        
        } else {
            onlyAmbassadors = false;
            _;
        }
    }

    modifier onlyTokenHolders {
        require(myTokens() > 0);
        _;
    }

    modifier onlyDivis {
        require(myDividends(true) > 0);
        _;
    }

    event onDistribute(
        address indexed customerAddress,
        uint256 price
    );

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingERC20,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ERC20Earned,
        uint timestamp
    );

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

    event onWithdraw(
        address indexed customerAddress,
        uint256 ERC20Withdrawn
    );

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

    string public name = "BlockStake";
    
    string public symbol = "BLOCK";
    
    uint8 constant public decimals = 18;
    
    uint256 internal entryFee_ = 5;
    
    uint256 internal exitFee_ = 15;
    
    uint256 internal referralFee_ = 10;
    
    uint256 internal maintenanceFee_ = 5;
    
    address internal maintenanceAddress;
    
    uint256 constant internal magnitude = 2 ** 64;
    
    mapping(address => uint256) public tokenBalanceLedger_;
    
    mapping(address => uint256) public referralBalance_;
    
    mapping(address => uint256) public totalReferralEarnings_;
    
    mapping(address => int256) public payoutsTo_;
    
    mapping(address => uint256) public invested_;
    
    uint256 internal tokenSupply_;
    
    uint256 internal profitPerShare_;
    
    IERC20 erc20;

    constructor() public {
        maintenanceAddress = address(0x03298351da3fceED5Ad95Bd3e32829b4740EA277);
        erc20 = IERC20(address(0xa10ae543db5d967a73e9abcc69c81a18a7fc0a78));
    }
    
    function checkAndTransfer(
        uint256 _amount
    ) 
        private 
    {
        require(
            erc20.transferFrom(
                msg.sender, 
                address(this), 
                _amount
            ) == true, "transfer must succeed"
        );
    }

    function buy(
        uint256 _amount, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        
        return purchaseTokens(
            _referredBy, 
            msg.sender, 
            _amount
        );
    }
    
    function buyFor(
        uint256 _amount, 
        address _customerAddress, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        return purchaseTokens(
            _referredBy, 
            _customerAddress,
            _amount
        );
    }
    
    function() payable public {
        revert();
    }
    
    function reinvest() 
        onlyDivis 
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        uint256 _tokens = purchaseTokens(0x0, _customerAddress, _dividends);
        
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    function exit() external {
        
        address _customerAddress = msg.sender;
        
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        
        if (_tokens > 0) sell(_tokens);
        
        withdraw();
    }
    
    function withdraw() 
        onlyDivis
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        erc20.transfer(_customerAddress, _dividends);
        
        emit onWithdraw(_customerAddress, _dividends);
    }
    
    function sell(
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        public 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
        
        uint256 _dividends = SafeMath.div(SafeMath.mul(_amountOfERC20s, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_amountOfERC20s, _dividends);
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
        
        int256 _updatedPayouts = 
            (int256)(profitPerShare_ * _amountOfERC20s + (_taxedERC20 * magnitude));
            
        payoutsTo_[_customerAddress] -= _updatedPayouts;
        
        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(
                profitPerShare_, (_dividends * magnitude) / tokenSupply_
            );
        }
        
        emit Transfer(_customerAddress, address(0), _amountOfERC20s);
        emit onTokenSell(_customerAddress, _amountOfERC20s, _taxedERC20, now);
    }
    
    function transfer(
        address _toAddress, 
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        external 
        returns(bool) 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
    
        if (myDividends(true) > 0) {
            withdraw();
        }
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
            
        tokenBalanceLedger_[_toAddress] = 
            SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfERC20s);
        
        payoutsTo_[_customerAddress] -= (int256)(profitPerShare_ * _amountOfERC20s);
        payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _amountOfERC20s);
        
        profitPerShare_ = SafeMath.add(profitPerShare_, (_amountOfERC20s * magnitude) / tokenSupply_);
        
        emit Transfer(_customerAddress, _toAddress, _amountOfERC20s);
        
        return true;
    }
    
    function totalERC20Balance() 
        public 
        view 
        returns(uint256) 
    {
        return erc20.balanceOf(address(this));
    }

    function totalSupply() 
        public 
        view 
        returns(uint256) 
    {
        return tokenSupply_;
    }

    function myTokens() 
        public 
        view 
        returns(uint256) 
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
    
    function myDividends(
        bool _includeReferralBonus
    ) 
        public 
        view 
        returns(uint256) 
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + 
            referralBalance_[_customerAddress] : dividendsOf(_customerAddress);
    }
    
    function balanceOf(
        address _customerAddress
    ) 
        public 
        view 
        returns(uint256) 
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    function dividendsOf(
        address _customerAddress
    ) 
        public 
        view 
        returns(uint256) 
    {
        return (uint256)((int256)(
            profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - 
            payoutsTo_[_customerAddress]) / magnitude;
    }
    
    function sellPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function buyPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, entryFee_), 100);
        uint256 _taxedERC20 = SafeMath.add(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function getInvested() 
        public 
        view 
        returns(uint256) 
    {
        return invested_[msg.sender];
    }
    
    function totalReferralEarnings(
        address _client
    )
        public 
        view 
        returns(uint256)
    {
        return totalReferralEarnings_[_client];
    }
    
    function referralBalance(
        address _client 
    )
        public 
        view 
        returns(uint256)
    {
        return referralBalance_[_client];
    }
    
    function purchaseTokens(
        address _referredBy, 
        address _customerAddress, 
        uint256 _incomingERC20
    ) 
        internal 
        antiEarlyWhale(_incomingERC20, _customerAddress) 
        returns(uint256) 
    {
    invested_[msg.sender] += _incomingERC20;
    
    uint256 _undividedDividends = 
        SafeMath.div(
            SafeMath.mul(
                _incomingERC20, entryFee_
            ), 
        100);
    
    uint256 _maintenance = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, maintenanceFee_
            ), 
        100);
        
        
    uint256 _referralBonus = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, referralFee_
            ), 
        100);
    
    uint256 _dividends = 
        SafeMath.sub(
            _undividedDividends, SafeMath.add(
                _referralBonus, _maintenance
            )
        );
        
    uint256 _amountOfERC20s = 
        SafeMath.sub(_incomingERC20, _undividedDividends);
        
    uint256 _fee = _dividends * magnitude;
    
    require(
        _amountOfERC20s > 0 && 
        SafeMath.add(_amountOfERC20s, tokenSupply_) > tokenSupply_
    );
    
    referralBalance_[maintenanceAddress] = 
        SafeMath.add(referralBalance_[maintenanceAddress], _maintenance);
    
    if (_referredBy != address(0) && 
        _referredBy != _customerAddress)
    {
        referralBalance_[_referredBy] = 
            SafeMath.add(referralBalance_[_referredBy], _referralBonus);
            
        totalReferralEarnings_[_referredBy] = 
            SafeMath.add(totalReferralEarnings_[_referredBy], _referralBonus);
    } else {
        _dividends = SafeMath.add(_dividends, _referralBonus);
        _fee = _dividends * magnitude;
    }
    
    if (tokenSupply_ > 0) 
    {
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfERC20s);
        
        profitPerShare_ += ((_dividends * magnitude) / (tokenSupply_));
        _fee = _fee - (_fee - (_amountOfERC20s * ((_dividends * magnitude) / (tokenSupply_))));
        
    } else {
        tokenSupply_ = _amountOfERC20s;
    }

    tokenBalanceLedger_[_customerAddress] = 
        SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
    
    int256 _updatedPayouts = (int256)((profitPerShare_ * _amountOfERC20s) - _fee);
        
    payoutsTo_[_customerAddress] += _updatedPayouts;
    
    emit Transfer(
        address(0), 
        msg.sender, 
        _amountOfERC20s
    );
    
    emit onTokenPurchase(
        _customerAddress, 
        _incomingERC20, 
        _amountOfERC20s, 
        _referredBy, 
        now
    );
    
    return _amountOfERC20s;
    }

    function multiData()
    public
    view
    returns(
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256,
        uint256,
        uint256
    )
    {
        return (
        
        // [0] Total ERC20 in contract 
        totalERC20Balance(),
        
        // [1] Total STAKE TOKEN supply
        totalSupply(),
        
        // [2] User STAKE TOKEN balance 
        balanceOf(msg.sender),
        
        // [3] User ERC20 balance
        erc20.balanceOf(msg.sender),
        
        // [4] User divs 
        dividendsOf(msg.sender),
        
        // [5] Buy price 
        buyPrice(),
        
        // [6] Sell price 
        sellPrice(),
        
        // [7] Total referral earnings  
        totalReferralEarnings(msg.sender),
        
        // [8] Current referral earnings 
        referralBalance(msg.sender)
        );
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"},{"name":"_referredBy","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"totalReferralEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"referralBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalanceLedger_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"invested_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"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":"totalReferralEarnings_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfERC20s","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralBalance_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfERC20s","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalERC20Balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingERC20","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ERC20Earned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Reinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Withdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

6002805460ff191660011790554260035560c0604052600a60808190527f426c6f636b5374616b650000000000000000000000000000000000000000000060a090815262000051916004919062000107565b506040805180820190915260058082527f424c4f434b000000000000000000000000000000000000000000000000000000602090920191825262000096918162000107565b506005600655600f600755600a6008556005600955348015620000b857600080fd5b50600a8054600160a060020a03199081167303298351da3fceed5ad95bd3e32829b4740ea277179091556012805490911673a10ae543db5d967a73e9abcc69c81a18a7fc0a78179055620001ac565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014a57805160ff19168380011785556200017a565b828001600101855582156200017a579182015b828111156200017a5782518255916020019190600101906200015d565b50620001889291506200018c565b5090565b620001a991905b8082111562000188576000815560010162000193565b90565b61172580620001bc6000396000f3006080604052600436106101685763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461016d57806306fdde03146101a057806318160ddd1461022a57806327defa1f1461023f578063313ce5671461026857806332b74ec7146102935780633ccfd60b146102bd57806346b6ef41146102d45780634b750334146102f5578063563bfecc1461030a5780635c5a0a9d1461032b578063688abbf71461034c57806370a082311461036657806379fbd22c146103875780637deb6025146103a85780638620410b146103cc578063949e8acd146103e157806395d89b41146103f6578063989a9d171461040b578063a9059cbb1461042c578063befc3e2b14610450578063c664f7f114610465578063e1456cb414610486578063e4849b32146104a7578063e9fad8ee146104bf578063eabd1ddb146104d4578063f2b79df9146104e9578063fdb5a03e14610545575b600080fd5b34801561017957600080fd5b5061018e600160a060020a036004351661055a565b60408051918252519081900360200190f35b3480156101ac57600080fd5b506101b5610595565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ef5781810151838201526020016101d7565b50505050905090810190601f16801561021c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023657600080fd5b5061018e610623565b34801561024b57600080fd5b50610254610629565b604080519115158252519081900360200190f35b34801561027457600080fd5b5061027d610632565b6040805160ff9092168252519081900360200190f35b34801561029f57600080fd5b5061018e600435600160a060020a0360243581169060443516610637565b3480156102c957600080fd5b506102d2610655565b005b3480156102e057600080fd5b5061018e600160a060020a036004351661078c565b34801561030157600080fd5b5061018e6107a7565b34801561031657600080fd5b5061018e600160a060020a03600435166107da565b34801561033757600080fd5b5061018e600160a060020a03600435166107f5565b34801561035857600080fd5b5061018e6004351515610807565b34801561037257600080fd5b5061018e600160a060020a0360043516610848565b34801561039357600080fd5b5061018e600160a060020a0360043516610863565b3480156103b457600080fd5b5061018e600435600160a060020a0360243516610875565b3480156103d857600080fd5b5061018e610894565b3480156103ed57600080fd5b5061018e6108c0565b34801561040257600080fd5b506101b56108d2565b34801561041757600080fd5b5061018e600160a060020a036004351661092d565b34801561043857600080fd5b50610254600160a060020a036004351660243561093f565b34801561045c57600080fd5b5061018e610aa0565b34801561047157600080fd5b5061018e600160a060020a0360043516610ab3565b34801561049257600080fd5b5061018e600160a060020a0360043516610ac5565b3480156104b357600080fd5b506102d2600435610ad7565b3480156104cb57600080fd5b506102d2610c50565b3480156104e057600080fd5b5061018e610c7d565b3480156104f557600080fd5b506104fe610d13565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b34801561055157600080fd5b506102d2610e14565b600160a060020a03166000908152600e6020908152604080832054600b90925290912054601154680100000000000000009102919091030490565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b60105490565b60025460ff1681565b601281565b600061064284610ed4565b61064d828486610fe6565b949350505050565b60008060006106646001610807565b1161066e57600080fd5b33915061067b6000610807565b600160a060020a038084166000818152600e602090815260408083208054680100000000000000008802019055600c825280832080549084905560125482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b5050604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600160a060020a03166000908152600d602052604090205490565b600080600080670de0b6b3a764000092506107ce6107c78460075461167c565b60646116a5565b915061064d83836116ba565b600160a060020a03166000908152600c602052604090205490565b600b6020526000908152604090205481565b6000338261081d576108188161055a565b610841565b600160a060020a0381166000908152600c602052604090205461083f8261055a565b015b9392505050565b600160a060020a03166000908152600b602052604090205490565b600f6020526000908152604090205481565b600061088083610ed4565b61088b823385610fe6565b90505b92915050565b600080600080670de0b6b3a764000092506108b46107c78460065461167c565b915061064d83836116cc565b6000336108cc81610848565b91505090565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b600d6020526000908152604090205481565b600080600061094c6108c0565b1161095657600080fd5b50336000818152600b602052604090205483111561097357600080fd5b600061097f6001610807565b111561098d5761098d610655565b610999601054846116ba565b601055600160a060020a0381166000908152600b60205260409020546109bf90846116ba565b600160a060020a038083166000908152600b602052604080822093909355908616815220546109ee90846116cc565b600160a060020a038581166000818152600b6020908152604080832095909555601180549487168352600e9091528482208054948902909403909355825491815292909220805492860290920190915554601054610a629190680100000000000000008602811515610a5c57fe5b046116cc565b601155604080518481529051600160a060020a0380871692908416916000805160206116da8339815191529181900360200190a35060019392505050565b336000908152600f602052604090205490565b600c6020526000908152604090205481565b600e6020526000908152604090205481565b6000806000806000610ae76108c0565b11610af157600080fd5b336000818152600b6020526040902054909450851115610b1057600080fd5b610b1f6107c78660075461167c565b9250610b2b85846116ba565b9150610b39601054866116ba565b601055600160a060020a0384166000908152600b6020526040902054610b5f90866116ba565b600160a060020a0385166000908152600b6020908152604080832093909355601154600e9091529181208054928802680100000000000000008602019283900390556010549192501015610bcf57610bcb601154601054680100000000000000008602811515610a5c57fe5b6011555b604080518681529051600091600160a060020a038716916000805160206116da8339815191529181900360200190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a25050505050565b336000818152600b602052604081205490811115610c7157610c7181610ad7565b610c79610655565b5050565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610ce257600080fd5b505af1158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b5051905090565b6000806000806000806000806000610d29610c7d565b610d31610623565b610d3a33610848565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b5051610dd53361055a565b610ddd610894565b610de56107a7565b610dee3361078c565b610df7336107da565b985098509850985098509850985098509850909192939495969798565b600080600080610e246001610807565b11610e2e57600080fd5b339250610e3b6000610807565b600160a060020a0384166000908152600e602090815260408083208054680100000000000000008602019055600c90915281208054908290559091019250610e84908484610fe6565b905082600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b601254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610f4757600080fd5b505af1158015610f5b573d6000803e3d6000fd5b505050506040513d6020811015610f7157600080fd5b50511515600114610fe357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b600080600080600080600080888a6003544210151561100a576002805460ff191690555b60025460ff161561138c57600160a060020a03811660009081526020819052604090205460ff16151560011480156110675750600160a060020a03811660009081526001602052604090205469d3c21bcecceda100000090830111155b151561107257600080fd5b600160a060020a03811660009081526001602052604090205461109590836116cc565b600160a060020a038216600090815260016020908152604080832093909355338252600f90522080548c0190556006546110d4906107c7908d9061167c565b98506110e56107c78a60095461167c565b97506110f66107c78a60085461167c565b965061110b89611106898b6116cc565b6116ba565b95506111178b8a6116ba565b94506801000000000000000086029350600085118015611141575060105461113f86826116cc565b115b151561114c57600080fd5b600a54600160a060020a03166000908152600c602052604090205461117190896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d16158015906111b357508b600160a060020a03168d600160a060020a031614155b1561122857600160a060020a038d166000908152600c60205260409020546111db90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d9052205461120a90886116cc565b600160a060020a038e166000908152600d6020526040902055611243565b61123286886116cc565b955068010000000000000000860293505b600060105411156112a75761125a601054866116cc565b601081905568010000000000000000870281151561127457fe5b6011805492909104909101905560105468010000000000000000870281151561129957fe5b0485028403840393506112ad565b60108590555b600160a060020a038c166000908152600b60205260409020546112d090866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a384995061166c565b6002805460ff19169055336000908152600f6020526040902080548c0190556006546113bd906107c7908d9061167c565b98506113ce6107c78a60095461167c565b97506113df6107c78a60085461167c565b96506113ef89611106898b6116cc565b95506113fb8b8a6116ba565b94506801000000000000000086029350600085118015611425575060105461142386826116cc565b115b151561143057600080fd5b600a54600160a060020a03166000908152600c602052604090205461145590896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d161580159061149757508b600160a060020a03168d600160a060020a031614155b1561150c57600160a060020a038d166000908152600c60205260409020546114bf90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d905220546114ee90886116cc565b600160a060020a038e166000908152600d6020526040902055611527565b61151686886116cc565b955068010000000000000000860293505b6000601054111561158b5761153e601054866116cc565b601081905568010000000000000000870281151561155857fe5b6011805492909104909101905560105468010000000000000000870281151561157d57fe5b048502840384039350611591565b60108590555b600160a060020a038c166000908152600b60205260409020546115b490866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b600082151561168d5750600061088e565b5081810281838281151561169d57fe5b041461088e57fe5b600081838115156116b257fe5b049392505050565b6000828211156116c657fe5b50900390565b8181018281101561088e57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582025bdbc6d092025c93165d5399ef4cf166651ba07160cf44faac94a2a73f30c5d0029

Deployed Bytecode

0x6080604052600436106101685763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461016d57806306fdde03146101a057806318160ddd1461022a57806327defa1f1461023f578063313ce5671461026857806332b74ec7146102935780633ccfd60b146102bd57806346b6ef41146102d45780634b750334146102f5578063563bfecc1461030a5780635c5a0a9d1461032b578063688abbf71461034c57806370a082311461036657806379fbd22c146103875780637deb6025146103a85780638620410b146103cc578063949e8acd146103e157806395d89b41146103f6578063989a9d171461040b578063a9059cbb1461042c578063befc3e2b14610450578063c664f7f114610465578063e1456cb414610486578063e4849b32146104a7578063e9fad8ee146104bf578063eabd1ddb146104d4578063f2b79df9146104e9578063fdb5a03e14610545575b600080fd5b34801561017957600080fd5b5061018e600160a060020a036004351661055a565b60408051918252519081900360200190f35b3480156101ac57600080fd5b506101b5610595565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ef5781810151838201526020016101d7565b50505050905090810190601f16801561021c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023657600080fd5b5061018e610623565b34801561024b57600080fd5b50610254610629565b604080519115158252519081900360200190f35b34801561027457600080fd5b5061027d610632565b6040805160ff9092168252519081900360200190f35b34801561029f57600080fd5b5061018e600435600160a060020a0360243581169060443516610637565b3480156102c957600080fd5b506102d2610655565b005b3480156102e057600080fd5b5061018e600160a060020a036004351661078c565b34801561030157600080fd5b5061018e6107a7565b34801561031657600080fd5b5061018e600160a060020a03600435166107da565b34801561033757600080fd5b5061018e600160a060020a03600435166107f5565b34801561035857600080fd5b5061018e6004351515610807565b34801561037257600080fd5b5061018e600160a060020a0360043516610848565b34801561039357600080fd5b5061018e600160a060020a0360043516610863565b3480156103b457600080fd5b5061018e600435600160a060020a0360243516610875565b3480156103d857600080fd5b5061018e610894565b3480156103ed57600080fd5b5061018e6108c0565b34801561040257600080fd5b506101b56108d2565b34801561041757600080fd5b5061018e600160a060020a036004351661092d565b34801561043857600080fd5b50610254600160a060020a036004351660243561093f565b34801561045c57600080fd5b5061018e610aa0565b34801561047157600080fd5b5061018e600160a060020a0360043516610ab3565b34801561049257600080fd5b5061018e600160a060020a0360043516610ac5565b3480156104b357600080fd5b506102d2600435610ad7565b3480156104cb57600080fd5b506102d2610c50565b3480156104e057600080fd5b5061018e610c7d565b3480156104f557600080fd5b506104fe610d13565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b34801561055157600080fd5b506102d2610e14565b600160a060020a03166000908152600e6020908152604080832054600b90925290912054601154680100000000000000009102919091030490565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b60105490565b60025460ff1681565b601281565b600061064284610ed4565b61064d828486610fe6565b949350505050565b60008060006106646001610807565b1161066e57600080fd5b33915061067b6000610807565b600160a060020a038084166000818152600e602090815260408083208054680100000000000000008802019055600c825280832080549084905560125482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b5050604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600160a060020a03166000908152600d602052604090205490565b600080600080670de0b6b3a764000092506107ce6107c78460075461167c565b60646116a5565b915061064d83836116ba565b600160a060020a03166000908152600c602052604090205490565b600b6020526000908152604090205481565b6000338261081d576108188161055a565b610841565b600160a060020a0381166000908152600c602052604090205461083f8261055a565b015b9392505050565b600160a060020a03166000908152600b602052604090205490565b600f6020526000908152604090205481565b600061088083610ed4565b61088b823385610fe6565b90505b92915050565b600080600080670de0b6b3a764000092506108b46107c78460065461167c565b915061064d83836116cc565b6000336108cc81610848565b91505090565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b600d6020526000908152604090205481565b600080600061094c6108c0565b1161095657600080fd5b50336000818152600b602052604090205483111561097357600080fd5b600061097f6001610807565b111561098d5761098d610655565b610999601054846116ba565b601055600160a060020a0381166000908152600b60205260409020546109bf90846116ba565b600160a060020a038083166000908152600b602052604080822093909355908616815220546109ee90846116cc565b600160a060020a038581166000818152600b6020908152604080832095909555601180549487168352600e9091528482208054948902909403909355825491815292909220805492860290920190915554601054610a629190680100000000000000008602811515610a5c57fe5b046116cc565b601155604080518481529051600160a060020a0380871692908416916000805160206116da8339815191529181900360200190a35060019392505050565b336000908152600f602052604090205490565b600c6020526000908152604090205481565b600e6020526000908152604090205481565b6000806000806000610ae76108c0565b11610af157600080fd5b336000818152600b6020526040902054909450851115610b1057600080fd5b610b1f6107c78660075461167c565b9250610b2b85846116ba565b9150610b39601054866116ba565b601055600160a060020a0384166000908152600b6020526040902054610b5f90866116ba565b600160a060020a0385166000908152600b6020908152604080832093909355601154600e9091529181208054928802680100000000000000008602019283900390556010549192501015610bcf57610bcb601154601054680100000000000000008602811515610a5c57fe5b6011555b604080518681529051600091600160a060020a038716916000805160206116da8339815191529181900360200190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a25050505050565b336000818152600b602052604081205490811115610c7157610c7181610ad7565b610c79610655565b5050565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610ce257600080fd5b505af1158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b5051905090565b6000806000806000806000806000610d29610c7d565b610d31610623565b610d3a33610848565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b5051610dd53361055a565b610ddd610894565b610de56107a7565b610dee3361078c565b610df7336107da565b985098509850985098509850985098509850909192939495969798565b600080600080610e246001610807565b11610e2e57600080fd5b339250610e3b6000610807565b600160a060020a0384166000908152600e602090815260408083208054680100000000000000008602019055600c90915281208054908290559091019250610e84908484610fe6565b905082600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b601254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610f4757600080fd5b505af1158015610f5b573d6000803e3d6000fd5b505050506040513d6020811015610f7157600080fd5b50511515600114610fe357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b600080600080600080600080888a6003544210151561100a576002805460ff191690555b60025460ff161561138c57600160a060020a03811660009081526020819052604090205460ff16151560011480156110675750600160a060020a03811660009081526001602052604090205469d3c21bcecceda100000090830111155b151561107257600080fd5b600160a060020a03811660009081526001602052604090205461109590836116cc565b600160a060020a038216600090815260016020908152604080832093909355338252600f90522080548c0190556006546110d4906107c7908d9061167c565b98506110e56107c78a60095461167c565b97506110f66107c78a60085461167c565b965061110b89611106898b6116cc565b6116ba565b95506111178b8a6116ba565b94506801000000000000000086029350600085118015611141575060105461113f86826116cc565b115b151561114c57600080fd5b600a54600160a060020a03166000908152600c602052604090205461117190896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d16158015906111b357508b600160a060020a03168d600160a060020a031614155b1561122857600160a060020a038d166000908152600c60205260409020546111db90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d9052205461120a90886116cc565b600160a060020a038e166000908152600d6020526040902055611243565b61123286886116cc565b955068010000000000000000860293505b600060105411156112a75761125a601054866116cc565b601081905568010000000000000000870281151561127457fe5b6011805492909104909101905560105468010000000000000000870281151561129957fe5b0485028403840393506112ad565b60108590555b600160a060020a038c166000908152600b60205260409020546112d090866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a384995061166c565b6002805460ff19169055336000908152600f6020526040902080548c0190556006546113bd906107c7908d9061167c565b98506113ce6107c78a60095461167c565b97506113df6107c78a60085461167c565b96506113ef89611106898b6116cc565b95506113fb8b8a6116ba565b94506801000000000000000086029350600085118015611425575060105461142386826116cc565b115b151561143057600080fd5b600a54600160a060020a03166000908152600c602052604090205461145590896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d161580159061149757508b600160a060020a03168d600160a060020a031614155b1561150c57600160a060020a038d166000908152600c60205260409020546114bf90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d905220546114ee90886116cc565b600160a060020a038e166000908152600d6020526040902055611527565b61151686886116cc565b955068010000000000000000860293505b6000601054111561158b5761153e601054866116cc565b601081905568010000000000000000870281151561155857fe5b6011805492909104909101905560105468010000000000000000870281151561157d57fe5b048502840384039350611591565b60108590555b600160a060020a038c166000908152600b60205260409020546115b490866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b600082151561168d5750600061088e565b5081810281838281151561169d57fe5b041461088e57fe5b600081838115156116b257fe5b049392505050565b6000828211156116c657fe5b50900390565b8181018281101561088e57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582025bdbc6d092025c93165d5399ef4cf166651ba07160cf44faac94a2a73f30c5d0029

Deployed Bytecode Sourcemap

1984:14189:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6097:8;;;10881:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10881:301:0;-1:-1:-1;;;;;10881:301:0;;;;;;;;;;;;;;;;;;;;;4056:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4056:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4056:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9996:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9996:126:0;;;;2211:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2211:34:0;;;;;;;;;;;;;;;;;;;;;;4145:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4145:35:0;;;;;;;;;;;;;;;;;;;;;;;5715:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5715:333:0;;;-1:-1:-1;;;;;5715:333:0;;;;;;;;;;6957:522;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6957:522:0;;;;;;11987:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11987:184:0;-1:-1:-1;;;;;11987:184:0;;;;;11194:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11194:311:0;;;;12183:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12183:173:0;-1:-1:-1;;;;;12183:173:0;;;;;4481:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4481:54:0;-1:-1:-1;;;;;4481:54:0;;;;;10328:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10328:340:0;;;;;;;10680:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10680:189:0;-1:-1:-1;;;;;10680:189:0;;;;;4739:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4739:44:0;-1:-1:-1;;;;;4739:44:0;;;;;5404:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5404:299:0;;;-1:-1:-1;;;;;5404:299:0;;;;;11517:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11517:311:0;;;;10130:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10130:186:0;;;;4102:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4102:30:0;;;;4612:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4612:57:0;-1:-1:-1;;;;;4612:57:0;;;;;8689:1137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8689:1137:0;-1:-1:-1;;;;;8689:1137:0;;;;;;;11840:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11840:135:0;;;;4548:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4548:51:0;-1:-1:-1;;;;;4548:51:0;;;;;4682:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4682:44:0;-1:-1:-1;;;;;4682:44:0;;;;;7491:1186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7491:1186:0;;;;;6696:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6696:249:0;;;;9838:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9838:150:0;;;;15198:972;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15198:972:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6125:559;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6125:559:0;;;;10881:301;-1:-1:-1;;;;;11133:28:0;10994:7;11133:28;;;:10;:28;;;;;;;;;11078:19;:37;;;;;;;11060:15;;4461:7;11060:55;;11037:124;;;;11027:147;;10881:301::o;4056:33::-;;;;;;;;;;;;;;;-1:-1:-1;;4056:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9996:126::-;10102:12;;9996:126;:::o;2211:34::-;;;;;;:::o;4145:35::-;4178:2;4145:35;:::o;5715:333::-;5866:7;5892:25;5909:7;5892:16;:25::i;:::-;5935:105;5964:11;5991:16;6022:7;5935:14;:105::i;:::-;5928:112;5715:333;-1:-1:-1;;;;5715:333:0:o;6957:522::-;7030:24;7088:18;3196:1;3176:17;3188:4;3176:11;:17::i;:::-;:21;3168:30;;;;;;7057:10;7030:37;;7109:18;7121:5;7109:11;:18::i;:::-;-1:-1:-1;;;;;7148:28:0;;;;;;;:10;:28;;;;;;;;:64;;4461:7;7189:22;;7148:64;;;7247:16;:34;;;;;;;7302:38;;;;7361:5;;:44;;;;;;;;;;;;7233:48;;7361:44;;;;;;;;7233:48;;-1:-1:-1;7361:5:0;;;;;:14;;:44;;;;;7148:28;;7361:44;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;7361:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7361:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7431:40:0;;;;;;;;-1:-1:-1;;;;;7431:40:0;;;;;;;;;7361:44;7431:40;;;6957:522;;:::o;11987:184::-;-1:-1:-1;;;;;12132:31:0;12100:7;12132:31;;;:22;:31;;;;;;;11987:184::o;11194:311::-;11265:7;11291:14;11323:18;11404:19;11308:4;11291:21;;11344:49;11357:30;11370:6;11378:8;;11357:12;:30::i;:::-;11389:3;11344:12;:49::i;:::-;11323:70;;11426:32;11439:6;11447:10;11426:12;:32::i;12183:173::-;-1:-1:-1;;;;;12323:25:0;12291:7;12323:25;;;:16;:25;;;;;;;12183:173::o;4481:54::-;;;;;;;;;;;;;:::o;10328:340::-;10443:7;10496:10;10524:21;:136;;10631:29;10643:16;10631:11;:29::i;:::-;10524:136;;;-1:-1:-1;;;;;10594:34:0;;;;;;:16;:34;;;;;;10548:29;10611:16;10548:11;:29::i;:::-;:80;10524:136;10517:143;10328:340;-1:-1:-1;;;10328:340:0:o;10680:189::-;-1:-1:-1;;;;;10824:37:0;10791:7;10824:37;;;:19;:37;;;;;;;10680:189::o;4739:44::-;;;;;;;;;;;;;:::o;5404:299::-;5516:7;5542:25;5559:7;5542:16;:25::i;:::-;5595:100;5624:11;5651:10;5677:7;5595:14;:100::i;:::-;5588:107;;5404:299;;;;;:::o;11517:311::-;11587:7;11613:14;11645:18;11727:19;11630:4;11613:21;;11666:50;11679:31;11692:6;11700:9;;11679:12;:31::i;11666:50::-;11645:71;;11749:32;11762:6;11770:10;11749:12;:32::i;10130:186::-;10200:7;10253:10;10281:27;10253:10;10281:9;:27::i;:::-;10274:34;;10130:186;;:::o;4102:30::-;;;;;;;;;;;;;;;-1:-1:-1;;4102:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4612:57;;;;;;;;;;;;;:::o;8689:1137::-;8842:4;8865:24;3108:1;3095:10;:8;:10::i;:::-;:14;3087:23;;;;;;-1:-1:-1;8892:10:0;8940:37;;;;:19;:37;;;;;;8921:56;;;8913:65;;;;;;9019:1;8999:17;9011:4;8999:11;:17::i;:::-;:21;8995:64;;;9037:10;:8;:10::i;:::-;9094:43;9107:12;;9121:15;9094:12;:43::i;:::-;9079:12;:58;-1:-1:-1;;;;;9225:37:0;;;;;;:19;:37;;;;;;9212:68;;9264:15;9212:12;:68::i;:::-;-1:-1:-1;;;;;9158:37:0;;;;;;;:19;:37;;;;;;:122;;;;9366:31;;;;;;;9353:62;;9399:15;9353:12;:62::i;:::-;-1:-1:-1;;;;;9305:31:0;;;;;;;:19;:31;;;;;;;;:110;;;;9477:15;;;9436:28;;;;;:10;:28;;;;;;:75;;9477:33;;;9436:75;;;;;;9557:15;;9522:22;;;;;;;:69;;9557:33;;;9522:69;;;;;;9643:15;9692:12;;9630:75;;9643:15;4461:7;9661:27;;9660:44;;;;;;;;9630:12;:75::i;:::-;9612:15;:93;9731:55;;;;;;;;-1:-1:-1;;;;;9731:55:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9731:55:0;;;;;;;;-1:-1:-1;9814:4:0;;8689:1137;-1:-1:-1;;;8689:1137:0:o;11840:135::-;11956:10;11913:7;11946:21;;;:9;:21;;;;;;11840:135;:::o;4548:51::-;;;;;;;;;;;;;:::o;4682:44::-;;;;;;;;;;;;;:::o;7491:1186::-;7607:24;7741:18;7831:19;8137:22;3108:1;3095:10;:8;:10::i;:::-;:14;3087:23;;;;;;7634:10;7682:37;;;;:19;:37;;;;;;7634:10;;-1:-1:-1;7663:56:0;;;7655:65;;;;;;7762:58;7775:39;7788:15;7805:8;;7775:12;:39::i;7762:58::-;7741:79;;7853:41;7866:15;7883:10;7853:12;:41::i;:::-;7831:63;;7930:43;7943:12;;7957:15;7930:12;:43::i;:::-;7915:12;:58;-1:-1:-1;;;;;8061:37:0;;;;;;:19;:37;;;;;;8048:68;;8100:15;8048:12;:68::i;:::-;-1:-1:-1;;;;;7994:37:0;;;;;;:19;:37;;;;;;;;:122;;;;8185:15;;8272:10;:28;;;;;;:47;;8185:33;;;4461:7;8222:23;;8185:61;8272:47;;;;;;8344:12;;8185:61;;-1:-1:-1;;8340:169:0;;;8395:102;8426:15;;8470:12;;4461:7;8444:10;:22;8443:39;;;;;;8395:102;8377:15;:120;8340:169;8534:55;;;;;;;;8569:1;;-1:-1:-1;;;;;8534:55:0;;;-1:-1:-1;;;;;;;;;;;8534:55:0;;;;;;;;8605:64;;;;;;;;;;;;8665:3;8605:64;;;;;;-1:-1:-1;;;;;8605:64:0;;;;;;;;;;;;;7491:1186;;;;;:::o;6696:249::-;6769:10;6742:24;6818:37;;;:19;:37;;;;;;;6880:11;;6876:30;;;6893:13;6898:7;6893:4;:13::i;:::-;6927:10;:8;:10::i;:::-;6696:249;;:::o;9838:150::-;9950:5;;:30;;;;;;9974:4;9950:30;;;;;;9917:7;;-1:-1:-1;;;;;9950:5:0;;:15;;:30;;;;;;;;;;;;;;9917:7;9950:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;9950:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9950:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9950:30:0;;-1:-1:-1;9838:150:0;:::o;15198:972::-;15264:7;15283;15302;15321;15340;15359;15378;15396;15414;15514:19;:17;:19::i;:::-;15595:13;:11;:13::i;:::-;15671:21;15681:10;15671:9;:21::i;:::-;15748:5;;:27;;;;;;15764:10;15748:27;;;;;;-1:-1:-1;;;;;15748:5:0;;;;:15;;:27;;;;;;;;;;;;;;;:5;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;15748:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15748:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15748:27:0;15823:23;15835:10;15823:11;:23::i;:::-;15894:10;:8;:10::i;:::-;15953:11;:9;:11::i;:::-;16027:33;16049:10;16027:21;:33::i;:::-;16124:27;16140:10;16124:15;:27::i;:::-;15445:717;;;;;;;;;;;;;;;;;;15198:972;;;;;;;;;:::o;6125:559::-;6199:24;6257:18;6530:15;3196:1;3176:17;3188:4;3176:11;:17::i;:::-;:21;3168:30;;;;;;6226:10;6199:37;;6278:18;6290:5;6278:11;:18::i;:::-;-1:-1:-1;;;;;6317:28:0;;;;;;:10;:28;;;;;;;;:64;;4461:7;6358:22;;6317:64;;;6416:16;:34;;;;;;;6471:38;;;;6402:48;;;;-1:-1:-1;6548:49:0;;6328:16;6402:48;6548:14;:49::i;:::-;6530:67;;6638:16;-1:-1:-1;;;;;6623:53:0;;6656:10;6668:7;6623:53;;;;;;;;;;;;;;;;;;;;;;;;6125:559;;;:::o;5106:290::-;5222:5;;:122;;;;;;5259:10;5222:122;;;;5297:4;5222:122;;;;;;;;;;;;-1:-1:-1;;;;;5222:5:0;;;;:18;;:122;;;;;;;;;;;;;;;:5;;:122;;;5:2:-1;;;;30:1;27;20:12;5:2;5222:122:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5222:122:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5222:122:0;:130;;5348:4;5222:130;5200:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5106:290;:::o;12368:2822::-;12595:7;12669:27;12836:20;13021:22;13191:18;13372:23;13474:12;14745:22;12543:14;12559:16;2419:15;;2412:3;:22;;2408:78;;;2451:15;:23;;-1:-1:-1;;2451:23:0;;;2408:78;2510:15;;;;2506:529;;;-1:-1:-1;;;;;2565:30:0;;:12;:30;;;;;;;;;;;;;:38;;:30;:38;:178;;;;-1:-1:-1;;;;;;2636:45:0;;;;;;:27;:45;;;;;;2119:10;2636:62;;;2635:108;;2565:178;2556:189;;;;;;;;-1:-1:-1;;;;;2857:45:0;;;;;;:27;:45;;;;;;2844:75;;2904:14;2844:12;:75::i;:::-;-1:-1:-1;;;;;2778:45:0;;;;;;:27;:45;;;;;;;;:141;;;;12627:10;12617:21;;:9;:21;;;:39;;;;;;12783:9;;12709:114;;12736:71;;12642:14;;12736:12;:71::i;12709:114::-;12669:154;;12869:125;12896:82;12927:19;12948:15;;12896:12;:82::i;12869:125::-;12836:158;;13056:122;13083:79;13114:19;13135:12;;13083;:79::i;13056:122::-;13021:157;;13222:133;13249:19;13270:74;13301:14;13317:12;13270;:74::i;:::-;13222:12;:133::i;:::-;13191:164;;13408:49;13421:14;13437:19;13408:12;:49::i;:::-;13372:85;;4461:7;13489:10;:22;13474:37;;13560:1;13542:15;:19;:91;;;;-1:-1:-1;13621:12:0;;13575:43;13588:15;13621:12;13575;:43::i;:::-;:58;13542:91;13524:116;;;;;;;;13732:18;;-1:-1:-1;;;;;13732:18:0;13715:36;;;;:16;:36;;;;;;13702:64;;13753:12;13702;:64::i;:::-;13670:18;;-1:-1:-1;;;;;13670:18:0;;;13653:36;;;;:16;:36;;;;;:113;;;;13783:25;;;;;;:70;;;13837:16;-1:-1:-1;;;;;13822:31:0;:11;-1:-1:-1;;;;;13822:31:0;;;13783:70;13779:465;;;-1:-1:-1;;;;;13930:29:0;;;;;;:16;:29;;;;;;13917:59;;13961:14;13917:12;:59::i;:::-;-1:-1:-1;;;;;13871:29:0;;;;;;:16;:29;;;;;;;;:105;;;;14066:22;:35;;;;14053:65;;14103:14;14053:12;:65::i;:::-;-1:-1:-1;;;;;14001:35:0;;;;;;:22;:35;;;;;:117;13779:465;;;14156:40;14169:10;14181:14;14156:12;:40::i;:::-;14143:53;;4461:7;14214:10;:22;14207:29;;13779:465;14275:1;14260:12;;:16;14256:350;;;14310:43;14323:12;;14337:15;14310:12;:43::i;:::-;14295:12;:58;;;4461:7;14395:22;;14394:41;;;;;;;14374:15;:62;;14394:41;;;;14374:62;;;;;14517:12;;4461:7;14490:22;;14489:41;;;;;;;;14470:15;:61;14462:4;:70;14454:4;:79;14447:86;;14256:350;;;14568:12;:30;;;14256:350;-1:-1:-1;;;;;14677:37:0;;;;;;:19;:37;;;;;;14664:68;;14716:15;14664:12;:68::i;:::-;-1:-1:-1;;;;;14614:37:0;;;;;;:19;:37;;;;;;;;:118;;;;14780:15;;14839:10;:28;;;;;:47;;14780:33;;;14779:42;;;14839:47;;;;;14904:85;;;;;;;14779:42;;-1:-1:-1;14945:10:0;;-1:-1:-1;;;;;;;;;;;14904:85:0;;;;;;;;15114:11;-1:-1:-1;;;;;15007:140:0;15033:16;-1:-1:-1;;;;;15007:140:0;;15061:14;15087:15;15137:3;15007:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15167:15;15160:22;;2506:529;;;2984:15;:23;;-1:-1:-1;;2984:23:0;;;12627:10;3002:5;12617:21;;;:9;:21;;;;;:39;;;;;;12783:9;;12709:114;;12736:71;;12642:14;;12736:12;:71::i;12709:114::-;12669:154;;12869:125;12896:82;12927:19;12948:15;;12896:12;:82::i;12869:125::-;12836:158;;13056:122;13083:79;13114:19;13135:12;;13083;:79::i;13056:122::-;13021:157;;13222:133;13249:19;13270:74;13301:14;13317:12;13270;:74::i;13222:133::-;13191:164;;13408:49;13421:14;13437:19;13408:12;:49::i;:::-;13372:85;;4461:7;13489:10;:22;13474:37;;13560:1;13542:15;:19;:91;;;;-1:-1:-1;13621:12:0;;13575:43;13588:15;13621:12;13575;:43::i;:::-;:58;13542:91;13524:116;;;;;;;;13732:18;;-1:-1:-1;;;;;13732:18:0;13715:36;;;;:16;:36;;;;;;13702:64;;13753:12;13702;:64::i;:::-;13670:18;;-1:-1:-1;;;;;13670:18:0;;;13653:36;;;;:16;:36;;;;;:113;;;;13783:25;;;;;;:70;;;13837:16;-1:-1:-1;;;;;13822:31:0;:11;-1:-1:-1;;;;;13822:31:0;;;13783:70;13779:465;;;-1:-1:-1;;;;;13930:29:0;;;;;;:16;:29;;;;;;13917:59;;13961:14;13917:12;:59::i;:::-;-1:-1:-1;;;;;13871:29:0;;;;;;:16;:29;;;;;;;;:105;;;;14066:22;:35;;;;14053:65;;14103:14;14053:12;:65::i;:::-;-1:-1:-1;;;;;14001:35:0;;;;;;:22;:35;;;;;:117;13779:465;;;14156:40;14169:10;14181:14;14156:12;:40::i;:::-;14143:53;;4461:7;14214:10;:22;14207:29;;13779:465;14275:1;14260:12;;:16;14256:350;;;14310:43;14323:12;;14337:15;14310:12;:43::i;:::-;14295:12;:58;;;4461:7;14395:22;;14394:41;;;;;;;14374:15;:62;;14394:41;;;;14374:62;;;;;14517:12;;4461:7;14490:22;;14489:41;;;;;;;;14470:15;:61;14462:4;:70;14454:4;:79;14447:86;;14256:350;;;14568:12;:30;;;14256:350;-1:-1:-1;;;;;14677:37:0;;;;;;:19;:37;;;;;;14664:68;;14716:15;14664:12;:68::i;:::-;-1:-1:-1;;;;;14614:37:0;;;;;;:19;:37;;;;;;;;:118;;;;14780:15;;14839:10;:28;;;;;:47;;14780:33;;;14779:42;;;14839:47;;;;;14904:85;;;;;;;14779:42;;-1:-1:-1;14945:10:0;;-1:-1:-1;;;;;;;;;;;14904:85:0;;;;;;;;15114:11;-1:-1:-1;;;;;15007:140:0;15033:16;-1:-1:-1;;;;;15007:140:0;;15061:14;15087:15;15137:3;15007:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15167:15;15160:22;;3022:1;12368:2822;;;;;;;;;;;;;;:::o;325:263::-;438:9;470:6;;466:47;;;-1:-1:-1;500:1:0;493:8;;466:47;-1:-1:-1;527:5:0;;;531:1;527;:5;550;;;;;;;;:10;543:18;;;600:159;713:7;750:1;746;:5;;;;;;;;;600:159;-1:-1:-1;;;600:159:0:o;771:184::-;884:7;917:6;;;;910:14;;;;-1:-1:-1;942:5:0;;;771:184::o;967:202::-;1112:5;;;1135:6;;;;1128:14;;

Swarm Source

bzzr://25bdbc6d092025c93165d5399ef4cf166651ba07160cf44faac94a2a73f30c5d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.