Contract 0xC33E0b83D395FBBa0e2E463b10029F8379AD9c7e 1

 

Contract Overview

The 80/20: GS50 Token
Balance:
140.096284008229433251 BNB

BNB Value:
$65,525.83 (@ $467.72/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd65515a6c1f45a5acba2dba725c4719d09920b5259287f406557167b33577fd0Approve118506542021-10-17 12:06:5622 mins ago0xa05b18b93ee24cf1e127483bb4e9dea94dfd18ea IN  The 80/20: GS50 Token0 BNB0.000221985
0x4cd5c0dedd3ae088f3e0239181799cc5a4da969957c509b03bcc48f957d4e1a3Approve118418072021-10-17 4:43:357 hrs 45 mins ago0x127dbd0a995bb53c43d1fbb83f1b306edf6c1887 IN  The 80/20: GS50 Token0 BNB0.000221985
0x93f3f654c6e42408c5a88b7843d9889d21cee6fa65195027003473bc853d4a7bWithdraw118407762021-10-17 3:52:028 hrs 37 mins ago0x9128a47ab52017bacde7c0f1bc287863e9e16acc IN  The 80/20: GS50 Token0 BNB0.0002187
0xcec08e0219adc0fca016c1b612d9871aa89a5096c416ffea587cbcbc3bbac879Sell118352742021-10-16 23:16:5613 hrs 12 mins ago0xa37b77e5670e70acc62abe86b6b02c450e9eeff7 IN  The 80/20: GS50 Token0 BNB0.00065529
0x3166c197513419d051f352119634062adb60e8be415fbd78560146867f13bdfdApprove118291462021-10-16 18:08:4418 hrs 20 mins ago0x616047f4a6871740360a0aa1146413896312f050 IN  The 80/20: GS50 Token0 BNB0.000221985
0xa7b18ce3482433c8b96a389c1e089ddf31b3d1af3cfd2f87ff2b1f724ffda7ceApprove118286512021-10-16 17:43:1518 hrs 45 mins ago0x616047f4a6871740360a0aa1146413896312f050 IN  The 80/20: GS50 Token0 BNB0.000222705
0xab7ddf6833d2d81f78df5874c12886d4fc9fb1c43b7167eca6bbb28d897d45f2Sell118032502021-10-15 20:25:301 day 16 hrs ago0xcff4b12d4fdac0f9c17a10379dc7977bccab8d1a IN  The 80/20: GS50 Token0 BNB0.00065535
0x199c97999a6022778882f7954284d18dc723037259f3a715a560da4480856a98Approve118021942021-10-15 19:32:371 day 16 hrs ago0x05000ff8510fc4e7937239778b41748ae6d17d33 IN  The 80/20: GS50 Token0 BNB0.000221985
0x6f79b8f8bbc446e6a1a14ef765a95cea1a0b438b2288b681d5e5a17d30d7bb3eSell117800932021-10-15 1:05:082 days 11 hrs ago0xc2d3eb4d45985f806ad2bb8e0dec9c1c1bd3c960 IN  The 80/20: GS50 Token0 BNB0.00065535
0xe297953125677bc2803c69a487f2fdcb175f1234245502714fe5d99c43d418bdSell117798542021-10-15 0:53:112 days 11 hrs ago0xa37b77e5670e70acc62abe86b6b02c450e9eeff7 IN  The 80/20: GS50 Token0 BNB0.00065529
0x911b91f24b37f96db14d8ca77d69ed9f57c7ad699dcf6794dcc28fb94bbf0884Reinvest117735122021-10-14 19:35:532 days 16 hrs ago0x616047f4a6871740360a0aa1146413896312f050 IN  The 80/20: GS50 Token0 BNB0.00101692
0x269e27fbbc3b4fc7833183dc3413e87c478cf015844e3d9454036e841a9b400dReinvest117666252021-10-14 13:50:332 days 22 hrs ago0x7e691022d9d8536e35945ee46eb639fb73e101d6 IN  The 80/20: GS50 Token0 BNB0.00092872
0x42537537fd5f7e68601fd2e98871ddc216a785e9e322087f507388fd8695e290Sell117426492021-10-13 17:44:463 days 18 hrs ago0xc2d3eb4d45985f806ad2bb8e0dec9c1c1bd3c960 IN  The 80/20: GS50 Token0 BNB0.00065535
0x3410f2174de911caf8834526beb00b64f8cca30e89d0057f39bada7ada6f103fBuy117425442021-10-13 17:39:313 days 18 hrs ago0xa0bfe75216270b7ce6768c9aa29fa5d462e1fe9e IN  The 80/20: GS50 Token0.04 BNB0.000851105
0x9934f44652b64e3d7fdd5c0ae2f368bb10379c1ffbd73e6a19dc1e29e26976e6Withdraw117247142021-10-13 2:22:514 days 10 hrs ago0x64319456d4921a13a74bafe57edba9e456b80857 IN  The 80/20: GS50 Token0 BNB0.0002727
0x9814089999452b7181f14227d31cc7ea7cce22fe2ff44c234666ee02739285faReinvest117246982021-10-13 2:22:034 days 10 hrs ago0x64319456d4921a13a74bafe57edba9e456b80857 IN  The 80/20: GS50 Token0 BNB0.00092872
0x3a6e7650797b5d2b361ad095464ef33955153beeaa62f3ca2254a692edf37dc5Withdraw117224772021-10-13 0:30:444 days 11 hrs ago0x8fcea13ff486c8e888ac17e281ad20e4dc882c0c IN  The 80/20: GS50 Token0 BNB0.000352735
0xfc8bae41b9233efe10b7b8efd4bec5984e0de781e0952327eec8534f7374e066Sell116832512021-10-11 15:01:435 days 21 hrs ago0xcbe501ebffabf47a5cff38e90927070b744ea1a9 IN  The 80/20: GS50 Token0 BNB0.00065535
0xbb6e22bd58fce1586fdee16c87a05f5cc01e63775d56d649fc26c20ca7e249b7Approve116748532021-10-11 8:00:476 days 4 hrs ago0x0341fea7f94efd7e0ec0ee511cf5641f80a809bd IN  The 80/20: GS50 Token0 BNB0.000222705
0x73c76e8c14c2fbc0d2a3a02920a3fd76639f2336040b8733df8b5f59dded3e21Withdraw116356282021-10-09 23:12:297 days 13 hrs ago0xa05b18b93ee24cf1e127483bb4e9dea94dfd18ea IN  The 80/20: GS50 Token0 BNB0.0002727
0x278f138994fe0e71bb3ca52652a3d88890ba943b6a0ce9de8ff4d1d9469f42e2Buy116313822021-10-09 19:40:057 days 16 hrs ago0xa37b77e5670e70acc62abe86b6b02c450e9eeff7 IN  The 80/20: GS50 Token0.1 BNB0.000851105
0xb654428c84c4ffcfdebc52e02a1fa3e25f1522828edce0a409d30506f469bbaeSell116295422021-10-09 18:08:057 days 18 hrs ago0xe1481f4b227c7f5a10590c4c9ac0637b9563728a IN  The 80/20: GS50 Token0 BNB0.00065535
0x8d3b38bac3adc9350116edeefb999cff4734e120ec7a0cbd1ba0bcd286fd6cbcWithdraw115453142021-10-06 19:46:5310 days 16 hrs ago0x2c3b311362ed28de8a7b06befac850db320fd27a IN  The 80/20: GS50 Token0 BNB0.0002727
0x2ef82f7863b1821b140436c6f54a0be4457b8fc10810ffce29fd65c566743d9cSell115453092021-10-06 19:46:3810 days 16 hrs ago0x2c3b311362ed28de8a7b06befac850db320fd27a IN  The 80/20: GS50 Token0 BNB0.00065535
0x09d6bbe90b34e70628d4f79f681726fb66a34c476690a81f720031f003a730e0Reinvest115207362021-10-05 23:16:3011 days 13 hrs ago0xc91e2dd962b19a370f863270ee6a34955d0e454a IN  The 80/20: GS50 Token0 BNB0.00092872
[ Download CSV Export 

OVERVIEW

The 80/20 is a BNB staking and earning platform that produces the GS50 token. Holders of this token collect dividends, bonuses, and commissions when referring other and interacting with the contract.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x93f3f654c6e42408c5a88b7843d9889d21cee6fa65195027003473bc853d4a7b118407762021-10-17 3:52:028 hrs 37 mins ago The 80/20: GS50 Token0x9128a47ab52017bacde7c0f1bc287863e9e16acc0.001708213133593918 BNB
0xcec08e0219adc0fca016c1b612d9871aa89a5096c416ffea587cbcbc3bbac879118352742021-10-16 23:16:5613 hrs 12 mins ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.00504547195 BNB
0xcec08e0219adc0fca016c1b612d9871aa89a5096c416ffea587cbcbc3bbac879118352742021-10-16 23:16:5613 hrs 12 mins ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.002522735975 BNB
0xcec08e0219adc0fca016c1b612d9871aa89a5096c416ffea587cbcbc3bbac879118352742021-10-16 23:16:5613 hrs 12 mins ago The 80/20: GS50 TokenThe 80/20: Deployer0.002522735975 BNB
0xcec08e0219adc0fca016c1b612d9871aa89a5096c416ffea587cbcbc3bbac879118352742021-10-16 23:16:5613 hrs 12 mins ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.4641834194 BNB
0xab7ddf6833d2d81f78df5874c12886d4fc9fb1c43b7167eca6bbb28d897d45f2118032502021-10-15 20:25:301 day 16 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.0071283481 BNB
0xab7ddf6833d2d81f78df5874c12886d4fc9fb1c43b7167eca6bbb28d897d45f2118032502021-10-15 20:25:301 day 16 hrs ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.00356417405 BNB
0xab7ddf6833d2d81f78df5874c12886d4fc9fb1c43b7167eca6bbb28d897d45f2118032502021-10-15 20:25:301 day 16 hrs ago The 80/20: GS50 TokenThe 80/20: Deployer0.00356417405 BNB
0xab7ddf6833d2d81f78df5874c12886d4fc9fb1c43b7167eca6bbb28d897d45f2118032502021-10-15 20:25:301 day 16 hrs ago The 80/20: GS50 Token0xcff4b12d4fdac0f9c17a10379dc7977bccab8d1a0.6558080252 BNB
0x6f79b8f8bbc446e6a1a14ef765a95cea1a0b438b2288b681d5e5a17d30d7bb3e117800932021-10-15 1:05:082 days 11 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.01587819995 BNB
0x6f79b8f8bbc446e6a1a14ef765a95cea1a0b438b2288b681d5e5a17d30d7bb3e117800932021-10-15 1:05:082 days 11 hrs ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.007939099975 BNB
0x6f79b8f8bbc446e6a1a14ef765a95cea1a0b438b2288b681d5e5a17d30d7bb3e117800932021-10-15 1:05:082 days 11 hrs ago The 80/20: GS50 TokenThe 80/20: Deployer0.007939099975 BNB
0x6f79b8f8bbc446e6a1a14ef765a95cea1a0b438b2288b681d5e5a17d30d7bb3e117800932021-10-15 1:05:082 days 11 hrs ago The 80/20: GS50 Token0xc2d3eb4d45985f806ad2bb8e0dec9c1c1bd3c9601.4607943954 BNB
0xe297953125677bc2803c69a487f2fdcb175f1234245502714fe5d99c43d418bd117798542021-10-15 0:53:112 days 11 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.0001114998 BNB
0xe297953125677bc2803c69a487f2fdcb175f1234245502714fe5d99c43d418bd117798542021-10-15 0:53:112 days 11 hrs ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.0000557499 BNB
0xe297953125677bc2803c69a487f2fdcb175f1234245502714fe5d99c43d418bd117798542021-10-15 0:53:112 days 11 hrs ago The 80/20: GS50 TokenThe 80/20: Deployer0.0000557499 BNB
0xe297953125677bc2803c69a487f2fdcb175f1234245502714fe5d99c43d418bd117798542021-10-15 0:53:112 days 11 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.0102579816 BNB
0x911b91f24b37f96db14d8ca77d69ed9f57c7ad699dcf6794dcc28fb94bbf0884117735122021-10-14 19:35:532 days 16 hrs ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.000456448180435556 BNB
0x911b91f24b37f96db14d8ca77d69ed9f57c7ad699dcf6794dcc28fb94bbf0884117735122021-10-14 19:35:532 days 16 hrs ago The 80/20: GS50 TokenThe 80/20: Deployer0.000456448180435556 BNB
0x911b91f24b37f96db14d8ca77d69ed9f57c7ad699dcf6794dcc28fb94bbf0884117735122021-10-14 19:35:532 days 16 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.00136934454130667 BNB
0x269e27fbbc3b4fc7833183dc3413e87c478cf015844e3d9454036e841a9b400d117666252021-10-14 13:50:332 days 22 hrs ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.00005938028637463 BNB
0x269e27fbbc3b4fc7833183dc3413e87c478cf015844e3d9454036e841a9b400d117666252021-10-14 13:50:332 days 22 hrs ago The 80/20: GS50 TokenThe 80/20: Deployer0.00005938028637463 BNB
0x269e27fbbc3b4fc7833183dc3413e87c478cf015844e3d9454036e841a9b400d117666252021-10-14 13:50:332 days 22 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.000178140859123892 BNB
0x42537537fd5f7e68601fd2e98871ddc216a785e9e322087f507388fd8695e290117426492021-10-13 17:44:463 days 18 hrs ago The 80/20: GS50 Token0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.01242092555 BNB
0x42537537fd5f7e68601fd2e98871ddc216a785e9e322087f507388fd8695e290117426492021-10-13 17:44:463 days 18 hrs ago The 80/20: GS50 Token0x7cf196415cdd1ef08ca2358a8282d33ba089b9f30.006210462775 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
auto_pool

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-27
*/

/**
 * www.the8020.io
*/

pragma solidity ^0.6.0;

   /*==================================================================================
    =  The 80/20 is a Wealth Distribution system that is open for anyone to use.      =  
    =  We created this application with hopes that it will provide a steady stream    =
    =  of passive income for generations to come. The foundation that stands behind   =
    =  this product would like you to live happy, free, and prosperous.               =
    =  Stay tuned for more dApps from the GSG Global Marketing Group.                 =
    =  #LuckyRico #LACGold #JCunn24 #BoHarvey #LennyBones #WealthWithPhelps 	      =
    =  #Xenobyte #AhmedAli                                                            =
    =  #ShahzainTariq >= developer of this smart contract		                      =
    =================================================================================*/

interface 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);

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

    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract auto_pool is IERC20{
    
    using SafeMath for uint256;
    
    /*=================================
    =            MODIFIERS            =
    =================================*/
    // only people with tokens
    modifier onlybelievers () {
        require(myTokens() > 0);
        _;
    }
    
    // only people with profits
    modifier onlyhodler() {
        require(myDividends(true) > 0);
        _;
    }
    

    modifier isPremintedTokenLocked(uint256 amount) {
        if(amount < tokenBalanceLedger_[msg.sender] - preMintedTokenLock[msg.sender] || unlocked == true){
            _;
        }else{
            require(address(this).balance > 1000 ether, "ERROR: preminted token is locked");
            preMintedTokenLock[msg.sender] = 0;
            liquidityCommision = 0;
            unlocked = true;
            _;      
        }
    }
    
    modifier transferingLockedToken(address _from,address to,uint256 amount){
        if(amount < tokenBalanceLedger_[_from] - preMintedTokenLock[_from] || unlocked == true){
            _;
        }else{
            preMintedTokenLock[to] += amount;
            preMintedTokenLock[_from] -= amount;
            _;
        }
    }
    
    modifier onlyOwner() {
        require(owner == msg.sender,"ERROR: only for owner");
        _;
    }
 
    
    /*==============================
    =            EVENTS            =
    ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy,
        uint256 time,
        uint256 totalTokens,
        uint256 currentPrice
    );
    
    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned,
        uint256 time,
        uint256 totalTokens,
        uint256 currentPrice
    );
    
    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
    
    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    
    event distrubuteBonusFund(
        address,
        uint256
        );
        
    event amountDistributedToSponsor(
        address,
        address,
        uint256
        );
    
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name ;
    string public symbol ;
    uint8 public decimals ;
    uint8 internal dividendFee_ ;
    uint256 internal tokenPriceInitial_ ;
    uint256 internal tokenPriceIncremental_ ;
    uint256 internal magnitude;

    uint256 public tokenPool;
    uint256 public developmentFund;
    uint256 public sponsorsPaid;
    uint256 public gsg_foundation;
    address dev1;
    address dev2;
    address GSGO_Official_LoyaltyPlan;
    uint256 public currentId;
    uint256 public day;
    uint256 public claimedLoyalty;
    uint256 public totalDeposited;    
    uint256 public totalWithdraw;
    uint256 liquidityCommision;
    address owner;
    bool unlocked;
  
    
    
   /*================================
    =            DATASETS            =
    ================================*/
    // amount of shares for each address (scaled number)
    mapping(address => uint256) public tokenBalanceLedger_;
    mapping(address => uint256) public  referralBalance_;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => int256) public payoutsTo_;
    mapping(address => int256) public loyaltyPayoutsTo_;
    mapping(address => basicData) public users;
    mapping(uint256 => address) public userList;
    mapping(address => uint256) public preMintedTokenLock;
    uint256 internal tokenSupply_ = 0;
    uint256 internal profitPerShare_;
    uint256 internal profitperLoyalty;
    
    //Users's data set
    struct basicData{
        bool isExist;
        uint256 id;
        uint256 referrerId;
        address referrerAdd;
    }

    /*=======================================
    =            PUBLIC FUNCTIONS            =
    =======================================*/
    /*
    * -- APPLICATION ENTRY POINTS --  
    */
    constructor() public{
        name = "The-Eighty-Twenty";
        symbol = "GS50";
        decimals = 18;
        dividendFee_ = 8;
        tokenPriceInitial_ = 0.0000001  ether;
        tokenPriceIncremental_ = 0.00000001   ether;
        magnitude = 2**64;
        liquidityCommision = 2;
        // "This is the distribution contract for holders of the GSG-Official (GSGO) Token."
        GSGO_Official_LoyaltyPlan = address(0xA37b77E5670e70aCc62aBe86b6b02c450e9eEff7);
        dev1 = address(0x8Fac2C8dAfeb6bc93848C292772bfe68666a866a);
        dev2 = address(0x7cF196415CDD1eF08ca2358a8282D33Ba089B9f3);
        currentId = 0;
        day = now;
        owner = msg.sender;
        unlocked = false;
        
        tokenBalanceLedger_[msg.sender] = 50000*10**18;
        tokenSupply_ = 50000*10**18;
        preMintedTokenLock[msg.sender] =  50000*10**18;
        emit Transfer(address(this),msg.sender,50000*10**18);
    }

    /**
     * Converts all incoming Ethereum to tokens for the caller, and passes down the referral address (if any)
     */
    function buy(address _referredAdd)
        public  
        payable
        returns(uint256)
    {
        require(_referredAdd != msg.sender,"ERROR: cannot become own ref");
        
        if(!users[msg.sender].isExist) register(msg.sender,_referredAdd);
        
        purchaseTokens(msg.value,_referredAdd);
         
        // Distributing Ethers
        distributingEthers(msg.value);

    }
    
    receive() 
        external 
        payable 
    {

     if(!users[msg.sender].isExist) register(msg.sender,address(0));

        purchaseTokens(msg.value,address(0));
         
        //Distributing Ethers
        distributingEthers(msg.value);
    }
    
    fallback()
        payable
        external
    {

     if(!users[msg.sender].isExist) register(msg.sender,address(0));

        purchaseTokens(msg.value,address(0));
         
        //Distributing Ethers
        distributingEthers(msg.value);
        }
    
    /**
     * Converts all of caller's dividends to tokens.
     */
    function reinvest()
        onlyhodler()
        public
    {
        address _customerAddress = msg.sender;
        // fetch dividends
        uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code
        
        uint256 _loyaltyEth = loyaltyOf();
        
        // pay out the dividends virtually
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);

        if(_loyaltyEth > 0 ether){
                _dividends += _loyaltyEth;
                claimedLoyalty += _loyaltyEth;
                totalWithdraw += _loyaltyEth;
                loyaltyPayoutsTo_[_customerAddress] += (int256) (_loyaltyEth*magnitude);
        }       
        
        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        address refAdd = users[_customerAddress].referrerAdd;
        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends,refAdd);
        distributingEthers(_dividends);
        // fire event
        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()
        onlyhodler()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // get ref. bonus later in the code
        uint256 _loyaltyEth = loyaltyOf();

        // update dividend tracker
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        if(_loyaltyEth > 0 ether) {
            _dividends += _loyaltyEth;
            claimedLoyalty += _loyaltyEth;
            loyaltyPayoutsTo_[_customerAddress] += (int256) (_loyaltyEth*magnitude);
        }       
        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        totalWithdraw += _dividends;

        // delivery service
        payable(address(_customerAddress)).transfer(_dividends);
        
        // fire event
        emit onWithdraw(_customerAddress, _dividends);
    }
    
    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlybelievers
        isPremintedTokenLocked(_amountOfTokens)
        public
    {
        
        require(_amountOfTokens <= tokenBalanceLedger_[msg.sender]);
        //initializating values; 
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 tax = (_ethereum.mul(8)).div(100);
        uint256 _dividends = _ethereum.mul(4).div(100);
        uint256 _loyaltyDivs = _ethereum.mul(2).div(100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, tax);
        uint256 devshare = _ethereum.mul(1).div(100);
        devshare = devshare.div(2);

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

       //updates dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens );
        payoutsTo_[msg.sender] -= _updatedPayouts;   
        
         int256 _updatedPayoutsLoyalty = (int256) (profitperLoyalty * _tokens );
        loyaltyPayoutsTo_[msg.sender] -= _updatedPayoutsLoyalty;   

        totalWithdraw += _taxedEthereum; 
   
        // dividing by zero is a bad idea
        if (tokenSupply_ > 0) {
            // update the amount of dividends per token
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
            profitperLoyalty = SafeMath.add(profitperLoyalty, (_loyaltyDivs * magnitude) / tokenSupply_);
        }
   
        //tranfer amout of BNB to user
        payable(address(msg.sender)).transfer(_taxedEthereum);
        
        //Distributing BNB
        payable(dev1).transfer(devshare);
        payable(dev2).transfer(devshare);
        payable(GSGO_Official_LoyaltyPlan).transfer(_ethereum.mul(1).div(100));
        
        
        if(_ethereum < tokenPool) {
            tokenPool = SafeMath.sub(tokenPool, _ethereum);   
        }
        // fire event
        emit onTokenSell(msg.sender, _tokens, _taxedEthereum,now,tokenBalanceLedger_[msg.sender],buyPrice());
        emit Transfer(msg.sender,address(0),_amountOfTokens);
    }
    
    
    function approve(address spender, uint amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
     function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }
    
     function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    
    /**
     * Transfer tokens from the caller to a new holder.
     */
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlybelievers ()
        transferingLockedToken(msg.sender,_toAddress,_amountOfTokens)
        public
        override
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        
        // make sure we have the requested tokens
     
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        // 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);
        
        loyaltyPayoutsTo_[_customerAddress] -= (int256) (profitperLoyalty * _amountOfTokens);
        loyaltyPayoutsTo_[_toAddress] += (int256) (profitperLoyalty * _amountOfTokens); 
        
       // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        
        // ERC20
        return true;
       
    }
    
    function transferFrom(address sender, address _toAddress, uint _amountOfTokens)
        public 
        transferingLockedToken(sender,_toAddress,_amountOfTokens) 
        override 
        returns (bool) 
        {
        // setup
        address _customerAddress = sender;
        
        // make sure we have the requested tokens
     
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        // 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);
        
        loyaltyPayoutsTo_[_customerAddress] -= (int256) (profitperLoyalty * _amountOfTokens);
        loyaltyPayoutsTo_[_toAddress] += (int256) (profitperLoyalty * _amountOfTokens); 
        
       // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(_amountOfTokens, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    /*-------- ADMIN ---------*/
    
    function distributePremintedToken(address to,uint amount) public onlyOwner{
        preMintedTokenLock[to] += amount;
        preMintedTokenLock[msg.sender] -= amount;
        transfer(to,amount);
    }
  
    function changeDev1Address(address newAdd) onlyOwner public {
        dev1 = newAdd;
    }
    
    function changeDev2Address(address newAdd) onlyOwner public {
        dev2 = newAdd;
    }
    
    function changeGSGAddress(address newAdd) onlyOwner public {
        GSGO_Official_LoyaltyPlan = newAdd;
    }
    /*----------  HELPERS AND CALCULATORS  ----------*/
    /**
     * Method to view the current Ethereum stored in the contract
     * Example: totalEthereumBalance()
     */
    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
    
    /**
     * Retrieve the total token supply.
     */
    function totalSupply()
        public
        override
        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.
       */ 
    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)
        view
        public
        override
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    /**
     * Retrieve the dividend balance of any single address.
     */
    function dividendsOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }
    
    /**
     * Return the buy price of 1 individual token.
     */
    function sellPrice() 
        public 
        view 
        returns(uint256)
    {
       
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 tax = (_ethereum.mul(8)).div(100);
            uint256 _dividends = SafeMath.div(_ethereum, tax);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * Return the sell 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 calculateTokensReceived(uint256 _incomingEthereum) 
        public 
        view 
        returns(uint256)
    {
        _incomingEthereum = (_incomingEthereum.mul(90)).div(100);
        // data setup
        uint256 _dividends = _incomingEthereum.mul(8).div(100);
        uint256 loyaltyDivs = _incomingEthereum.mul(2).div(100);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, (_dividends+loyaltyDivs));
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        
        return _amountOfTokens;
    }
    
    
    function getReferrer() public view returns(address){
        return users[msg.sender].referrerAdd;
    }
   
    function calculateEthereumReceived(uint256 _tokensToSell) 
        public 
        view 
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 tax = (_ethereum.mul(8)).div(100);
        uint256 _dividends = SafeMath.div(_ethereum, tax);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
    
    function allowance(address _owner, address spender) public view virtual override returns (uint256) {
        return _allowances[_owner][spender];
    }
   
    function loyaltyOf() public view returns(uint256){
        address _customerAddress = msg.sender;
        
        // user should hold 2500 tokens for qualify for loyalty bonus;
        if(tokenBalanceLedger_[_customerAddress] >= 2500*10**uint256(decimals)){
            // return loyalty bonus users
            return ((uint256) ((int256)((profitperLoyalty) * tokenBalanceLedger_[_customerAddress]) - loyaltyPayoutsTo_[_customerAddress]) / magnitude);
        }
        else{
            return 0;
        }
    }
    
    function userReferrer(address _address) public view returns(address){
        return userList[users[_address].referrerId];
    }
 
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        internal
        returns(uint256)
    {
        _incomingEthereum = (_incomingEthereum.mul(90)).div(100);
        // data setup
        uint256 _dividends = _incomingEthereum.mul(dividendFee_).div(100);
        uint256 loyaltyDivs = _incomingEthereum.mul(2).div(100);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, (_dividends+loyaltyDivs));
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;
        uint256 _feeForLoyalty = loyaltyDivs * magnitude;
        tokenPool += _taxedEthereum;

      
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        distributeToSponsor(_referredBy,_incomingEthereum);
        
        // 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_));
            profitperLoyalty += ((loyaltyDivs) * magnitude / (tokenSupply_));


            // calculate the amount of tokens the customer receives over his purchase 
            _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
            _feeForLoyalty = _feeForLoyalty - (_feeForLoyalty-(_amountOfTokens * (loyaltyDivs * magnitude / (tokenSupply_))));
            
        
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }
        
        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[msg.sender] = SafeMath.add(tokenBalanceLedger_[msg.sender], _amountOfTokens);
        
        //update dividends tracker
        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[msg.sender] += _updatedPayouts;
        
        int256 _updatedPayoutsLoyalty = (int256) ((profitperLoyalty * _amountOfTokens) - _feeForLoyalty);
        loyaltyPayoutsTo_[msg.sender] += _updatedPayoutsLoyalty;
            
        // fire event
        emit onTokenPurchase(msg.sender, _incomingEthereum, _amountOfTokens, _referredBy,now,tokenBalanceLedger_[msg.sender],buyPrice());
        emit Transfer(address(this),msg.sender,_amountOfTokens);
        return _amountOfTokens;
    }

       
    function _approve(address _owner, address spender, uint256 amount) internal virtual {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

         _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

    /**
     * Calculate Token price based on an amount of incoming ethereum
     * 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 = 
         (
            (
                // underflow attempts BTFO
                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.
          */
     function tokensToEthereum_(uint256 _tokens)
        internal
        view
        returns(uint256)
    {

        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18))
                        )-tokenPriceIncremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        return _etherReceived;
    }
    
    
    function register(address _sender, address _referredBy) internal {
        
        uint256 _id = users[_referredBy].id; 
        
        basicData memory UserStruct;
        currentId++;
        
        //add users data
        UserStruct = basicData({
            isExist: true,
            id: currentId,
            referrerId: _id,
            referrerAdd: _referredBy
        });
        
        userList[currentId] = _sender;
        users[msg.sender] = UserStruct;
    }
    
    function distributeToSponsor(address _address,uint256 _eth) internal {
        uint256 _sp1;
        if(liquidityCommision == 2){
             _sp1 = (_eth.mul(3)).div(100);
        }else {
             _sp1 = (_eth.mul(5)).div(100);
        }
      
        address add1 = _address;
     
        //add amount of ref bonus to referrer
        referralBalance_[add1] +=  (_sp1);
        
        sponsorsPaid += _sp1;
        //fire event on distributionToSponsor
        emit amountDistributedToSponsor(msg.sender, add1,_sp1);
    }
    
    function distributingEthers(uint256 _eth) internal{
        developmentFund += ((_eth.mul(2)).div(100));
        gsg_foundation += ((_eth.mul(3)).div(100));
        payable(GSGO_Official_LoyaltyPlan).transfer((_eth.mul(3)).div(100));
        payable(dev1).transfer((_eth.mul(1)).div(100));
        payable(dev2).transfer((_eth.mul(1)).div(100));
        totalDeposited += _eth;
    }
    
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint a, uint b) internal pure returns (uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

        return c;
    }
    function mul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) {
            return 0;
        }

        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"amountDistributedToSponsor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"distrubuteBonusFund","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"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentPrice","type":"uint256"}],"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"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentPrice","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_referredAdd","type":"address"}],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_incomingEthereum","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdd","type":"address"}],"name":"changeDev1Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdd","type":"address"}],"name":"changeDev2Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdd","type":"address"}],"name":"changeGSGAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimedLoyalty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"day","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"distributePremintedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gsg_foundation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"loyaltyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"loyaltyPayoutsTo_","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preMintedTokenLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referralBalance_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sponsorsPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenBalanceLedger_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEthereumBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"userReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"bool","name":"isExist","type":"bool"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"referrerId","type":"uint256"},{"internalType":"address","name":"referrerAdd","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000601c553480156200001657600080fd5b506040518060400160405280601181526020017f5468652d4569676874792d5477656e74790000000000000000000000000000008152506000908051906020019062000064929190620003a7565b506040518060400160405280600481526020017f475335300000000000000000000000000000000000000000000000000000000081525060019080519060200190620000b2929190620003a7565b506012600260006101000a81548160ff021916908360ff1602179055506008600260016101000a81548160ff021916908360ff16021790555064174876e8006003819055506402540be40060048190555068010000000000000000600581905550600260128190555073a37b77e5670e70acc62abe86b6b02c450e9eeff7600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738fac2c8dafeb6bc93848c292772bfe68666a866a600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737cf196415cdd1ef08ca2358a8282d33ba089b9f3600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d8190555042600e8190555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff021916908315150217905550690a968163f0a57b400000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550690a968163f0a57b400000601c81905550690a968163f0a57b400000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef690a968163f0a57b4000006040518082815260200191505060405180910390a362000456565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ea57805160ff19168380011785556200041b565b828001600101855582156200041b579182015b828111156200041a578251825591602001919060010190620003fd565b5b5090506200042a91906200042e565b5090565b6200045391905b808211156200044f57600081600090555060010162000435565b5090565b90565b61555680620004666000396000f3fe60806040526004361061028b5760003560e01c8063778c85431161015a578063bcf6079a116100c1578063e4849b321161007a578063e4849b3214611106578063e9fad8ee14611141578063f088d54714611158578063fa4ee6d5146111b0578063fdb5a03e146111db578063ff50abdc146111f257610307565b8063bcf6079a14610f06578063c625565c14610f61578063c664f7f114610f8c578063dd62ed3e14610ff1578063e00dd16114611076578063e1456cb4146110a157610307565b8063949e8acd11610113578063949e8acd14610c4057806395d89b4114610c6b5780639f4216e814610cfb578063a457c2d714610d76578063a87430ba14610de9578063a9059cbb14610e9357610307565b8063778c854314610a785780637b76ac9114610add5780637c3fcc3814610b085780638620410b14610b995780638a2381d714610bc4578063900f604e14610bef57610307565b806339509351116101fe5780635e52a00b116101b75780635e52a00b146108ea57806366d0832c14610941578063688abbf71461096c5780636b2f4632146109bd5780636cd38db8146109e857806370a0823114610a1357610307565b806339509351146107405780633ccfd60b146107b357806344431705146107ca578063455fd6231461082f5780634b7503341461085a5780635c5a0a9d1461088557610307565b806310d0ffdd1161025057806310d0ffdd1461056257806318160ddd146105b15780631a7b3c46146105dc578063226093731461062d57806323b872dd1461067c578063313ce5671461070f57610307565b806265318b1461037e5780630636b928146103e357806306fdde0314610434578063095ea7b3146104c4578063104e99291461053757610307565b3661030757601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166102f0576102ef33600061121d565b5b6102fb3460006113d4565b50610305346117e9565b005b601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166103675761036633600061121d565b5b6103723460006113d4565b5061037c346117e9565b005b34801561038a57600080fd5b506103cd600480360360208110156103a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a15565b6040518082815260200191505060405180910390f35b3480156103ef57600080fd5b506104326004803603602081101561040657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aae565b005b34801561044057600080fd5b50610449611bb5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048957808201518184015260208101905061046e565b50505050905090810190601f1680156104b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104d057600080fd5b5061051d600480360360408110156104e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c53565b604051808215151515815260200191505060405180910390f35b34801561054357600080fd5b5061054c611c6a565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b5061059b6004803603602081101561058557600080fd5b8101908080359060200190929190505050611c70565b6040518082815260200191505060405180910390f35b3480156105bd57600080fd5b506105c6611d1a565b6040518082815260200191505060405180910390f35b3480156105e857600080fd5b5061062b600480360360208110156105ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d24565b005b34801561063957600080fd5b506106666004803603602081101561065057600080fd5b8101908080359060200190929190505050611e2b565b6040518082815260200191505060405180910390f35b34801561068857600080fd5b506106f56004803603606081101561069f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e9c565b604051808215151515815260200191505060405180910390f35b34801561071b57600080fd5b50610724612785565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074c57600080fd5b506107996004803603604081101561076357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612798565b604051808215151515815260200191505060405180910390f35b3480156107bf57600080fd5b506107c861283d565b005b3480156107d657600080fd5b50610819600480360360208110156107ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a66565b6040518082815260200191505060405180910390f35b34801561083b57600080fd5b50610844612a7e565b6040518082815260200191505060405180910390f35b34801561086657600080fd5b5061086f612a84565b6040518082815260200191505060405180910390f35b34801561089157600080fd5b506108d4600480360360208110156108a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b05565b6040518082815260200191505060405180910390f35b3480156108f657600080fd5b506108ff612b1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561094d57600080fd5b50610956612b87565b6040518082815260200191505060405180910390f35b34801561097857600080fd5b506109a76004803603602081101561098f57600080fd5b81019080803515159060200190929190505050612b8d565b6040518082815260200191505060405180910390f35b3480156109c957600080fd5b506109d2612bf9565b6040518082815260200191505060405180910390f35b3480156109f457600080fd5b506109fd612c01565b6040518082815260200191505060405180910390f35b348015610a1f57600080fd5b50610a6260048036036020811015610a3657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c07565b6040518082815260200191505060405180910390f35b348015610a8457600080fd5b50610ac760048036036020811015610a9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c50565b6040518082815260200191505060405180910390f35b348015610ae957600080fd5b50610af2612c68565b6040518082815260200191505060405180910390f35b348015610b1457600080fd5b50610b5760048036036020811015610b2b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba557600080fd5b50610bae612ced565b6040518082815260200191505060405180910390f35b348015610bd057600080fd5b50610bd9612d54565b6040518082815260200191505060405180910390f35b348015610bfb57600080fd5b50610c3e60048036036020811015610c1257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d5a565b005b348015610c4c57600080fd5b50610c55612e61565b6040518082815260200191505060405180910390f35b348015610c7757600080fd5b50610c80612e76565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cc0578082015181840152602081019050610ca5565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d0757600080fd5b50610d3460048036036020811015610d1e57600080fd5b8101908080359060200190929190505050612f14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d8257600080fd5b50610dcf60048036036040811015610d9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f47565b604051808215151515815260200191505060405180910390f35b348015610df557600080fd5b50610e3860048036036020811015610e0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613006565b60405180851515151581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b348015610e9f57600080fd5b50610eec60048036036040811015610eb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613063565b604051808215151515815260200191505060405180910390f35b348015610f1257600080fd5b50610f5f60048036036040811015610f2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506137f8565b005b348015610f6d57600080fd5b50610f76613964565b6040518082815260200191505060405180910390f35b348015610f9857600080fd5b50610fdb60048036036020811015610faf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061396a565b6040518082815260200191505060405180910390f35b348015610ffd57600080fd5b506110606004803603604081101561101457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613982565b6040518082815260200191505060405180910390f35b34801561108257600080fd5b5061108b613a09565b6040518082815260200191505060405180910390f35b3480156110ad57600080fd5b506110f0600480360360208110156110c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a0f565b6040518082815260200191505060405180910390f35b34801561111257600080fd5b5061113f6004803603602081101561112957600080fd5b8101908080359060200190929190505050613a27565b005b34801561114d57600080fd5b5061115661474e565b005b61119a6004803603602081101561116e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506147b6565b6040518082815260200191505060405180910390f35b3480156111bc57600080fd5b506111c56148d2565b6040518082815260200191505060405180910390f35b3480156111e757600080fd5b506111f06149d8565b005b3480156111fe57600080fd5b50611207614c42565b6040518082815260200191505060405180910390f35b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905061126c61542c565b600d600081548092919060010191905055506040518060800160405280600115158152602001600d5481526020018381526020018473ffffffffffffffffffffffffffffffffffffffff16815250905083601a6000600d54815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505050505050565b60006113fd60646113ef605a86614c4890919063ffffffff16565b614cce90919063ffffffff16565b92506000611439606461142b600260019054906101000a900460ff1660ff1687614c4890919063ffffffff16565b614cce90919063ffffffff16565b905060006114646064611456600288614c4890919063ffffffff16565b614cce90919063ffffffff16565b9050600061147486838501614d18565b9050600061148182614d62565b9050600060055485029050600060055485029050836006600082825401925050819055506000831180156114c15750601c546114bf84601c54614dde565b115b6114ca57600080fd5b6114d4888a614e66565b6000601c541115611564576114eb601c5484614dde565b601c81905550601c5460055487028161150057fe5b04601d60008282540192505081905550601c5460055486028161151f57fe5b04601e60008282540192505081905550601c5460055487028161153e57fe5b048302820382039150601c5460055486028161155657fe5b04830281038103905061156c565b82601c819055505b6115b5601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484614dde565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008284601d540203905080601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060008285601e540203905080601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa2a3eece295fac67b115a3d3395f2c835e777fef2d4b442768a6b6690bf7848e8d8842601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611742612ced565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3849850505050505050505092915050565b6118106064611802600284614c4890919063ffffffff16565b614cce90919063ffffffff16565b6007600082825401925050819055506118466064611838600384614c4890919063ffffffff16565b614cce90919063ffffffff16565b600960008282540192505081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118b860646118aa600386614c4890919063ffffffff16565b614cce90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156118e3573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119476064611939600186614c4890919063ffffffff16565b614cce90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611972573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119d660646119c8600186614c4890919063ffffffff16565b614cce90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a01573d6000803e3d6000fd5b508060106000828254019250508190555050565b6000600554601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601d54020381611aa657fe5b049050919050565b3373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4552524f523a206f6e6c7920666f72206f776e6572000000000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c4b5780601f10611c2057610100808354040283529160200191611c4b565b820191906000526020600020905b815481529060010190602001808311611c2e57829003601f168201915b505050505081565b6000611c60338484614fd2565b6001905092915050565b60065481565b6000611c996064611c8b605a85614c4890919063ffffffff16565b614cce90919063ffffffff16565b91506000611cc46064611cb6600886614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000611cef6064611ce1600287614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000611cff85838501614d18565b90506000611d0c82614d62565b905080945050505050919050565b6000601c54905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4552524f523a206f6e6c7920666f72206f776e6572000000000000000000000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601c54821115611e3c57600080fd5b6000611e47836151c9565b90506000611e726064611e64600885614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000611e808383614cce565b90506000611e8e8483614d18565b905080945050505050919050565b6000838383601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403811080611f42575060011515601360149054906101000a900460ff161515145b15612316576000879050601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115611f9857600080fd5b611fe1601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614d18565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206d601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614dde565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085601d5402601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601d5402601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085601e5402601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601e5402601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a361230c8833612307896040518060600160405280602881526020016154b060289139601660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546152619092919063ffffffff16565b614fd2565b600194505061277b565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000879050601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486111561240157600080fd5b61244a601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614d18565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d6601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614dde565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085601d5402601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601d5402601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085601e5402601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601e5402601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a36127758833612770896040518060600160405280602881526020016154b060289139601660008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546152619092919063ffffffff16565b614fd2565b60019450505b5050509392505050565b600260009054906101000a900460ff1681565b6000612833338461282e85601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614dde90919063ffffffff16565b614fd2565b6001905092915050565b60006128496001612b8d565b1161285357600080fd5b600033905060006128646000612b8d565b905060006128706148d2565b90506005548202601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081111561293357808201915080600f600082825401925050819055506005548102601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816011600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612a12573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc836040518082815260200191505060405180910390a2505050565b60186020528060005260406000206000915090505481565b60115481565b600080601c541415612a9e57600454600354039050612b02565b6000612ab1670de0b6b3a76400006151c9565b90506000612adc6064612ace600885614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000612aea8383614cce565b90506000612af88483614d18565b9050809450505050505b90565b60146020528060005260406000206000915090505481565b6000601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60008033905082612ba657612ba181611a15565b612bf1565b601560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bef82611a15565b015b915050919050565b600047905090565b60095481565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601b6020528060005260406000206000915090505481565b600e5481565b6000601a6000601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600080601c541415612d0757600454600354019050612d51565b6000612d1a670de0b6b3a76400006151c9565b90506000612d3a82600260019054906101000a900460ff1660ff16614cce565b90506000612d488383614dde565b90508093505050505b90565b60075481565b3373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4552524f523a206f6e6c7920666f72206f776e6572000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080339050612e7081612c07565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f0c5780601f10612ee157610100808354040283529160200191612f0c565b820191906000526020600020905b815481529060010190602001808311612eef57829003601f168201915b505050505081565b601a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612ffc3384612ff7856040518060600160405280602581526020016154fc60259139601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546152619092919063ffffffff16565b614fd2565b6001905092915050565b60196020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b60008061306e612e61565b1161307857600080fd5b338383601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540381108061311c575060011515601360149054906101000a900460ff161515145b1561343d576000339050601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486111561317257600080fd5b6131bb601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614d18565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613247601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614dde565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085601d5402601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601d5402601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085601e5402601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601e5402601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450506137ef565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000339050601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486111561352857600080fd5b613571601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614d18565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135fd601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487614dde565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085601d5402601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601d5402601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085601e5402601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555085601e5402601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505b50505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146138bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4552524f523a206f6e6c7920666f72206f776e6572000000000000000000000081525060200191505060405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061395f8282613063565b505050565b600f5481565b60156020528060005260406000206000915090505481565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b60176020528060005260406000206000915090505481565b6000613a31612e61565b11613a3b57600080fd5b80601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403811080613add575060011515601360149054906101000a900460ff161515145b156140a557601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115613b2e57600080fd5b60008290506000613b3e826151c9565b90506000613b696064613b5b600885614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000613b946064613b86600486614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000613bbf6064613bb1600287614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000613bcd8585614d18565b90506000613bf86064613bea600189614c4890919063ffffffff16565b614cce90919063ffffffff16565b9050613c0e600282614cce90919063ffffffff16565b9050613c1c601c5488614d18565b601c81905550613c6b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488614d18565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600087601d5402905080601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600088601e5402905080601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550836011600082825401925050819055506000601c541115613db857613d90601d54601c54600554890281613d8a57fe5b04614dde565b601d81905550613db1601e54601c54600554880281613dab57fe5b04614dde565b601e819055505b3373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015613dfe573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613e67573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613ed0573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613f346064613f2660018d614c4890919063ffffffff16565b614cce90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613f5f573d6000803e3d6000fd5b50600654881015613f7d57613f7660065489614d18565b6006819055505b3373ffffffffffffffffffffffffffffffffffffffff167fcda0e3e9928ea404aa9e25c490e9eec25fa1468e2f5cd3dfd7af4fa69ab08d0a8a8642601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614000612ced565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8d6040518082815260200191505060405180910390a350505050505050505061474a565b683635c9adc5dea000004711614123576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552524f523a207072656d696e74656420746f6b656e206973206c6f636b656481525060200191505060405180910390fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006012819055506001601360146101000a81548160ff021916908315150217905550601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156141d757600080fd5b600082905060006141e7826151c9565b905060006142126064614204600885614c4890919063ffffffff16565b614cce90919063ffffffff16565b9050600061423d606461422f600486614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506000614268606461425a600287614c4890919063ffffffff16565b614cce90919063ffffffff16565b905060006142768585614d18565b905060006142a16064614293600189614c4890919063ffffffff16565b614cce90919063ffffffff16565b90506142b7600282614cce90919063ffffffff16565b90506142c5601c5488614d18565b601c81905550614314601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488614d18565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600087601d5402905080601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600088601e5402905080601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550836011600082825401925050819055506000601c54111561446157614439601d54601c5460055489028161443357fe5b04614dde565b601d8190555061445a601e54601c5460055488028161445457fe5b04614dde565b601e819055505b3373ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501580156144a7573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015614510573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015614579573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6145dd60646145cf60018d614c4890919063ffffffff16565b614cce90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015614608573d6000803e3d6000fd5b506006548810156146265761461f60065489614d18565b6006819055505b3373ffffffffffffffffffffffffffffffffffffffff167fcda0e3e9928ea404aa9e25c490e9eec25fa1468e2f5cd3dfd7af4fa69ab08d0a8a8642601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546146a9612ced565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8d6040518082815260200191505060405180910390a35050505050505050505b5050565b60003390506000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156147aa576147a981613a27565b5b6147b261283d565b5050565b60003373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561485a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552524f523a2063616e6e6f74206265636f6d65206f776e207265660000000081525060200191505060405180910390fd5b601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166148b9576148b8338361121d565b5b6148c334836113d4565b506148cd346117e9565b919050565b600080339050600260009054906101000a900460ff1660ff16600a0a6109c402601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106149cf57600554601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601e540203816149c657fe5b049150506149d5565b60009150505b90565b60006149e46001612b8d565b116149ee57600080fd5b600033905060006149ff6000612b8d565b90506000614a0b6148d2565b90506005548202601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000811115614ade57808201915080600f60008282540192505081905550806011600082825401925050819055506005548102601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000614bda84836113d4565b9050614be5846117e9565b8473ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588583604051808381526020018281526020019250505060405180910390a25050505050565b60105481565b600080831415614c5b5760009050614cc8565b6000828402905082848281614c6c57fe5b0414614cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061548f6021913960400191505060405180910390fd5b809150505b92915050565b6000614d1083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615321565b905092915050565b6000614d5a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615261565b905092915050565b600080670de0b6b3a76400006003540290506000601c54600454614dc9614dc3601c548660045460020202026002601c540a60026004540a02670de0b6b3a76400008a02670de0b6b3a764000060045402600202026002890a0101016153e7565b85614d18565b81614dd057fe5b040390508092505050919050565b600080828401905083811015614e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600060026012541415614ea157614e9a6064614e8c600385614c4890919063ffffffff16565b614cce90919063ffffffff16565b9050614ecb565b614ec86064614eba600585614c4890919063ffffffff16565b614cce90919063ffffffff16565b90505b600083905081601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816008600082825401925050819055507f305ba6be0adbe2d7795c43e8ba5e7ffa55e0f8ec85d759edb9b4ae2625392a78338284604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415615058576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806154d86024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156150de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061546d6022913960400191505060405180910390fd5b80601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080670de0b6b3a7640000830190506000670de0b6b3a7640000601c540190506000670de0b6b3a764000061524c670de0b6b3a76400008503600454670de0b6b3a7640000868161521757fe5b04600454026003540103026002670de0b6b3a7640000876002890a038161523a57fe5b04600454028161524657fe5b04614d18565b8161525357fe5b049050809350505050919050565b600083831115829061530e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156152d35780820151818401526020810190506152b8565b50505050905090810190601f1680156153005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906153cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615392578082015181840152602081019050615377565b50505050905090810190601f1680156153bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816153d957fe5b049050809150509392505050565b600080600260018401816153f757fe5b0490508291505b818110156154265780915060028182858161541557fe5b04018161541e57fe5b0490506153fe565b50919050565b60405180608001604052806000151581526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152509056fe45524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122084843182708bc30e5a5a67616a0921c6311970c64a31edcf3f7cff88dd5c113d64736f6c63430006000033

Deployed ByteCode Sourcemap

1646:27334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7655:5;:17;7661:10;7655:17;;;;;;;;;;;;;;;:25;;;;;;;;;;;;7651:62;;7682:31;7691:10;7710:1;7682:8;:31::i;:::-;7651:62;7726:36;7741:9;7759:1;7726:14;:36::i;:::-;;7815:29;7834:9;7815:18;:29::i;:::-;1646:27334;;7929:5;:17;7935:10;7929:17;;;;;;;;;;;;;;;:25;;;;;;;;;;;;7925:62;;7956:31;7965:10;7984:1;7956:8;:31::i;:::-;7925:62;8000:36;8015:9;8033:1;8000:14;:36::i;:::-;;8089:29;8108:9;8089:18;:29::i;:::-;1646:27334;18718:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18718:254:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18718:254:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16840:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16840:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16840:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4234:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4234:18: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;4234:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13158:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13158:156:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13158:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4477:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4477:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20143:559;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20143:559:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20143:559:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17556:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17556:140:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17048:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17048:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17048:112:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;20837:457;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20837:457:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20837:457:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15194:1378;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15194:1378:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15194:1378:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4288:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4288:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13327:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13327:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13327:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9832:991;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9832:991:0;;;:::i;:::-;;5373:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5373:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5373:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4825:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4825:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19054:517;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19054:517:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5126:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5126:54:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5126:54:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20720:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20720:106:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4545:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4545:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18042:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18042:310:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18042:310:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17348:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17348:137:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4579:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4579:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18440:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18440:187:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18440:187:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5530:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5530:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5530:53:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4724:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4724:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22008:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22008:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22008:130:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19654:472;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19654:472:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4508:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4508:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16944:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16944:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16944:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17775:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17775:182:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4260:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4260:20: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;4260:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5480:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5480:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5480:43:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13554:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13554:265:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13554:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5431:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5431:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5431:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13906:1276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13906:1276:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13906:1276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16624:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16624:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16624:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4749:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4749:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5187:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5187:52:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5187:52:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21306:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21306:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21306:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4693:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4693:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5322:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5322:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5322:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10891:2249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10891:2249:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10891:2249:0;;;;;;;;;;;;;;;;;:::i;:::-;;9478:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9478:281:0;;;:::i;:::-;;7161:415;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7161:415:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21470:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21470:526:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8214:1194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8214:1194:0;;;:::i;:::-;;4785:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4785:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27306:498;27392:11;27406:5;:18;27412:11;27406:18;;;;;;;;;;;;;;;:21;;;27392:35;;27449:27;;:::i;:::-;27487:9;;:11;;;;;;;;;;;;;27558:147;;;;;;;;27592:4;27558:147;;;;;;27615:9;;27558:147;;;;27651:3;27558:147;;;;27682:11;27558:147;;;;;27545:160;;27748:7;27726:8;:19;27735:9;;27726:19;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;27786:10;27766:5;:17;27772:10;27766:17;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27306:498;;;;:::o;22303:2643::-;22410:7;22455:36;22487:3;22456:25;22478:2;22456:17;:21;;:25;;;;:::i;:::-;22455:31;;:36;;;;:::i;:::-;22435:56;;22525:18;22546:44;22586:3;22546:35;22568:12;;;;;;;;;;;22546:35;;:17;:21;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;22525:65;;22601:19;22623:33;22652:3;22623:24;22645:1;22623:17;:21;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22601:55;;22667:22;22692:57;22705:17;22736:11;22725:10;:22;22692:12;:57::i;:::-;22667:82;;22760:23;22786:33;22804:14;22786:17;:33::i;:::-;22760:59;;22830:12;22858:9;;22845:10;:22;22830:37;;22878:22;22917:9;;22903:11;:23;22878:48;;22950:14;22937:9;;:27;;;;;;;;;;;23011:1;22993:15;:19;:82;;;;;23062:12;;23017:42;23030:15;23046:12;;23017;:42::i;:::-;:57;22993:82;22985:91;;;;;;23097:50;23117:11;23129:17;23097:19;:50::i;:::-;23237:1;23222:12;;:16;23219:882;;;23322:43;23335:12;;23349:15;23322:12;:43::i;:::-;23307:12;:58;;;;23553:12;;23540:9;;23527:10;:22;:39;;;;;;23507:15;;:60;;;;;;;;;;;23632:12;;23619:9;;23604:11;23603:25;:42;;;;;;23582:16;;:64;;;;;;;;;;;23819:12;;23806:9;;23793:10;:22;:39;;;;;;23774:15;:59;23768:4;:66;23760:4;:75;23753:82;;23947:12;;23934:9;;23920:11;:23;:40;;;;;;23901:15;:60;23885:14;:77;23867:14;:96;23850:113;;23219:882;;;24074:15;24059:12;:30;;;;23219:882;24231:62;24244:19;:31;24264:10;24244:31;;;;;;;;;;;;;;;;24277:15;24231:12;:62::i;:::-;24197:19;:31;24217:10;24197:31;;;;;;;;;;;;;;;:96;;;;24350:22;24423:4;24404:15;24386;;:33;24385:42;24350:78;;24465:15;24439:10;:22;24450:10;24439:22;;;;;;;;;;;;;;;;:41;;;;;;;;;;;24501:29;24582:14;24563:15;24544:16;;:34;24543:53;24501:96;;24641:22;24608:17;:29;24626:10;24608:29;;;;;;;;;;;;;;;;:55;;;;;;;;;;;24780:11;24716:123;;24732:10;24716:123;;;24744:17;24763:15;24792:3;24796:19;:31;24816:10;24796:31;;;;;;;;;;;;;;;;24828:10;:8;:10::i;:::-;24716:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24878:10;24855:50;;24872:4;24855:50;;;24889:15;24855:50;;;;;;;;;;;;;;;;;;24923:15;24916:22;;;;;;;;;;22303:2643;;;;:::o;28377:390::-;28458:22;28476:3;28459:11;28468:1;28459:4;:8;;:11;;;;:::i;:::-;28458:17;;:22;;;;:::i;:::-;28438:15;;:43;;;;;;;;;;;28511:22;28529:3;28512:11;28521:1;28512:4;:8;;:11;;;;:::i;:::-;28511:17;;:22;;;;:::i;:::-;28492:14;;:42;;;;;;;;;;;28553:25;;;;;;;;;;;28545:43;;:67;28589:22;28607:3;28590:11;28599:1;28590:4;:8;;:11;;;;:::i;:::-;28589:17;;:22;;;;:::i;:::-;28545:67;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28545:67:0;28631:4;;;;;;;;;;;28623:22;;:46;28646:22;28664:3;28647:11;28656:1;28647:4;:8;;:11;;;;:::i;:::-;28646:17;;:22;;;;:::i;:::-;28623:46;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28623:46:0;28688:4;;;;;;;;;;;28680:22;;:46;28703:22;28721:3;28704:11;28713:1;28704:4;:8;;:11;;;;:::i;:::-;28703:17;;:22;;;;:::i;:::-;28680:46;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28680:46:0;28755:4;28737:14;;:22;;;;;;;;;;;28377:390;:::o;18718:254::-;18812:7;18955:9;;18923:10;:28;18934:16;18923:28;;;;;;;;;;;;;;;;18882:19;:37;18902:16;18882:37;;;;;;;;;;;;;;;;18864:15;;:55;18855:96;18844:120;;;;;;18837:127;;18718:254;;;:::o;16840:92::-;2949:10;2940:19;;:5;;;;;;;;;;;:19;;;2932:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16918:6:::1;16911:4;;:13;;;;;;;;;;;;;;;;;;16840:92:::0;:::o;4234:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13158:156::-;13230:4;13247:37;13256:10;13268:7;13277:6;13247:8;:37::i;:::-;13302:4;13295:11;;13158:156;;;;:::o;4477:24::-;;;;:::o;20143:559::-;20253:7;20298:36;20330:3;20299:25;20321:2;20299:17;:21;;:25;;;;:::i;:::-;20298:31;;:36;;;;:::i;:::-;20278:56;;20368:18;20389:33;20418:3;20389:24;20411:1;20389:17;:21;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;20368:54;;20433:19;20455:33;20484:3;20455:24;20477:1;20455:17;:21;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;20433:55;;20499:22;20524:57;20537:17;20568:11;20557:10;:22;20524:12;:57::i;:::-;20499:82;;20592:23;20618:33;20636:14;20618:17;:33::i;:::-;20592:59;;20679:15;20672:22;;;;;;20143:559;;;:::o;17556:140::-;17644:7;17676:12;;17669:19;;17556:140;:::o;17048:112::-;2949:10;2940:19;;:5;;;;;;;;;;;:19;;;2932:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17146:6:::1;17118:25;;:34;;;;;;;;;;;;;;;;;;17048:112:::0;:::o;20837:457::-;20945:7;20995:12;;20978:13;:29;;20970:38;;;;;;21019:17;21039:32;21057:13;21039:17;:32::i;:::-;21019:52;;21082:11;21096:27;21119:3;21097:16;21111:1;21097:9;:13;;:16;;;;:::i;:::-;21096:22;;:27;;;;:::i;:::-;21082:41;;21134:18;21155:28;21168:9;21179:3;21155:12;:28::i;:::-;21134:49;;21194:22;21219:35;21232:9;21243:10;21219:12;:35::i;:::-;21194:60;;21272:14;21265:21;;;;;;20837:457;;;:::o;15194:1378::-;15396:4;15323:6;15330:10;15341:15;2678:18;:25;2697:5;2678:25;;;;;;;;;;;;;;;;2649:19;:26;2669:5;2649:26;;;;;;;;;;;;;;;;:54;2640:6;:63;:83;;;;2719:4;2707:16;;:8;;;;;;;;;;;:16;;;2640:83;2637:244;;;15441:24:::1;15468:6;15441:33;;15580:19;:37;15600:16;15580:37;;;;;;;;;;;;;;;;15561:15;:56;;15553:65;;;::::0;::::1;;15707:68;15720:19;:37;15740:16;15720:37;;;;;;;;;;;;;;;;15759:15;15707:12;:68::i;:::-;15667:19;:37;15687:16;15667:37;;;;;;;;;;;;;;;:108;;;;15820:62;15833:19;:31;15853:10;15833:31;;;;;;;;;;;;;;;;15866:15;15820:12;:62::i;:::-;15786:19;:31;15806:10;15786:31;;;;;;;;;;;;;;;:96;;;;16000:15;15982;;:33;15940:10;:28;15951:16;15940:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;16081:15;16063;;:33;16027:10;:22;16038:10;16027:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;16186:15;16167:16;;:34;16118:17;:35;16136:16;16118:35;;;;;;;;;;;;;;;;:84;;;;;;;;;;;16275:15;16256:16;;:34;16213:17;:29;16231:10;16213:29;;;;;;;;;;;;;;;;:78;;;;;;;;;;;16367:10;16340:55;;16349:16;16340:55;;;16379:15;16340:55;;;;;;;;;;;;;;;;;;16416:126;16425:6;16433:10;16445:96;16481:15;16445:96;;;;;;;;;;;;;;;;;:11;:19;16457:6;16445:19;;;;;;;;;;;;;;;:31;16465:10;16445:31;;;;;;;;;;;;;;;;:35;;:96;;;;;:::i;:::-;16416:8;:126::i;:::-;16560:4;16553:11;;;2637:244:::0;;;2797:6;2771:18;:22;2790:2;2771:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;2847:6;2818:18;:25;2837:5;2818:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;15441:24:::1;15468:6;15441:33;;15580:19;:37;15600:16;15580:37;;;;;;;;;;;;;;;;15561:15;:56;;15553:65;;;::::0;::::1;;15707:68;15720:19;:37;15740:16;15720:37;;;;;;;;;;;;;;;;15759:15;15707:12;:68::i;:::-;15667:19;:37;15687:16;15667:37;;;;;;;;;;;;;;;:108;;;;15820:62;15833:19;:31;15853:10;15833:31;;;;;;;;;;;;;;;;15866:15;15820:12;:62::i;:::-;15786:19;:31;15806:10;15786:31;;;;;;;;;;;;;;;:96;;;;16000:15;15982;;:33;15940:10;:28;15951:16;15940:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;16081:15;16063;;:33;16027:10;:22;16038:10;16027:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;16186:15;16167:16;;:34;16118:17;:35;16136:16;16118:35;;;;;;;;;;;;;;;;:84;;;;;;;;;;;16275:15;16256:16;;:34;16213:17;:29;16231:10;16213:29;;;;;;;;;;;;;;;;:78;;;;;;;;;;;16367:10;16340:55;;16349:16;16340:55;;;16379:15;16340:55;;;;;;;;;;;;;;;;;;16416:126;16425:6;16433:10;16445:96;16481:15;16445:96;;;;;;;;;;;;;;;;;:11;:19;16457:6;16445:19;;;;;;;;;;;;;;;:31;16465:10;16445:31;;;;;;;;;;;;;;;;:35;;:96;;;;;:::i;:::-;16416:8;:126::i;:::-;16560:4;16553:11;;;2637:244:::0;15194:1378;;;;;;;;:::o;4288:21::-;;;;;;;;;;;;;:::o;13327:214::-;13415:4;13432:79;13441:10;13453:7;13462:48;13499:10;13462:11;:23;13474:10;13462:23;;;;;;;;;;;;;;;:32;13486:7;13462:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;13432:8;:79::i;:::-;13529:4;13522:11;;13327:214;;;;:::o;9832:991::-;2067:1;2047:17;2059:4;2047:11;:17::i;:::-;:21;2039:30;;;;;;9929:24:::1;9956:10;9929:37;;9977:18;9998;10010:5;9998:11;:18::i;:::-;9977:39;;10063:19;10085:11;:9;:11::i;:::-;10063:33;;10201:9;;10188:10;:22;10145:10;:28;10156:16;10145:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;10249:7;10235:11;:21;10232:208;;;10287:11;10273:25;;;;10331:11;10313:14;;:29;;;;;;;;;;;10418:9;;10406:11;:21;10357:17;:35;10375:16;10357:35;;;;;;;;;;;;;;;;:71;;;;;;;;;;;10232:208;10498:16;:34;10515:16;10498:34;;;;;;;;;;;;;;;;10484:48;;;;10580:1;10543:16;:34;10560:16;10543:34;;;;;;;;;;;;;;;:38;;;;10619:10;10602:13;;:27;;;;;;;;;;;10687:16;10671:43;;:55;10715:10;10671:55;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10671:55:0;10786:16;10775:40;;;10804:10;10775:40;;;;;;;;;;;;;;;;;;2080:1;;;9832:991::o:0;5373:51::-;;;;;;;;;;;;;;;;;:::o;4825:28::-;;;;:::o;19054:517::-;19125:7;19178:1;19162:12;;:17;19159:405;;;19223:22;;19202:18;;:43;19195:50;;;;19159:405;19278:17;19298:23;19316:4;19298:17;:23::i;:::-;19278:43;;19336:11;19350:27;19373:3;19351:16;19365:1;19351:9;:13;;:16;;;;:::i;:::-;19350:22;;:27;;;;:::i;:::-;19336:41;;19392:18;19413:28;19426:9;19437:3;19413:12;:28::i;:::-;19392:49;;19456:22;19481:35;19494:9;19505:10;19481:12;:35::i;:::-;19456:60;;19538:14;19531:21;;;;;;19054:517;;:::o;5126:54::-;;;;;;;;;;;;;;;;;:::o;20720:106::-;20763:7;20789:5;:17;20795:10;20789:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;20782:36;;20720:106;:::o;4545:27::-;;;;:::o;18042:310::-;18141:7;18166:24;18193:10;18166:37;;18221:21;:122;;18314:29;18326:16;18314:11;:29::i;:::-;18221:122;;;18277:16;:34;18294:16;18277:34;;;;;;;;;;;;;;;;18245:29;18257:16;18245:11;:29::i;:::-;:66;18221:122;18214:129;;;18042:310;;;:::o;17348:137::-;17427:4;17456:21;17449:28;;17348:137;:::o;4579:29::-;;;;:::o;18440:187::-;18550:7;18582:19;:37;18602:16;18582:37;;;;;;;;;;;;;;;;18575:44;;18440:187;;;:::o;5530:53::-;;;;;;;;;;;;;;;;;:::o;4724:18::-;;;;:::o;22008:130::-;22068:7;22094:8;:36;22103:5;:15;22109:8;22103:15;;;;;;;;;;;;;;;:26;;;22094:36;;;;;;;;;;;;;;;;;;;;;22087:43;;22008:130;;;:::o;19654:472::-;19724:7;19778:1;19762:12;;:17;19759:360;;;19823:22;;19802:18;;:43;19795:50;;;;19759:360;19878:17;19898:23;19916:4;19898:17;:23::i;:::-;19878:43;;19936:18;19957:39;19970:9;19981:12;;;;;;;;;;;19957:39;;:12;:39::i;:::-;19936:60;;20011:22;20036:35;20049:9;20060:10;20036:12;:35::i;:::-;20011:60;;20093:14;20086:21;;;;;19654:472;;:::o;4508:30::-;;;;:::o;16944:92::-;2949:10;2940:19;;:5;;;;;;;;;;;:19;;;2932:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17022:6:::1;17015:4;;:13;;;;;;;;;;;;;;;;;;16944:92:::0;:::o;17775:182::-;17842:7;17867:24;17894:10;17867:37;;17922:27;17932:16;17922:9;:27::i;:::-;17915:34;;;17775:182;:::o;4260:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5480:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;13554:265::-;13647:4;13664:125;13673:10;13685:7;13694:94;13731:15;13694:94;;;;;;;;;;;;;;;;;:11;:23;13706:10;13694:23;;;;;;;;;;;;;;;:32;13718:7;13694:32;;;;;;;;;;;;;;;;:36;;:94;;;;;:::i;:::-;13664:8;:125::i;:::-;13807:4;13800:11;;13554:265;;;;:::o;5431:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13906:1276::-;14117:4;1939:1;1926:10;:8;:10::i;:::-;:14;1918:23;;;;;;14027:10:::1;14038;14049:15;2678:18;:25;2697:5;2678:25;;;;;;;;;;;;;;;;2649:19;:26;2669:5;2649:26;;;;;;;;;;;;;;;;:54;2640:6;:63;:83;;;;2719:4;2707:16;;:8;;;;;;;;;;;:16;;;2640:83;2637:244;;;14157:24:::2;14184:10;14157:37;;14300:19;:37;14320:16;14300:37;;;;;;;;;;;;;;;;14281:15;:56;;14273:65;;;::::0;::::2;;14427:68;14440:19;:37;14460:16;14440:37;;;;;;;;;;;;;;;;14479:15;14427:12;:68::i;:::-;14387:19;:37;14407:16;14387:37;;;;;;;;;;;;;;;:108;;;;14540:62;14553:19;:31;14573:10;14553:31;;;;;;;;;;;;;;;;14586:15;14540:12;:62::i;:::-;14506:19;:31;14526:10;14506:31;;;;;;;;;;;;;;;:96;;;;14720:15;14702;;:33;14660:10;:28;14671:16;14660:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;14801:15;14783;;:33;14747:10;:22;14758:10;14747:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;14906:15;14887:16;;:34;14838:17;:35;14856:16;14838:35;;;;;;;;;;;;;;;;:84;;;;;;;;;;;14995:15;14976:16;;:34;14933:17;:29;14951:10;14933:29;;;;;;;;;;;;;;;;:78;;;;;;;;;;;15087:10;15060:55;;15069:16;15060:55;;;15099:15;15060:55;;;;;;;;;;;;;;;;;;15161:4;15154:11;;;2637:244:::1;;;2797:6;2771:18;:22;2790:2;2771:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;2847:6;2818:18;:25;2837:5;2818:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;14157:24:::2;14184:10;14157:37;;14300:19;:37;14320:16;14300:37;;;;;;;;;;;;;;;;14281:15;:56;;14273:65;;;::::0;::::2;;14427:68;14440:19;:37;14460:16;14440:37;;;;;;;;;;;;;;;;14479:15;14427:12;:68::i;:::-;14387:19;:37;14407:16;14387:37;;;;;;;;;;;;;;;:108;;;;14540:62;14553:19;:31;14573:10;14553:31;;;;;;;;;;;;;;;;14586:15;14540:12;:62::i;:::-;14506:19;:31;14526:10;14506:31;;;;;;;;;;;;;;;:96;;;;14720:15;14702;;:33;14660:10;:28;14671:16;14660:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;14801:15;14783;;:33;14747:10;:22;14758:10;14747:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;14906:15;14887:16;;:34;14838:17;:35;14856:16;14838:35;;;;;;;;;;;;;;;;:84;;;;;;;;;;;14995:15;14976:16;;:34;14933:17;:29;14951:10;14933:29;;;;;;;;;;;;;;;;:78;;;;;;;;;;;15087:10;15060:55;;15069:16;15060:55;;;15099:15;15060:55;;;;;;;;;;;;;;;;;;15161:4;15154:11;;;2637:244:::1;1952:1;;;13906:1276:::0;;;;:::o;16624:206::-;2949:10;2940:19;;:5;;;;;;;;;;;:19;;;2932:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16735:6:::1;16709:18;:22;16728:2;16709:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;16786:6;16752:18;:30;16771:10;16752:30;;;;;;;;;;;;;;;;:40;;;;;;;;;;;16803:19;16812:2;16815:6;16803:8;:19::i;:::-;;16624:206:::0;;:::o;4749:29::-;;;;:::o;5187:52::-;;;;;;;;;;;;;;;;;:::o;21306:153::-;21396:7;21423:11;:19;21435:6;21423:19;;;;;;;;;;;;;;;:28;21443:7;21423:28;;;;;;;;;;;;;;;;21416:35;;21306:153;;;;:::o;4693:24::-;;;;:::o;5322:44::-;;;;;;;;;;;;;;;;;:::o;10891:2249::-;1939:1;1926:10;:8;:10::i;:::-;:14;1918:23;;;;;;10985:15:::1;2208:18;:30;2227:10;2208:30;;;;;;;;;;;;;;;;2174:19;:31;2194:10;2174:31;;;;;;;;;;;;;;;;:64;2165:6;:73;:93;;;;2254:4;2242:16;;:8;;;;;;;;;;;:16;;;2165:93;2162:373;;;11071:19:::2;:31;11091:10;11071:31;;;;;;;;;;;;;;;;11052:15;:50;;11044:59;;;::::0;::::2;;11149:15;11167;11149:33;;11193:17;11213:26;11231:7;11213:17;:26::i;:::-;11193:46;;11250:11;11264:27;11287:3;11265:16;11279:1;11265:9;:13;;:16;;;;:::i;:::-;11264:22;;:27;;;;:::i;:::-;11250:41;;11302:18;11323:25;11344:3;11323:16;11337:1;11323:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;11302:46;;11359:20;11382:25;11403:3;11382:16;11396:1;11382:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;11359:48;;11418:22;11443:28;11456:9;11467:3;11443:12;:28::i;:::-;11418:53;;11482:16;11501:25;11522:3;11501:16;11515:1;11501:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;11482:44;;11548:15;11561:1;11548:8;:12;;:15;;;;:::i;:::-;11537:26;;11624:35;11637:12;;11651:7;11624:12;:35::i;:::-;11609:12;:50;;;;11704:54;11717:19;:31;11737:10;11717:31;;;;;;;;;;;;;;;;11750:7;11704:12;:54::i;:::-;11670:19;:31;11690:10;11670:31;;;;;;;;;;;;;;;:88;;;;11807:22;11860:7;11842:15;;:25;11807:62;;11906:15;11880:10;:22;11891:10;11880:22;;;;;;;;;;;;;;;;:41;;;;;;;;;;;11946:29;12007:7;11988:16;;:26;11946:70;;12060:22;12027:17;:29;12045:10;12027:29;;;;;;;;;;;;;;;;:55;;;;;;;;;;;12115:14;12098:13;;:31;;;;;;;;;;;12208:1;12193:12;;:16;12189:301;;;12301:70;12314:15;;12358:12;;12345:9;;12332:10;:22;12331:39;;;;;;12301:12;:70::i;:::-;12283:15;:88;;;;12405:73;12418:16;;12465:12;;12452:9;;12437:12;:24;12436:41;;;;;;12405:12;:73::i;:::-;12386:16;:92;;;;12189:301;12561:10;12545:37;;:53;12583:14;12545:53;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12545:53:0;12655:4;;;;;;;;;;;12647:22;;:32;12670:8;12647:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12647:32:0;12698:4;;;;;;;;;;;12690:22;;:32;12713:8;12690:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12690:32:0;12741:25;;;;;;;;;;;12733:43;;:70;12777:25;12798:3;12777:16;12791:1;12777:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;12733:70;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12733:70:0;12849:9;;12837;:21;12834:102;;;12887:34;12900:9;;12911;12887:12;:34::i;:::-;12875:9;:46;;;;12834:102;12986:10;12974:95;;;12998:7;13007:14;13022:3;13026:19;:31;13046:10;13026:31;;;;;;;;;;;;;;;;13058:10;:8;:10::i;:::-;12974:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13113:1;13085:47;;13094:10;13085:47;;;13116:15;13085:47;;;;;;;;;;;;;;;;;;2274:1;;;;;;;;;2162:373:::1;;;2338:10;2314:21;:34;2306:79;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2433:1;2400:18;:30;2419:10;2400:30;;;;;;;;;;;;;;;:34;;;;2470:1;2449:18;:22;;;;2497:4;2486:8;;:15;;;;;;;;;;;;;;;;;;11071:19:::2;:31;11091:10;11071:31;;;;;;;;;;;;;;;;11052:15;:50;;11044:59;;;::::0;::::2;;11149:15;11167;11149:33;;11193:17;11213:26;11231:7;11213:17;:26::i;:::-;11193:46;;11250:11;11264:27;11287:3;11265:16;11279:1;11265:9;:13;;:16;;;;:::i;:::-;11264:22;;:27;;;;:::i;:::-;11250:41;;11302:18;11323:25;11344:3;11323:16;11337:1;11323:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;11302:46;;11359:20;11382:25;11403:3;11382:16;11396:1;11382:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;11359:48;;11418:22;11443:28;11456:9;11467:3;11443:12;:28::i;:::-;11418:53;;11482:16;11501:25;11522:3;11501:16;11515:1;11501:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;11482:44;;11548:15;11561:1;11548:8;:12;;:15;;;;:::i;:::-;11537:26;;11624:35;11637:12;;11651:7;11624:12;:35::i;:::-;11609:12;:50;;;;11704:54;11717:19;:31;11737:10;11717:31;;;;;;;;;;;;;;;;11750:7;11704:12;:54::i;:::-;11670:19;:31;11690:10;11670:31;;;;;;;;;;;;;;;:88;;;;11807:22;11860:7;11842:15;;:25;11807:62;;11906:15;11880:10;:22;11891:10;11880:22;;;;;;;;;;;;;;;;:41;;;;;;;;;;;11946:29;12007:7;11988:16;;:26;11946:70;;12060:22;12027:17;:29;12045:10;12027:29;;;;;;;;;;;;;;;;:55;;;;;;;;;;;12115:14;12098:13;;:31;;;;;;;;;;;12208:1;12193:12;;:16;12189:301;;;12301:70;12314:15;;12358:12;;12345:9;;12332:10;:22;12331:39;;;;;;12301:12;:70::i;:::-;12283:15;:88;;;;12405:73;12418:16;;12465:12;;12452:9;;12437:12;:24;12436:41;;;;;;12405:12;:73::i;:::-;12386:16;:92;;;;12189:301;12561:10;12545:37;;:53;12583:14;12545:53;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12545:53:0;12655:4;;;;;;;;;;;12647:22;;:32;12670:8;12647:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12647:32:0;12698:4;;;;;;;;;;;12690:22;;:32;12713:8;12690:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12690:32:0;12741:25;;;;;;;;;;;12733:43;;:70;12777:25;12798:3;12777:16;12791:1;12777:9;:13;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;12733:70;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;12733:70:0;12849:9;;12837;:21;12834:102;;;12887:34;12900:9;;12911;12887:12;:34::i;:::-;12875:9;:46;;;;12834:102;12986:10;12974:95;;;12998:7;13007:14;13022:3;13026:19;:31;13046:10;13026:31;;;;;;;;;;;;;;;;13058:10;:8;:10::i;:::-;12974:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13113:1;13085:47;;13094:10;13085:47;;;13116:15;13085:47;;;;;;;;;;;;;;;;;;2516:1;;;;;;;;;2162:373:::1;1952:1;10891:2249:::0;:::o;9478:281::-;9581:24;9608:10;9581:37;;9629:15;9647:19;:37;9667:16;9647:37;;;;;;;;;;;;;;;;9629:55;;9708:1;9698:7;:11;9695:29;;;9711:13;9716:7;9711:4;:13::i;:::-;9695:29;9741:10;:8;:10::i;:::-;9478:281;;:::o;7161:415::-;7248:7;7297:10;7281:26;;:12;:26;;;;7273:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7364:5;:17;7370:10;7364:17;;;;;;;;;;;;;;;:25;;;;;;;;;;;;7360:64;;7391:33;7400:10;7411:12;7391:8;:33::i;:::-;7360:64;7445:38;7460:9;7470:12;7445:14;:38::i;:::-;;7537:29;7556:9;7537:18;:29::i;:::-;7161:415;;;:::o;21470:526::-;21511:7;21530:24;21557:10;21530:37;;21721:8;;;;;;;;;;;21713:17;;21709:2;:21;21704:4;:26;21663:19;:37;21683:16;21663:37;;;;;;;;;;;;;;;;:67;21660:329;;21918:9;;21879:17;:35;21897:16;21879:35;;;;;;;;;;;;;;;;21838:19;:37;21858:16;21838:37;;;;;;;;;;;;;;;;21818:16;;21817:58;21808:106;21797:130;;;;;;21789:139;;;;;21660:329;21976:1;21969:8;;;21470:526;;:::o;8214:1194::-;2067:1;2047:17;2059:4;2047:11;:17::i;:::-;:21;2039:30;;;;;;8288:24:::1;8315:10;8288:37;;8364:18;8385;8397:5;8385:11;:18::i;:::-;8364:39;;8465:19;8487:11;:9;:11::i;:::-;8465:33;;8619:9;;8606:10;:22;8563:10;:28;8574:16;8563:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;8659:7;8645:11;:21;8642:266;;;8700:11;8686:25;;;;8748:11;8730:14;;:29;;;;;;;;;;;8795:11;8778:13;;:28;;;;;;;;;;;8886:9;;8874:11;:21;8825:17;:35;8843:16;8825:35;;;;;;;;;;;;;;;;:71;;;;;;;;;;;8642:266;8981:16;:34;8998:16;8981:34;;;;;;;;;;;;;;;;8967:48;;;;9063:1;9026:16;:34;9043:16;9026:34;;;;;;;;;;;;;;;:38;;;;9077:14;9094:5;:23;9100:16;9094:23;;;;;;;;;;;;;;;:35;;;;;;;;;;;;9077:52;;9216:15;9234:33;9249:10;9260:6;9234:14;:33::i;:::-;9216:51;;9278:30;9297:10;9278:18;:30::i;:::-;9362:16;9347:53;;;9380:10;9392:7;9347:53;;;;;;;;;;;;;;;;;;;;;;;;2080:1;;;;;8214:1194::o:0;4785:29::-;;;;:::o;29596:238::-;29648:4;29674:1;29669;:6;29665:47;;;29699:1;29692:8;;;;29665:47;29724:6;29737:1;29733;:5;29724:14;;29766:1;29761;29757;:5;;;;;;:10;29749:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29825:1;29818:8;;;29596:238;;;;;:::o;29840:123::-;29892:4;29916:39;29920:1;29923;29916:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;29909:46;;29840:123;;;;:::o;29277:127::-;29329:4;29353:43;29357:1;29360;29353:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;29346:50;;29277:127;;;;:::o;25514:976::-;25609:7;25634:26;25684:4;25663:18;;:25;25634:54;;25699:23;26422:12;;26386:22;;25814:555;25850:457;26267:12;;26248:18;26224:22;;26221:1;:26;:45;:58;26156:1;26142:12;;:15;26138:1;26113:22;;26112:27;26111:47;26043:4;26031:9;:16;26024:4;25999:22;;:29;25996:1;:33;:52;25932:1;25912:18;:21;25911:138;:248;:369;25850:4;:457::i;:::-;26332:18;25814:12;:555::i;:::-;25751:658;;;;;;25736:699;25699:736;;26467:15;26460:22;;;;25514:976;;;:::o;29102:169::-;29154:4;29171:6;29184:1;29180;:5;29171:14;;29209:1;29204;:6;;29196:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29262:1;29255:8;;;29102:169;;;;:::o;27816:549::-;27896:12;27944:1;27922:18;;:23;27919:146;;;27969:22;27987:3;27970:11;27979:1;27970:4;:8;;:11;;;;:::i;:::-;27969:17;;:22;;;;:::i;:::-;27962:29;;27919:146;;;28031:22;28049:3;28032:11;28041:1;28032:4;:8;;:11;;;;:::i;:::-;28031:17;;:22;;;;:::i;:::-;28024:29;;27919:146;28083:12;28098:8;28083:23;;28199:4;28171:16;:22;28188:4;28171:22;;;;;;;;;;;;;;;;:33;;;;;;;;;;;28241:4;28225:12;;:20;;;;;;;;;;;28308:49;28335:10;28347:4;28352;28308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27816:549;;;;:::o;24963:351::-;25084:1;25066:20;;:6;:20;;;;25058:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25165:1;25146:21;;:7;:21;;;;25138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25251:6;25220:11;:19;25232:6;25220:19;;;;;;;;;;;;;;;:28;25240:7;25220:28;;;;;;;;;;;;;;;:37;;;;25290:7;25273:33;;25282:6;25273:33;;;25299:6;25273:33;;;;;;;;;;;;;;;;;;24963:351;;;:::o;26566:722::-;26659:7;26686:15;26715:4;26705:7;:14;26686:34;;26731:20;26770:4;26755:12;;:19;26731:44;;26786:22;27243:4;26875:357;27138:4;27128:7;:14;27081:22;;27047:4;27034:12;:17;;;;;;27008:22;;:44;26987:18;;:66;26956:147;26929:214;27216:1;27209:4;27200:7;27198:1;27189:7;:10;:18;27188:25;;;;;;27164:22;;:50;27163:54;;;;;;26875:12;:357::i;:::-;:372;;;;;;26786:462;;27266:14;27259:21;;;;;26566:722;;;:::o;29410:180::-;29490:4;29520:1;29515;:6;;29523:12;29507:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;29507:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29547:6;29560:1;29556;:5;29547:14;;29581:1;29574:8;;;29410:180;;;;;:::o;29969:246::-;30049:4;30145:1;30141;:5;30148:12;30133:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;30133:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30172:6;30185:1;30181;:5;;;;;;30172:14;;30206:1;30199:8;;;29969:246;;;;;:::o;28779:198::-;28824:6;28843;28862:1;28857;28853;:5;28852:11;;;;;;28843:20;;28878:1;28874:5;;28890:80;28901:1;28897;:5;28890:80;;;28923:1;28919:5;;28957:1;28952;28948;28944;:5;;;;;;:9;28943:15;;;;;;28939:19;;28890:80;;;28779:198;;;;:::o;1646:27334::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://84843182708bc30e5a5a67616a0921c6311970c64a31edcf3f7cff88dd5c113d
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.