Contract 0x0ffEf1bF3a19DD96310194E73B38c069d1D1c31F

 
There are multiple reports that this contract is a high risk contract. Please exercise caution when interacting with this address.
Txn Hash
Block
From
To
Value
0x665186ba30b4f64fa2a34c7beb1ac967ce817f1cbd11a3eebf8772f559059749(pending)2021-02-28 6:53:141 day 18 hrs ago0xfbee6faa8e15a6ad651d404ad8eed72f6200c3aa IN EtherShare.io0 Ether(Pending)(Pending)
0xe67cd08e2f6cc9c17b3aa0bb635d5c6bc994694473aa96eb4b0ff9afaac5d23d112362372020-11-11 12:14:43110 days 13 hrs ago0x4aa3248a28f20b1251577fc95c18bb822fdd3ad8 IN  EtherShare.io0 Ether0.00101041212
0xc969b546d0159d8ab1a3be2610c93f216ec0aa8b0ed803cc3621f52d8a28ffa7112361552020-11-11 11:53:26110 days 13 hrs ago0x431fe422298c6a783da534e3ba80fbe4250bd30a IN  EtherShare.io0 Ether0.00516350412
0xf769a4a6bef81017e764d37e1faad28bf477e5fdd2310beb8d11d4ec531fc9a5112358362020-11-11 10:42:32110 days 14 hrs ago0x01a183aeeb66a6f643095c5dde49821f67f45233 IN  EtherShare.io0 Ether0.000266212.1
0xf62100dc3d7e7fbf3d865a32f235e54277a74dfaf1f6af2c3f8cdb658c950f44112002802020-11-05 23:40:50116 days 1 hr ago0x52a77f1d3fc849c769c5d461329898724cf85f8f IN  EtherShare.io0 Ether0.00292931120321.000001459
0xcb82548aa2b8b6a2c9be76fbb8571ccf8b7e775183ca4ac1959f1353cd25fc53111999782020-11-05 22:37:13116 days 3 hrs ago0xb6bae24d3eb2b3f52ba5759ff8b44c42ef9a303d IN  EtherShare.io0 Ether0.0034316263321.01
0x73b294ff8735a043d0f874abd2ff365842760faafc221fdaafa0412c1ec686f5111999762020-11-05 22:36:34116 days 3 hrs ago0xb6bae24d3eb2b3f52ba5759ff8b44c42ef9a303d IN  EtherShare.io0 Ether0.0034316263321.01
0xcf5e1b62c3e42c76fa3096796fff8b9fa0305b178a36caf1157c67bc59288631111965642020-11-05 10:05:02116 days 15 hrs ago0xc3359a3ac9d618d21f09f9842dc71bbabb31c0fb IN  EtherShare.io0 Ether0.00831026450524.000001459
0xe8c5bece26300b15d4425e55ef6770debad431357f4234efd99d256ffb4bd69a111900592020-11-04 10:10:10117 days 15 hrs ago0xe992667cf6c3a8b95b7822b90ad237bc74d283d3 IN  EtherShare.io0 Ether0.00309511422
0x709b39a4e0313a3f49e45f2fc9955ab80c8bd7a6713d301a2e4dff334be8b816111898172020-11-04 9:15:28117 days 16 hrs ago0x1f6009590f5f87c2457517e049b7578c821d318f IN  EtherShare.io0 Ether0.006871070717.1
0xb2da2f268983bcd0444d40fc2186c63b997c7986a3e63e61972b6d589cd879ce111893582020-11-04 7:35:45117 days 18 hrs ago0x52a77f1d3fc849c769c5d461329898724cf85f8f IN  EtherShare.io0 Ether0.002385296117.1
0xd5122acaa448e5108adebe0cfd0fef8482efa2d4d866ab7e266ff892ddc30bbb111868882020-11-03 22:25:08118 days 3 hrs ago0x244c8876093f02999e9af7848fcdef616ea875ce IN  EtherShare.io0 Ether0.00268831217
0x545b0723d31a61a50b3d165cdcb871db35c7bf9b1d18af7dbef3e118e9bea3f3111848892020-11-03 15:05:30118 days 10 hrs ago0x42eb12ecbb4bf32a97cea7c26e5c848080f0dfe0 IN  EtherShare.io0 Ether0.00290601737
0x7b8c36927139b319894440796fd806666d95f82e1e8f0213f7d57ca81d29abf4111818432020-11-03 3:43:53118 days 21 hrs ago0xe7168fcdca279d2bed577b0bcc9d56ef0f54b5d2 IN  EtherShare.io0 Ether0.0186899543
0x04c0332e6cc655d633c41fad381d8a9ae5f225d42774a03de0ea2efc1e285097111796622020-11-02 19:45:39119 days 5 hrs ago0xe7168fcdca279d2bed577b0bcc9d56ef0f54b5d2 IN  EtherShare.io0 Ether0.0108662525
0x491f3fc2b5b198c62de2f7a7b06436c4107dbecf17934fdf0206c79f9c2d9689111755912020-11-02 4:54:54119 days 20 hrs ago0x6ee089aa71ec29858dd664fcab877654ac067ee9 IN  EtherShare.io0 Ether0.01409372725631.200001897
0xa8a9c0265c3d64da161ec0a7d02178184cd0fdc5a4b28ed0829008cfc489d4a0111748732020-11-02 2:09:53119 days 23 hrs ago0xb7e350062c609d457eb61d9142e12e081a0c9014 IN  EtherShare.io0 Ether0.01566040860138.000001459
0x810e9cf6b152c80343ee0318a51cfdb8ca4995e3cb088ff4bf4683f76b95462f111739602020-11-01 22:41:41120 days 2 hrs ago0x86f4ad885f49049e003ef54bd47bfabef66d9fc1 IN  EtherShare.io0 Ether0.0041281821
0xe732ca3df9911f7c51e2226b3811027613edaec3de44d84c7f55a25c00db6f34111739552020-11-01 22:40:10120 days 2 hrs ago0x86f4ad885f49049e003ef54bd47bfabef66d9fc1 IN  EtherShare.io0 Ether0.00393160026420.000001347
0xd5abc804d0477c3b0e4832ff0ab5f9c4b84a2cfe0e67dfc44080397947ddcf13111739542020-11-01 22:40:07120 days 2 hrs ago0x15288889d31328c91b1c143e09267613284c3c65 IN  EtherShare.io0 Ether0.00899999121
0x87b274f0367d32a2cbcf07e8f4a6734e015063615c019658d8d954c4b7e66375111727112020-11-01 18:04:55120 days 7 hrs ago0x133e790e27319a3ff6d55695df54d0e826ed9990 IN  EtherShare.io0 Ether0.007293257416.7
0x5dffb35b860a15689c7ef0e2d032dd7064418e48f16886484b5b7686ce95aa43111713732020-11-01 13:07:43120 days 12 hrs ago0x4885afcc97bffc33b91c14f2d461198648264f73 IN  EtherShare.io0 Ether0.0083592420
0x0e855469857ff1a0e08d4a2eb508c3a7aa3455367e3a7d4a5080d78451324e12111706282020-11-01 10:27:04120 days 15 hrs ago0xb4f8affde765c92d793821889348a1008d48b4ce IN  EtherShare.io0 Ether0.00351754619
0x783a340cac166307dfd4a91a8c7aeee3f6289ae3ce8606af69fe9b7b2429d311111700822020-11-01 8:33:02120 days 17 hrs ago0xfcce172f999e96df70adf8d3f4af24cb3969bbc7 IN  EtherShare.io0.1 Ether0.00528457616
0xd796bc0c6e684897b97be5f081b1a5c9918f0c5eac5556c0fa2560a07a4b349b111698062020-11-01 7:33:59120 days 18 hrs ago0x38359cc7b5ad536f774816c71e051f9d278524ce IN  EtherShare.io0 Ether0.00151561818
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x0b5b113448ef673923d534616552a7bdec07e4d177b7c7fe71d52ba19c1b04dd111227742020-10-25 2:02:31127 days 23 hrs ago EtherShare.io0xe30e8299107bf93d29eda25f5578248cdf4a6eff0.081 Ether
0x3740c7390523a583f40fe60c276d551b4749c29f53d559c3c0d2ceea0f5b4539110484832020-10-13 16:49:46139 days 8 hrs ago EtherShare.io0xdba8b8a2bac583a5afc4e89ab00964071f352a0d0.11445 Ether
0x599ffe984ff3c9666d1e87728a342701a2e8e17c1dd9903365ca939dd4683fa2108118992020-09-07 2:48:08175 days 22 hrs ago EtherShare.io0xba86d237c24b7fb6a8544c62033f167602b747580.04 Ether
0x9f82cd3422b374067e3353aa8f8c88a4609ac2cf3d372afd428b29a3bc932a05108118832020-09-07 2:45:08175 days 22 hrs ago EtherShare.io0x015d283d604f40b9cd2501759c5afc0d2f71e9e50.058 Ether
0x1542491e8760b2eb56f9d8ed450077c68fd5e4494485dda6d87bf219958e0755107467982020-08-28 3:38:05185 days 22 hrs ago EtherShare.io0x6bd9cdc179b38b64b18e33f8e89f89630788809a0.044 Ether
0x54b4b49e8d8ae4fc6ab0cc40b8381507717309a91f8d5b574d5db564222633d9107467912020-08-28 3:36:18185 days 22 hrs ago EtherShare.io0xba86d237c24b7fb6a8544c62033f167602b747580.092 Ether
0x812ed140bd81319304c6b3c15df6d83e44ecfed61b4b5b4f68161b62d63c7ef4107467812020-08-28 3:32:43185 days 22 hrs ago EtherShare.io0x9192e26ec90496ffbdfc9e324ec1c9058105c3920.057 Ether
0xffd009d754051c21469897dbab21806f395fd7e6dcfa8b0fdb0fdcc46f7edc37107254322020-08-24 21:06:07189 days 4 hrs ago EtherShare.io0x69f150ec54172383de41ba4f061b84a590bf9bd30.02 Ether
0xd897f5615d2d63e58f642c3839b394aa40635423dd8b1a53eab738ac8101861e107232682020-08-24 13:02:29189 days 12 hrs ago EtherShare.io0x8985deeaf81e13d5f96226f8e5eac9338223efc50.0527 Ether
0xbeb2dbee653d104c4ebb4a041da33c156072d8ad086f8e02de2adab72d3e2a3f107232622020-08-24 13:00:50189 days 12 hrs ago EtherShare.io0xf5015162abe113cbbc9b3a8cbb9b08b2b49606ff0.042 Ether
0x78b3186a299f6e185d59d455e2ae7844c295ebd8bce11f22b4023a5e5108bafa107197302020-08-23 23:55:15190 days 1 hr ago EtherShare.io0xed63e4aaf19391d23880a7e363f75bfb8530e31c0.054 Ether
0xb818f3cf78b3049aa82ba47c631d880d7a6a2300332bfabddd75cb81f57e1314107197202020-08-23 23:53:33190 days 1 hr ago EtherShare.io0x5a2d49fd108fceb9fa13a95e3c762e7474fc49810.052 Ether
0xce1126eee34e30ebef3b0403aa40fa5cec0c7d33258aa9949751fcd3dd550757107144272020-08-23 4:33:23190 days 21 hrs ago EtherShare.io0xad3d3b28f076340ddddc0e284e62dc20747862050.096 Ether
0x3a3831a691ccc7f65dfecee7de434afcd3e27fc19802212f59d9fe6190f22c9d107132322020-08-23 0:13:13191 days 1 hr ago EtherShare.io0x69f150ec54172383de41ba4f061b84a590bf9bd30.06 Ether
0x5f5f620ecdd65aa15b9f7789bf372b4e9a3e7ad73be67f03ae28ff8526cd5f58107132182020-08-23 0:09:03191 days 1 hr ago EtherShare.io0x76363d59a3d3ab95b10aed3955e1e4856b90710e0.036 Ether
0xb1705cf371cbd288ac441ac6c3d9c66009935f3117044bf56e229a3c24542a02106988712020-08-20 19:03:51193 days 6 hrs ago EtherShare.io0x28fbc379336b8aaadd6f74cecccfb348c9b07b670.03 Ether
0x2507ba39959bd1aa30fd4ff182773af5cb55c8aa38b026553635904dfb515d3a106988212020-08-20 18:55:14193 days 6 hrs ago EtherShare.io0x76363d59a3d3ab95b10aed3955e1e4856b90710e0.054 Ether
0xbff675036f79e397a4f49f1a8dfa5a76da5494020ac769cce1b1eb789d84b5a0106942182020-08-20 1:56:54193 days 23 hrs ago EtherShare.io0xe0b09676015b3adae36668eb82a80ae53ec86fc70.02 Ether
0xf5fa8d489e51ad562f6ced132e53fea6958c8d0b60b9cb52fb9b0a7eb9c0e250106940902020-08-20 1:33:22194 days 5 mins ago EtherShare.io0x69f150ec54172383de41ba4f061b84a590bf9bd30.08 Ether
0x9eb08d86f45b9e1ca68890542052f211a56ee534f08fcba3f99d647cdb7571de106821952020-08-18 5:53:13195 days 19 hrs ago EtherShare.io0x76363d59a3d3ab95b10aed3955e1e4856b90710e0.108 Ether
0x972cd34e6de5aea5279a167ec63391758d0e493aa285293164da1415fc3b1016106732222020-08-16 20:19:40197 days 5 hrs ago EtherShare.io0x69f150ec54172383de41ba4f061b84a590bf9bd30.06 Ether
0x1853de7da6b510ba1840b899ab425fa22ab647f69b9a8c99cc40540d78d51f26106732212020-08-16 20:19:25197 days 5 hrs ago EtherShare.io0x843ef9a8281ccaf3c9cc45c16afe1c8ce6f827e30.068 Ether
0x68b8cd9512a45bdf4400192f9fe0a3ddb11cac9a7034f794bb77fc0aa0d6916c106732162020-08-16 20:18:39197 days 5 hrs ago EtherShare.io0xf5015162abe113cbbc9b3a8cbb9b08b2b49606ff0.066 Ether
0xc571b39a52d7e2ad7df6bc539dd0af83832b87e7148c9412b17ee013082b8565106635202020-08-15 8:15:35198 days 17 hrs ago EtherShare.io0x2a46aea2087d76d7072476b08d2baced5521bb480.1 Ether
0xd11d5c20e2bcb21d4c5c310b298810fed7edb103a8166058690ec0b85bc8c9ae106635162020-08-15 8:14:44198 days 17 hrs ago EtherShare.io0x0d3f2dfcc34dbf776680dea948c0a6b2ac31fa370.07 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherShare

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
Yes with 200 runs

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

/*

*███████╗████████╗██╗░░██╗███████╗██████╗░░██████╗██╗░░██╗░█████╗░██████╗░███████╗
*██╔════╝╚══██╔══╝██║░░██║██╔════╝██╔══██╗██╔════╝██║░░██║██╔══██╗██╔══██╗██╔════╝
*█████╗░░░░░██║░░░███████║█████╗░░██████╔╝╚█████╗░███████║███████║██████╔╝█████╗░░
*██╔══╝░░░░░██║░░░██╔══██║██╔══╝░░██╔══██╗░╚═══██╗██╔══██║██╔══██║██╔══██╗██╔══╝░░
*███████╗░░░██║░░░██║░░██║███████╗██║░░██║██████╔╝██║░░██║██║░░██║██║░░██║███████╗
*╚══════╝░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═════╝░╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚══════╝
*** Official Telegram Channel: https://t.me/ethershare
*** Made with ♥ by Team GENIE
*/

pragma solidity ^0.5.11;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/[email protected]`.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/[email protected]`.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

library DataStructs {

        struct DailyRound {
            uint256 startTime;
            uint256 endTime;
            bool ended; //has daily round ended
            uint256 pool; //amount in the pool;
        }

        struct Player {
            uint256 totalInvestment;
            uint256 totalVolumeEth;
            uint256 eventVariable;
            uint256 directReferralIncome;
            uint256 roiReferralIncome;
            uint256 currentInvestedAmount;
            uint256 dailyIncome;            
            uint256 lastSettledTime;
            uint256 incomeLimitLeft;
            uint256 investorPoolIncome;
            uint256 sponsorPoolIncome;
            uint256 superIncome;
            uint256 referralCount;
            address referrer;
        }

        struct PlayerDailyRounds {
            uint256 selfInvestment; 
            uint256 ethVolume; 
        }
}

contract EtherShare {
    using SafeMath for *;

    address public owner;
    address public roundStarter;
    uint256 private houseFee = 3;
    uint256 private poolTime = 24 hours;
    uint256 private payoutPeriod = 24 hours;
    uint256 private dailyWinPool = 10;
    uint256 private incomeTimes = 30;
    uint256 private incomeDivide = 10;
    uint256 public roundID;
    uint256 public r1 = 0;
    uint256 public r2 = 0;
    uint256 public r3 = 0;
    uint256[3] private awardPercentage;

    struct Leaderboard {
        uint256 amt;
        address addr;
    }

    Leaderboard[3] public topPromoters;
    Leaderboard[3] public topInvestors;
    
    Leaderboard[3] public lastTopInvestors;
    Leaderboard[3] public lastTopPromoters;
    uint256[3] public lastTopInvestorsWinningAmount;
    uint256[3] public lastTopPromotersWinningAmount;
        

    mapping (uint => uint) public CYCLE_PRICE;
    mapping (address => bool) public playerExist;
    mapping (uint256 => DataStructs.DailyRound) public round;
    mapping (address => DataStructs.Player) public player;
    mapping (address => mapping (uint256 => DataStructs.PlayerDailyRounds)) public plyrRnds_; 

    /****************************  EVENTS   *****************************************/

    event registerUserEvent(address indexed _playerAddress, address indexed _referrer);
    event investmentEvent(address indexed _playerAddress, uint256 indexed _amount);
    event referralCommissionEvent(address indexed _playerAddress, address indexed _referrer, uint256 indexed amount, uint256 timeStamp);
    event dailyPayoutEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp);
    event withdrawEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp);
    event superBonusEvent(address indexed _playerAddress, uint256 indexed _amount);
    event superBonusAwardEvent(address indexed _playerAddress, uint256 indexed _amount);
    event roundAwardsEvent(address indexed _playerAddress, uint256 indexed _amount);
    event ownershipTransferred(address indexed owner, address indexed newOwner);



    constructor (address _roundStarter) public {
         owner = msg.sender;
         roundStarter = _roundStarter;
         roundID = 1;
         round[1].startTime = now;
         round[1].endTime = now + poolTime;
         awardPercentage[0] = 50;
         awardPercentage[1] = 30;
         awardPercentage[2] = 20;
    }
    
    /****************************  MODIFIERS    *****************************************/
    
    
    /**
     * @dev sets boundaries for incoming tx
     */
    modifier isWithinLimits(uint256 _eth) {
        require(_eth >= 100000000000000000, "Minimum contribution amount is 0.1 ETH");
        _;
    }

    /**
     * @dev sets permissible values for incoming tx
     */
    modifier isallowedValue(uint256 _eth) {
        require(_eth % 100000000000000000 == 0, "Amount should be in multiple of 0.1 ETH please");
        _;
    }
    
    /**
     * @dev allows only the user to run the function
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "only Owner");
        _;
    }


    /****************************  CORE LOGIC    *****************************************/


    //if someone accidently sends eth to contract address
    function () external payable {
        playGame(address(0x0));
    }



   
    function playGame(address _referrer) 
    public
    isWithinLimits(msg.value)
    isallowedValue(msg.value)
    payable {

        uint256 amount = msg.value;
        if (playerExist[msg.sender] == false) { 

            player[msg.sender].lastSettledTime = now;
            player[msg.sender].currentInvestedAmount = amount;
            player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide);
            player[msg.sender].totalInvestment = amount;
            player[msg.sender].eventVariable = 100 ether;
            playerExist[msg.sender] = true;
            
            //update player's investment in current round
            plyrRnds_[msg.sender][roundID].selfInvestment = plyrRnds_[msg.sender][roundID].selfInvestment.add(amount);
            addInvestor(msg.sender);
                    
            if(
                // is this a referred purchase?
                _referrer != address(0x0) && 
                
                //self referrer not allowed
                _referrer != msg.sender &&
                
                //referrer exists?
                playerExist[_referrer] == true
              ) {
                    player[msg.sender].referrer = _referrer;
                    player[_referrer].referralCount = player[_referrer].referralCount.add(1);
                    player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                    plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                    
                    addPromoter(_referrer);
                    checkSuperBonus(_referrer);
                    referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
                }
              else {
                  r1 = r1.add(amount.mul(20).div(100));
                  _referrer = address(0x0);
                }
              emit registerUserEvent(msg.sender, _referrer);
            }
            
            //if the player has already joined earlier
            else {
                
                require(player[msg.sender].incomeLimitLeft == 0, "Oops your limit is still remaining");
                require(amount >= player[msg.sender].currentInvestedAmount, "Cannot invest lesser amount");
                
                    
                player[msg.sender].lastSettledTime = now;
                player[msg.sender].currentInvestedAmount = amount;
                player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide);
                player[msg.sender].totalInvestment = player[msg.sender].totalInvestment.add(amount);
                    
                //update player's investment in current round
                plyrRnds_[msg.sender][roundID].selfInvestment = plyrRnds_[msg.sender][roundID].selfInvestment.add(amount);
                addInvestor(msg.sender);
                
                if(
                    // is this a referred purchase?
                    _referrer != address(0x0) && 
                    // self referrer not allowed
                    _referrer != msg.sender &&
                    //does the referrer exist?
                    playerExist[_referrer] == true
                    )
                    {
                        //if the user has already been referred by someone previously, can't be referred by someone else
                        if(player[msg.sender].referrer != address(0x0))
                            _referrer = player[msg.sender].referrer;
                        else {
                            player[msg.sender].referrer = _referrer;
                            player[_referrer].referralCount = player[_referrer].referralCount.add(1);
                       }
                            
                        player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                        plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                        addPromoter(_referrer);
                        checkSuperBonus(_referrer);
                        //assign the referral commission to all.
                        referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
                    }
                    //might be possible that the referrer is 0x0 but previously someone has referred the user                    
                    else if(
                        //0x0 coming from the UI
                        _referrer == address(0x0) &&
                        //check if the someone has previously referred the user
                        player[msg.sender].referrer != address(0x0)
                        ) {
                            _referrer = player[msg.sender].referrer;                             
                            plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                            player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                             
                            addPromoter(_referrer);
                            checkSuperBonus(_referrer);
                            //assign the referral commission to all.
                            referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
                          }
                    else {
                          //no referrer, neither was previously used, nor has used now.
                          r1 = r1.add(amount.mul(20).div(100));
                        }
            }
            
            round[roundID].pool = round[roundID].pool.add(amount.mul(dailyWinPool).div(100));
            player[owner].dailyIncome = player[owner].dailyIncome.add(amount.mul(houseFee).div(100));
            r3 = r3.add(amount.mul(5).div(100));
            emit investmentEvent (msg.sender, amount);
            
    }
    
    //to check the super bonus eligibilty
    function checkSuperBonus(address _playerAddress) private {
        if(player[_playerAddress].totalVolumeEth >= player[_playerAddress].eventVariable) {
            player[_playerAddress].eventVariable = player[_playerAddress].eventVariable.add(100 ether);
            emit superBonusEvent(_playerAddress, player[_playerAddress].totalVolumeEth);
        }
    }


    function referralBonusTransferDirect(address _playerAddress, uint256 amount)
    private
    {
        address _nextReferrer = player[_playerAddress].referrer;
        uint256 _amountLeft = amount.mul(60).div(100);
        uint i;

        for(i=0; i < 10; i++) {
            
            if (_nextReferrer != address(0x0)) {
                //referral commission to level 1
                if(i == 0) {
                    if (player[_nextReferrer].incomeLimitLeft >= amount.div(2)) {
                        player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(2));
                        player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(2));
                        //This event will be used to get the total referral commission of a person, no need for extra variable
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(2), now);                        
                    }
                    else if(player[_nextReferrer].incomeLimitLeft !=0) {
                        player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                        r1 = r1.add(amount.div(2).sub(player[_nextReferrer].incomeLimitLeft));
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                        player[_nextReferrer].incomeLimitLeft = 0;
                    }
                    else  {
                        r1 = r1.add(amount.div(2)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(2));
                }
                
                else if(i == 1 ) {
                    if(player[_nextReferrer].referralCount >= 2) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(10)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(10));
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(10));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(10), now);                        
                        }
                        else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r1 = r1.add(amount.div(10).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;
                        }
                        else  {
                            r1 = r1.add(amount.div(10)); 
                        }
                    }
                    else{
                        r1 = r1.add(amount.div(10)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(10));
                }
                //referral commission from level 3-10
                else {
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20));
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(20));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now);
                    
                        }
                        else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r1 = r1.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                    
                        }
                        else  {
                            r1 = r1.add(amount.div(20)); 
                        }
                    }
                    else {
                        r1 = r1.add(amount.div(20)); 
                    }
                }
            }
            else {
                r1 = r1.add((uint(10).sub(i)).mul(amount.div(20)).add(_amountLeft)); 
                break;
            }
            _nextReferrer = player[_nextReferrer].referrer;
        }
    }
    

    
    function referralBonusTransferDailyROI(address _playerAddress, uint256 amount)
    private
    {
        address _nextReferrer = player[_playerAddress].referrer;
        uint256 _amountLeft = amount.div(2);
        uint i;

        for(i=0; i < 20; i++) {
            
            if (_nextReferrer != address(0x0)) {
                if(i == 0) {
                    if (player[_nextReferrer].incomeLimitLeft >= amount.div(2)) {
                        player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(2));
                        player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(2));
                        
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(2), now);
                        
                    } else if(player[_nextReferrer].incomeLimitLeft !=0) {
                        player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                        r2 = r2.add(amount.div(2).sub(player[_nextReferrer].incomeLimitLeft));
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                        player[_nextReferrer].incomeLimitLeft = 0;
                        
                    }
                    else {
                        r2 = r2.add(amount.div(2)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(2));                
                }
                else { // for users 2-20
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20));
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(20));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now);
                        
                        }else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r2 = r2.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                        
                        }
                        else {
                            r2 = r2.add(amount.div(20)); 
                        }
                    }
                    else {
                         r2 = r2.add(amount.div(20)); //make a note of the missed commission;
                    }
                }
            }   
            else {
                if(i==0){
                    r2 = r2.add(amount.mul(145).div(100));
                    break;
                }
                else {
                    r2 = r2.add((uint(20).sub(i)).mul(amount.div(20)).add(_amountLeft)); 
                    break;
                }
                
            }
            _nextReferrer = player[_nextReferrer].referrer;
        }
    }
    

    //method to settle and withdraw the daily ROI
    function settleIncome(address _playerAddress)
    private {
        
            
        uint256 remainingTimeForPayout;
        uint256 currInvestedAmount;
            
        if(now > player[_playerAddress].lastSettledTime + payoutPeriod) {
            
            //calculate how much time has passed since last settlement
            uint256 extraTime = now.sub(player[_playerAddress].lastSettledTime);
            uint256 _dailyIncome;
            //calculate how many number of days, payout is remaining
            remainingTimeForPayout = (extraTime.sub((extraTime % payoutPeriod))).div(payoutPeriod);
            
            currInvestedAmount = player[_playerAddress].currentInvestedAmount;
            //calculate 2% of his invested amount
            _dailyIncome = currInvestedAmount.div(50);
            //check his income limit remaining
            if (player[_playerAddress].incomeLimitLeft >= _dailyIncome.mul(remainingTimeForPayout)) {
                player[_playerAddress].incomeLimitLeft = player[_playerAddress].incomeLimitLeft.sub(_dailyIncome.mul(remainingTimeForPayout));
                player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(_dailyIncome.mul(remainingTimeForPayout));
                player[_playerAddress].lastSettledTime = player[_playerAddress].lastSettledTime.add((extraTime.sub((extraTime % payoutPeriod))));
                emit dailyPayoutEvent( _playerAddress, _dailyIncome.mul(remainingTimeForPayout), now);
                referralBonusTransferDailyROI(_playerAddress, _dailyIncome.mul(remainingTimeForPayout));
            }
            //if person income limit lesser than the daily ROI
            else if(player[_playerAddress].incomeLimitLeft !=0) {
                uint256 temp;
                temp = player[_playerAddress].incomeLimitLeft;                 
                player[_playerAddress].incomeLimitLeft = 0;
                player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(temp);
                player[_playerAddress].lastSettledTime = now;
                emit dailyPayoutEvent( _playerAddress, temp, now);
                referralBonusTransferDailyROI(_playerAddress, temp);
            }         
        }
        
    }
    

    //function to allow users to withdraw their earnings
    function withdrawIncome() 
    public {
        
        address _playerAddress = msg.sender;
        
        //settle the daily dividend
        settleIncome(_playerAddress);
        
        uint256 _earnings =
                    player[_playerAddress].dailyIncome +
                    player[_playerAddress].directReferralIncome +
                    player[_playerAddress].roiReferralIncome +
                    player[_playerAddress].investorPoolIncome +
                    player[_playerAddress].sponsorPoolIncome +
                    player[_playerAddress].superIncome;

        //can only withdraw if they have some earnings.         
        if(_earnings > 0) {
            require(address(this).balance >= _earnings, "Contract doesn't have sufficient amount to give you");

            player[_playerAddress].dailyIncome = 0;
            player[_playerAddress].directReferralIncome = 0;
            player[_playerAddress].roiReferralIncome = 0;
            player[_playerAddress].investorPoolIncome = 0;
            player[_playerAddress].sponsorPoolIncome = 0;
            player[_playerAddress].superIncome = 0;
            
            address(uint160(_playerAddress)).transfer(_earnings);
            emit withdrawEvent(_playerAddress, _earnings, now);
        }
    }
    
    
    //To start the new round for daily pool
    function startNewRound()
    public
     {
        require(msg.sender == roundStarter,"Oops you can't start the next round");
    
        uint256 _roundID = roundID;
       
        uint256 _poolAmount = round[roundID].pool;
        if (now > round[_roundID].endTime && round[_roundID].ended == false) {
            
            if (_poolAmount >= 10 ether) {
                round[_roundID].ended = true;
                uint256 distributedSponsorAwards = distributeTopPromoters();
                uint256 distributedInvestorAwards = distributeTopInvestors();
       
                _roundID++;
                roundID++;
                round[_roundID].startTime = now;
                round[_roundID].endTime = now.add(poolTime);
                round[_roundID].pool = _poolAmount.sub(distributedSponsorAwards.add(distributedInvestorAwards));
            }
            else {
                round[_roundID].ended = true;
                _roundID++;
                roundID++;
                round[_roundID].startTime = now;
                round[_roundID].endTime = now.add(poolTime);
                round[_roundID].pool = _poolAmount;
            }
        }
    }


    
    function addPromoter(address _add)
        private
        returns (bool)
    {
        if (_add == address(0x0)){
            return false;
        }

        uint256 _amt = plyrRnds_[_add][roundID].ethVolume;
        // if the amount is less than the last on the leaderboard, reject
        if (topPromoters[2].amt >= _amt){
            return false;
        }

        address firstAddr = topPromoters[0].addr;
        uint256 firstAmt = topPromoters[0].amt;
        address secondAddr = topPromoters[1].addr;
        uint256 secondAmt = topPromoters[1].amt;


        // if the user should be at the top
        if (_amt > topPromoters[0].amt){

            if (topPromoters[0].addr == _add){
                topPromoters[0].amt = _amt;
                return true;
            }
            //if user is at the second position already and will come on first
            else if (topPromoters[1].addr == _add){

                topPromoters[0].addr = _add;
                topPromoters[0].amt = _amt;
                topPromoters[1].addr = firstAddr;
                topPromoters[1].amt = firstAmt;
                return true;
            }
            else{

                topPromoters[0].addr = _add;
                topPromoters[0].amt = _amt;
                topPromoters[1].addr = firstAddr;
                topPromoters[1].amt = firstAmt;
                topPromoters[2].addr = secondAddr;
                topPromoters[2].amt = secondAmt;
                return true;
            }
        }
        // if the user should be at the second position
        else if (_amt > topPromoters[1].amt){

            if (topPromoters[1].addr == _add){
                topPromoters[1].amt = _amt;
                return true;
            }
            else{

                topPromoters[1].addr = _add;
                topPromoters[1].amt = _amt;
                topPromoters[2].addr = secondAddr;
                topPromoters[2].amt = secondAmt;
                return true;
            }

        }
        // if the user should be at the third position
        else if (_amt > topPromoters[2].amt){

             if (topPromoters[2].addr == _add){
                topPromoters[2].amt = _amt;
                return true;
            }
            
            else{
                topPromoters[2].addr = _add;
                topPromoters[2].amt = _amt;
                return true;
            }

        }

    }


    function addInvestor(address _add)
        private
        returns (bool)
    {
        if (_add == address(0x0)){
            return false;
        }

        uint256 _amt = plyrRnds_[_add][roundID].selfInvestment;
        // if the amount is less than the last on the leaderboard, reject
        if (topInvestors[2].amt >= _amt){
            return false;
        }

        address firstAddr = topInvestors[0].addr;
        uint256 firstAmt = topInvestors[0].amt;
        address secondAddr = topInvestors[1].addr;
        uint256 secondAmt = topInvestors[1].amt;

        // if the user should be at the top
        if (_amt > topInvestors[0].amt){

            if (topInvestors[0].addr == _add){
                topInvestors[0].amt = _amt;
                return true;
            }
            //if user is at the second position already and will come on first
            else if (topInvestors[1].addr == _add){

                topInvestors[0].addr = _add;
                topInvestors[0].amt = _amt;
                topInvestors[1].addr = firstAddr;
                topInvestors[1].amt = firstAmt;
                return true;
            }

            else {

                topInvestors[0].addr = _add;
                topInvestors[0].amt = _amt;
                topInvestors[1].addr = firstAddr;
                topInvestors[1].amt = firstAmt;
                topInvestors[2].addr = secondAddr;
                topInvestors[2].amt = secondAmt;
                return true;
            }
        }
        // if the user should be at the second position
        else if (_amt > topInvestors[1].amt){

             if (topInvestors[1].addr == _add){
                topInvestors[1].amt = _amt;
                return true;
            }
            else{
                
                topInvestors[1].addr = _add;
                topInvestors[1].amt = _amt;
                topInvestors[2].addr = secondAddr;
                topInvestors[2].amt = secondAmt;
                return true;
            }

        }
        // if the user should be at the third position
        else if (_amt > topInvestors[2].amt){

            if (topInvestors[2].addr == _add){
                topInvestors[2].amt = _amt;
                return true;
            }
            else{
                topInvestors[2].addr = _add;
                topInvestors[2].amt = _amt;
                return true;
            }

        }
    }

    function distributeTopPromoters() 
        private 
        returns (uint256)
        {
            uint256 totAmt = round[roundID].pool.mul(10).div(100);
            uint256 distributedAmount;
            uint256 i;
       

            for (i = 0; i< 3; i++) {
                if (topPromoters[i].addr != address(0x0)) {
                    if (player[topPromoters[i].addr].incomeLimitLeft >= totAmt.mul(awardPercentage[i]).div(100)) {
                        player[topPromoters[i].addr].incomeLimitLeft = player[topPromoters[i].addr].incomeLimitLeft.sub(totAmt.mul(awardPercentage[i]).div(100));
                        player[topPromoters[i].addr].sponsorPoolIncome = player[topPromoters[i].addr].sponsorPoolIncome.add(totAmt.mul(awardPercentage[i]).div(100));                                                
                        emit roundAwardsEvent(topPromoters[i].addr, totAmt.mul(awardPercentage[i]).div(100));
                    }
                    else if(player[topPromoters[i].addr].incomeLimitLeft !=0) {
                        player[topPromoters[i].addr].sponsorPoolIncome = player[topPromoters[i].addr].sponsorPoolIncome.add(player[topPromoters[i].addr].incomeLimitLeft);
                        r2 = r2.add((totAmt.mul(awardPercentage[i]).div(100)).sub(player[topPromoters[i].addr].incomeLimitLeft));
                        emit roundAwardsEvent(topPromoters[i].addr,player[topPromoters[i].addr].incomeLimitLeft);
                        player[topPromoters[i].addr].incomeLimitLeft = 0;
                    }
                    else {
                        r2 = r2.add(totAmt.mul(awardPercentage[i]).div(100));
                    }

                    distributedAmount = distributedAmount.add(totAmt.mul(awardPercentage[i]).div(100));
                    lastTopPromoters[i].addr = topPromoters[i].addr;
                    lastTopPromoters[i].amt = topPromoters[i].amt;
                    lastTopPromotersWinningAmount[i] = totAmt.mul(awardPercentage[i]).div(100);
                    topPromoters[i].addr = address(0x0);
                    topPromoters[i].amt = 0;
                }
            }
            return distributedAmount;
        }

    function distributeTopInvestors()
        private 
        returns (uint256)
        {
            uint256 totAmt = round[roundID].pool.mul(10).div(100);
            uint256 distributedAmount;
            uint256 i;
       

            for (i = 0; i< 3; i++) {
                if (topInvestors[i].addr != address(0x0)) {
                    if (player[topInvestors[i].addr].incomeLimitLeft >= totAmt.mul(awardPercentage[i]).div(100)) {
                        player[topInvestors[i].addr].incomeLimitLeft = player[topInvestors[i].addr].incomeLimitLeft.sub(totAmt.mul(awardPercentage[i]).div(100));
                        player[topInvestors[i].addr].investorPoolIncome = player[topInvestors[i].addr].investorPoolIncome.add(totAmt.mul(awardPercentage[i]).div(100));                                                
                        emit roundAwardsEvent(topInvestors[i].addr, totAmt.mul(awardPercentage[i]).div(100));
                        
                    }
                    else if(player[topInvestors[i].addr].incomeLimitLeft !=0) {
                        player[topInvestors[i].addr].investorPoolIncome = player[topInvestors[i].addr].investorPoolIncome.add(player[topInvestors[i].addr].incomeLimitLeft);
                        r2 = r2.add((totAmt.mul(awardPercentage[i]).div(100)).sub(player[topInvestors[i].addr].incomeLimitLeft));
                        emit roundAwardsEvent(topInvestors[i].addr, player[topInvestors[i].addr].incomeLimitLeft);
                        player[topInvestors[i].addr].incomeLimitLeft = 0;
                    }
                    else {
                        r2 = r2.add(totAmt.mul(awardPercentage[i]).div(100));
                    }

                    distributedAmount = distributedAmount.add(totAmt.mul(awardPercentage[i]).div(100));
                    lastTopInvestors[i].addr = topInvestors[i].addr;
                    lastTopInvestors[i].amt = topInvestors[i].amt;
                    topInvestors[i].addr = address(0x0);
                    lastTopInvestorsWinningAmount[i] = totAmt.mul(awardPercentage[i]).div(100);
                    topInvestors[i].amt = 0;
                }
            }
            return distributedAmount;
        }



    //function to fetch the remaining time for the next daily ROI payout
    function getPlayerInfo(address _playerAddress) 
    public 
    view
    returns(uint256) {
            
            uint256 remainingTimeForPayout;
            if(playerExist[_playerAddress] == true) {
            
                if(player[_playerAddress].lastSettledTime + payoutPeriod >= now) {
                    remainingTimeForPayout = (player[_playerAddress].lastSettledTime + payoutPeriod).sub(now);
                }
                else {
                    uint256 temp = now.sub(player[_playerAddress].lastSettledTime);
                    remainingTimeForPayout = payoutPeriod.sub((temp % payoutPeriod));
                }
                return remainingTimeForPayout;
            }
    }


    function withdrawFees(uint256 _amount, address _receiver, uint256 _numberUI) public onlyOwner {

        if(_numberUI == 1 && r1 >= _amount) {
            if(_amount > 0) {
                if(address(this).balance >= _amount) {
                    r1 = r1.sub(_amount);
                    address(uint160(_receiver)).transfer(_amount);
                }
            }
        }
        else if(_numberUI == 2 && r2 >= _amount) {
            if(_amount > 0) {
                if(address(this).balance >= _amount) {
                    r2 = r2.sub(_amount);
                    address(uint160(_receiver)).transfer(_amount);
                }
            }
        }
        else if(_numberUI == 3) {
            player[_receiver].superIncome = player[_receiver].superIncome.add(_amount);
            r3 = r3.sub(_amount);
            emit superBonusAwardEvent(_receiver, _amount);
        }
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) external onlyOwner {
        _transferOwnership(newOwner);
    }

     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) private {
        require(newOwner != address(0), "New owner cannot be the zero address");
        emit ownershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"internalType":"address","name":"_referrer","type":"address"}],"name":"playGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"r2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawIncome","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopInvestors","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"round","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"ended","type":"bool"},{"internalType":"uint256","name":"pool","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"plyrRnds_","outputs":[{"internalType":"uint256","name":"selfInvestment","type":"uint256"},{"internalType":"uint256","name":"ethVolume","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"player","outputs":[{"internalType":"uint256","name":"totalInvestment","type":"uint256"},{"internalType":"uint256","name":"totalVolumeEth","type":"uint256"},{"internalType":"uint256","name":"eventVariable","type":"uint256"},{"internalType":"uint256","name":"directReferralIncome","type":"uint256"},{"internalType":"uint256","name":"roiReferralIncome","type":"uint256"},{"internalType":"uint256","name":"currentInvestedAmount","type":"uint256"},{"internalType":"uint256","name":"dailyIncome","type":"uint256"},{"internalType":"uint256","name":"lastSettledTime","type":"uint256"},{"internalType":"uint256","name":"incomeLimitLeft","type":"uint256"},{"internalType":"uint256","name":"investorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"sponsorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"superIncome","type":"uint256"},{"internalType":"uint256","name":"referralCount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundStarter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopPromoters","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_playerAddress","type":"address"}],"name":"getPlayerInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_numberUI","type":"uint256"}],"name":"withdrawFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"topPromoters","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"CYCLE_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"topInvestors","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopInvestorsWinningAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startNewRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopPromotersWinningAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_roundStarter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"}],"name":"registerUserEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"investmentEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"referralCommissionEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"dailyPayoutEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"withdrawEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"superBonusEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"superBonusAwardEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"roundAwardsEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"ownershipTransferred","type":"event"}]

608060405260036002556201518060035562015180600455600a600555601e600655600a60075560006009556000600a556000600b5534801561004157600080fd5b50604051613b15380380613b158339818101604052602081101561006457600080fd5b505160008054336001600160a01b0319918216178255600180549091166001600160a01b03841617815560088190558152602f602052427f2fedb8cac919e2d61802d3f3f65600df9e1e136f03180ed4a848faa78b371a48819055600354017f2fedb8cac919e2d61802d3f3f65600df9e1e136f03180ed4a848faa78b371a4955603290600c0155601e600c600101556014600c6002015550613a098061010c6000396000f3fe6080604052600436106101405760003560e01c80636ca5b5b0116100b6578063ad012f1c1161006f578063ad012f1c146104ba578063b105c24d146104e4578063bd85948c1461050e578063f2445a4b14610523578063f2fde38b1461054d578063fff072411461058057610140565b80636ca5b5b0146103e857806372ad692e146103fd578063790956f71461043c5780638bf6e410146104665780638da5cb5b1461047b578063abb02bcc1461049057610140565b806334d5f37b1161010857806334d5f37b1461020e578063452b381d1461025e5780634c54e1b5146102b0578063520298a01461035a5780635468aee41461038b57806359328401146103b557610140565b806307c331cd1461014c5780630bcbbd211461017257806314f8b424146101995780631a0fa8c3146101ae5780631cb9579c146101c3575b61014a60006105c7565b005b61014a6004803603602081101561016257600080fd5b50356001600160a01b03166105c7565b34801561017e57600080fd5b50610187610e70565b60408051918252519081900360200190f35b3480156101a557600080fd5b50610187610e76565b3480156101ba57600080fd5b5061014a610e7c565b3480156101cf57600080fd5b506101ed600480360360208110156101e657600080fd5b5035610fb8565b604080519283526001600160a01b0390911660208301528051918290030190f35b34801561021a57600080fd5b506102386004803603602081101561023157600080fd5b5035610fe0565b604080519485526020850193909352901515838301526060830152519081900360800190f35b34801561026a57600080fd5b506102976004803603604081101561028157600080fd5b506001600160a01b03813516906020013561100d565b6040805192835260208301919091528051918290030190f35b3480156102bc57600080fd5b506102e3600480360360208110156102d357600080fd5b50356001600160a01b0316611031565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526001600160a01b03166101a083015251908190036101c00190f35b34801561036657600080fd5b5061036f6110a7565b604080516001600160a01b039092168252519081900360200190f35b34801561039757600080fd5b506101ed600480360360208110156103ae57600080fd5b50356110b6565b3480156103c157600080fd5b50610187600480360360208110156103d857600080fd5b50356001600160a01b03166110c3565b3480156103f457600080fd5b506101876111a9565b34801561040957600080fd5b5061014a6004803603606081101561042057600080fd5b508035906001600160a01b0360208201351690604001356111af565b34801561044857600080fd5b506101ed6004803603602081101561045f57600080fd5b503561138a565b34801561047257600080fd5b50610187611397565b34801561048757600080fd5b5061036f61139d565b34801561049c57600080fd5b50610187600480360360208110156104b357600080fd5b50356113ac565b3480156104c657600080fd5b506101ed600480360360208110156104dd57600080fd5b50356113be565b3480156104f057600080fd5b506101876004803603602081101561050757600080fd5b50356113cb565b34801561051a57600080fd5b5061014a6113df565b34801561052f57600080fd5b506101876004803603602081101561054657600080fd5b5035611595565b34801561055957600080fd5b5061014a6004803603602081101561057057600080fd5b50356001600160a01b03166115a2565b34801561058c57600080fd5b506105b3600480360360208110156105a357600080fd5b50356001600160a01b03166115fa565b604080519115158252519081900360200190f35b3467016345785d8a000081101561060f5760405162461bcd60e51b81526004018080602001828103825260268152602001806138b76026913960400191505060405180910390fd5b3467016345785d8a00008106156106575760405162461bcd60e51b815260040180806020018281038252602e815260200180613941602e913960400191505060405180910390fd5b336000908152602e6020526040902054349060ff1661091857336000908152603060205260409020426007808301919091556005909101829055546006546106b791906106ab90849063ffffffff61160f16565b9063ffffffff61167116565b33600090815260306020908152604080832060088082019590955585815568056bc75e2d63100000600290910155602e8252808320805460ff1916600117905560318252808320935483529290522054610717908263ffffffff6116b316565b33600081815260316020908152604080832060085484529091529020919091556107409061170d565b506001600160a01b0384161580159061076257506001600160a01b0384163314155b801561078b57506001600160a01b0384166000908152602e602052604090205460ff1615156001145b156108ad5733600090815260306020526040808220600d0180546001600160a01b0319166001600160a01b03881690811790915582529020600c01546107d29060016116b3565b6001600160a01b0385166000908152603060205260409020600c81019190915560010154610806908263ffffffff6116b316565b6001600160a01b03851660009081526030602090815260408083206001908101949094556031825280832060085484529091529020015461084d908263ffffffff6116b316565b6001600160a01b0385166000908152603160209081526040808320600854845290915290206001015561087f84611954565b5061088984611b84565b6108a8336108a360646106ab85601463ffffffff61160f16565b611c31565b6108dd565b6108d56108c660646106ab84601463ffffffff61160f16565b6009549063ffffffff6116b316565b600955600093505b6040516001600160a01b0385169033907fddb5b955685e49590bf27ea3575cf7aea7a942422afa776dba9c6fd4ff3e655a90600090a3610d5c565b33600090815260306020526040902060080154156109675760405162461bcd60e51b815260040180806020018281038252602281526020018061396f6022913960400191505060405180910390fd5b336000908152603060205260409020600501548110156109ce576040805162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420696e76657374206c657373657220616d6f756e740000000000604482015290519081900360640190fd5b33600090815260306020526040902042600780830191909155600590910182905554600654610a0991906106ab90849063ffffffff61160f16565b336000908152603060205260409020600881019190915554610a31908263ffffffff6116b316565b3360009081526030602090815260408083209390935560318152828220600854835290522054610a67908263ffffffff6116b316565b3360008181526031602090815260408083206008548452909152902091909155610a909061170d565b506001600160a01b03841615801590610ab257506001600160a01b0384163314155b8015610adb57506001600160a01b0384166000908152602e602052604090205460ff1615156001145b15610c5157336000908152603060205260409020600d01546001600160a01b031615610b2457336000908152603060205260409020600d01546001600160a01b03169350610b83565b33600090815260306020526040808220600d0180546001600160a01b0319166001600160a01b03881690811790915582529020600c0154610b669060016116b3565b6001600160a01b0385166000908152603060205260409020600c01555b6001600160a01b038416600090815260306020526040902060010154610baf908263ffffffff6116b316565b6001600160a01b038516600090815260306020908152604080832060019081019490945560318252808320600854845290915290200154610bf6908263ffffffff6116b316565b6001600160a01b03851660009081526031602090815260408083206008548452909152902060010155610c2884611954565b50610c3284611b84565b610c4c336108a360646106ab85601463ffffffff61160f16565b610d5c565b6001600160a01b038416158015610c825750336000908152603060205260409020600d01546001600160a01b031615155b15610d3f57336000908152603060209081526040808320600d01546001600160a01b031680845260318352818420600854855290925290912060010154909450610cd2908263ffffffff6116b316565b6001600160a01b03851660008181526031602090815260408083206008548452825280832060019081019590955592825260309052200154610d1a908263ffffffff6116b316565b6001600160a01b038516600090815260306020526040902060010155610c2884611954565b610d586108c660646106ab84601463ffffffff61160f16565b6009555b610d9a610d7960646106ab6005548561160f90919063ffffffff16565b6008546000908152602f60205260409020600301549063ffffffff6116b316565b6008546000908152602f6020526040902060030155600254610df690610dce906064906106ab90859063ffffffff61160f16565b600080546001600160a01b03168152603060205260409020600601549063ffffffff6116b316565b600080546001600160a01b0316815260306020526040902060060155610e3a610e2b60646106ab84600563ffffffff61160f16565b600b549063ffffffff6116b316565b600b55604051819033907f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75390600090a350505050565b600a5481565b60085481565b33610e8681612401565b6001600160a01b0381166000908152603060205260409020600b810154600a820154600983015460048401546003850154600690950154909401909301909201909101018015610fb4573031811115610f105760405162461bcd60e51b81526004018080602001828103825260338152602001806138846033913960400191505060405180910390fd5b6001600160a01b03821660008181526030602052604080822060068101839055600381018390556004810183905560098101839055600a8101839055600b018290555183156108fc0291849190818181858888f19350505050158015610f7a573d6000803e3d6000fd5b504281836001600160a01b03167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45b5050565b601b8160038110610fc557fe5b6002020180546001909101549091506001600160a01b031682565b602f6020526000908152604090208054600182015460028301546003909301549192909160ff9091169084565b60316020908152600092835260408084209091529082529020805460019091015482565b603060205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c8d0154600d909d01549b9c9a9b999a9899979896979596949593949293919290916001600160a01b03168e565b6001546001600160a01b031681565b60218160038110610fc557fe5b6001600160a01b0381166000908152602e6020526040812054819060ff161515600114156111a2576004546001600160a01b03841660009081526030602052604090206007015442910110611149576004546001600160a01b03841660009081526030602052604090206007015461114291014263ffffffff61271516565b905061119b565b6001600160a01b03831660009081526030602052604081206007015461117690429063ffffffff61271516565b9050611197600454828161118657fe5b60045491900663ffffffff61271516565b9150505b90506111a4565b505b919050565b60095481565b6000546001600160a01b031633146111fb576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b80600114801561120d57508260095410155b1561127357821561126e573031831161126e57600954611233908463ffffffff61271516565b6009556040516001600160a01b0383169084156108fc029085906000818181858888f1935050505015801561126c573d6000803e3d6000fd5b505b611385565b806002148015611285575082600a5410155b156112e457821561126e573031831161126e57600a546112ab908463ffffffff61271516565b600a556040516001600160a01b0383169084156108fc029085906000818181858888f1935050505015801561126c573d6000803e3d6000fd5b8060031415611385576001600160a01b0382166000908152603060205260409020600b0154611319908463ffffffff6116b316565b6001600160a01b0383166000908152603060205260409020600b908101919091555461134b908463ffffffff61271516565b600b5560405183906001600160a01b038416907f0c345e029e967ca5c81e931376e8075049982cea9635d24118b56524ba1fa13190600090a35b505050565b600f8160038110610fc557fe5b600b5481565b6000546001600160a01b031681565b602d6020526000908152604090205481565b60158160038110610fc557fe5b602781600381106113d857fe5b0154905081565b6001546001600160a01b031633146114285760405162461bcd60e51b815260040180806020018281038252602381526020018061391e6023913960400191505060405180910390fd5b6008546000818152602f6020526040902060038101546001909101544211801561146457506000828152602f602052604090206002015460ff16155b15610fb457678ac7230489e80000811061152c576000828152602f60205260408120600201805460ff1916600117905561149c612757565b905060006114a8612cdc565b6008805460019081019091559094016000818152602f602052604090204290819055600354919592506114e09163ffffffff6116b316565b6000858152602f6020526040902060010155611512611505838363ffffffff6116b316565b849063ffffffff61271516565b6000858152602f602052604090206003015550610fb49050565b6000828152602f6020526040808220600201805460ff191660019081179091556008805482019055939093018082529290204290819055600354611576919063ffffffff6116b316565b6000928352602f60205260409092206001810192909255600390910155565b602a81600381106113d857fe5b6000546001600160a01b031633146115ee576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b6115f7816131ac565b50565b602e6020526000908152604090205460ff1681565b60008261161e5750600061166b565b8282028284828161162b57fe5b04146116685760405162461bcd60e51b81526004018080602001828103825260218152602001806138fd6021913960400191505060405180910390fd5b90505b92915050565b600061166883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061324c565b600082820183811015611668576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b038216611725575060006111a4565b6001600160a01b03821660009081526031602090815260408083206008548452909152902054601954811161175e5760009150506111a4565b6016546015546018546017546001600160a01b039384169390911690828511156118ac576016546001600160a01b03888116911614156117b25784601560005b600202015550600194506111a49350505050565b6018546001600160a01b038881169116141561181257601680546001600160a01b0319166001600160a01b03891617905584601560006002020155601880546001600160a01b0319166001600160a01b038616179055826015600161179e565b601680546001600160a01b0319166001600160a01b03891617905584601560006002020155601880546001600160a01b0319166001600160a01b03861617905582601560015b600202016000018190555081601560026003811061187257fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080601560026003811061179e57fe5b6017548511156118fb576018546001600160a01b03888116911614156118d657846015600161179e565b601880546001600160a01b0319166001600160a01b0389161790558460156001611858565b60195485111561194a57601a546001600160a01b038881169116141561192557846015600261179e565b601a80546001600160a01b0319166001600160a01b038916179055846015600261179e565b5050505050919050565b60006001600160a01b03821661196c575060006111a4565b6001600160a01b0382166000908152603160209081526040808320600854845290915290206001015460135481116119a85760009150506111a4565b601054600f546012546011546001600160a01b03938416939091169082851115611ae6576010546001600160a01b03888116911614156119ec5784600f600061179e565b6012546001600160a01b0388811691161415611a4c57601080546001600160a01b0319166001600160a01b03891617905584600f60006002020155601280546001600160a01b0319166001600160a01b03861617905582600f600161179e565b601080546001600160a01b0319166001600160a01b03891617905584600f60006002020155601280546001600160a01b0319166001600160a01b03861617905582600f60015b600202016000018190555081600f600260038110611aac57fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600f60026003811061179e57fe5b601154851115611b35576012546001600160a01b0388811691161415611b105784600f600161179e565b601280546001600160a01b0319166001600160a01b03891617905584600f6001611a92565b60135485111561194a576014546001600160a01b0388811691161415611b5f5784600f600261179e565b601480546001600160a01b0319166001600160a01b03891617905584600f600261179e565b6001600160a01b03811660009081526030602052604090206002810154600190910154106115f7576001600160a01b038116600090815260306020526040902060020154611be19068056bc75e2d6310000063ffffffff6116b316565b6001600160a01b038216600081815260306020526040808220600281019490945560019093015492517fa44cd2dafb9e2c1c8e0eced6c02ad6ad9ff96b40d0a6d244e275090928c2573e9190a350565b6001600160a01b038083166000908152603060205260408120600d015490911690611c6860646106ab85603c63ffffffff61160f16565b905060005b600a8110156123fa576001600160a01b038316156123855780611eff57611c9b84600263ffffffff61167116565b6001600160a01b03841660009081526030602052604090206008015410611dbb57611cf8611cd085600263ffffffff61167116565b6001600160a01b0385166000908152603060205260409020600801549063ffffffff61271516565b6001600160a01b038416600090815260306020526040902060080155611d50611d2885600263ffffffff61167116565b6001600160a01b0385166000908152603060205260409020600301549063ffffffff6116b316565b6001600160a01b038416600090815260306020526040902060030155611d7d84600263ffffffff61167116565b836001600160a01b0316866001600160a01b0316600080516020613991833981519152426040518082815260200191505060405180910390a4611ed7565b6001600160a01b03831660009081526030602052604090206008015415611ebf576001600160a01b03831660009081526030602052604090206008810154600390910154611e0e9163ffffffff6116b316565b6001600160a01b0384166000908152603060205260409020600381019190915560080154611e57906108c690611e4b87600263ffffffff61167116565b9063ffffffff61271516565b6009556001600160a01b03808416600081815260306020908152604091829020600801548251428152925190948a169260008051602061399183398151915292908290030190a46001600160a01b038316600090815260306020526040812060080155611ed7565b611ed36108c685600263ffffffff61167116565b6009555b611ef8611eeb85600263ffffffff61167116565b839063ffffffff61271516565b9150612380565b806001141561214d576001600160a01b0383166000908152603060205260409020600c015460021161212157611f3c84600a63ffffffff61167116565b6001600160a01b0384166000908152603060205260409020600801541061200c57611f71611cd085600a63ffffffff61167116565b6001600160a01b038416600090815260306020526040902060080155611fa1611d2885600a63ffffffff61167116565b6001600160a01b038416600090815260306020526040902060030155611fce84600a63ffffffff61167116565b836001600160a01b0316866001600160a01b0316600080516020613991833981519152426040518082815260200191505060405180910390a461211c565b6001600160a01b03831660009081526030602052604090206008015415612104576001600160a01b0383166000908152603060205260409020600881015460039091015461205f9163ffffffff6116b316565b6001600160a01b038416600090815260306020526040902060038101919091556008015461209c906108c690611e4b87600a63ffffffff61167116565b6009556001600160a01b03808416600081815260306020908152604091829020600801548251428152925190948a169260008051602061399183398151915292908290030190a46001600160a01b03831660009081526030602052604081206008015561211c565b6121186108c685600a63ffffffff61167116565b6009555b612139565b6121356108c685600a63ffffffff61167116565b6009555b611ef8611eeb85600a63ffffffff61167116565b6001600160a01b0383166000908152603060205260409020600c015460018201116123685761218384601463ffffffff61167116565b6001600160a01b03841660009081526030602052604090206008015410612253576121b8611cd085601463ffffffff61167116565b6001600160a01b0384166000908152603060205260409020600801556121e8611d2885601463ffffffff61167116565b6001600160a01b03841660009081526030602052604090206003015561221584601463ffffffff61167116565b836001600160a01b0316866001600160a01b0316600080516020613991833981519152426040518082815260200191505060405180910390a4612363565b6001600160a01b0383166000908152603060205260409020600801541561234b576001600160a01b038316600090815260306020526040902060088101546003909101546122a69163ffffffff6116b316565b6001600160a01b03841660009081526030602052604090206003810191909155600801546122e3906108c690611e4b87601463ffffffff61167116565b6009556001600160a01b03808416600081815260306020908152604091829020600801548251428152925190948a169260008051602061399183398151915292908290030190a46001600160a01b038316600090815260306020526040812060080155612363565b61235f6108c685601463ffffffff61167116565b6009555b612380565b61237c6108c685601463ffffffff61167116565b6009555b6123d1565b6123c96108c6836123bd6123a088601463ffffffff61167116565b6123b1600a8763ffffffff61271516565b9063ffffffff61160f16565b9063ffffffff6116b316565b6009556123fa565b6001600160a01b039283166000908152603060205260409020600d015490921691600101611c6d565b5050505050565b6004546001600160a01b0382166000908152603060205260408120600701549091829101421115611385576001600160a01b03831660009081526030602052604081206007015461245990429063ffffffff61271516565b905060006124806004546106ab600454858161247157fe5b8691900663ffffffff61271516565b6001600160a01b03861660009081526030602052604090206005015490945092506124b283603263ffffffff61167116565b90506124c4818563ffffffff61160f16565b6001600160a01b0386166000908152603060205260409020600801541061265c576125206124f8828663ffffffff61160f16565b6001600160a01b0387166000908152603060205260409020600801549063ffffffff61271516565b6001600160a01b03861660009081526030602052604090206008015561257761254f828663ffffffff61160f16565b6001600160a01b0387166000908152603060205260409020600601549063ffffffff6116b316565b6001600160a01b0386166000908152603060205260409020600601556004546125dd906125b59084816125a657fe5b8591900663ffffffff61271516565b6001600160a01b0387166000908152603060205260409020600701549063ffffffff6116b316565b6001600160a01b0386166000908152603060205260409020600701554261260a828663ffffffff61160f16565b6040516001600160a01b038816907f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a90600090a461265785612652838763ffffffff61160f16565b6132ee565b6123fa565b6001600160a01b038516600090815260306020526040902060080154156123fa576001600160a01b0385166000908152603060205260408120600881018054929055600601546126b2908263ffffffff6116b316565b6001600160a01b0387166000818152603060205260408082206006810194909455426007909401849055518492917f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a91a461270d86826132ee565b505050505050565b600061166883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613829565b6008546000908152602f60205260408120600301548190612786906064906106ab90600a63ffffffff61160f16565b90506000805b6003811015612cd5576000600f82600381106127a457fe5b60020201600101546001600160a01b031614612ccd576127de60646106ab600c84600381106127cf57fe5b0154869063ffffffff61160f16565b60306000600f84600381106127ef57fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801541061298e5761287c61284060646106ab600c856003811061283157fe5b0154879063ffffffff61160f16565b60306000600f856003811061285157fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015490612715565b60306000600f846003811061288d57fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801556129066128ca60646106ab600c856003811061283157fe5b60306000600f85600381106128db57fe5b60020201600101546001600160a01b031681526020810191909152604001600020600a0154906116b3565b60306000600f846003811061291757fe5b60020201600101546001600160a01b031681526020810191909152604001600020600a015561295160646106ab600c84600381106127cf57fe5b600f826003811061295e57fe5b60020201600101546040516001600160a01b03909116906000805160206138dd83398151915290600090a3612bb9565b60306000600f836003811061299f57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015415612b9d57612a2d60306000600f84600381106129dd57fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206008015460306000600f85600381106128db57fe5b60306000600f8460038110612a3e57fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600a0181905550612aef612ae060306000600f8560038110612a9757fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080154611e4b60646106ab600c8760038110612ad157fe5b0154899063ffffffff61160f16565b600a549063ffffffff6116b316565b600a5560306000600f8360038110612b0357fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080154600f8260038110612b3557fe5b60020201600101546040516001600160a01b03909116906000805160206138dd83398151915290600090a3600060306000600f8460038110612b7357fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155612bb9565b612bb5612ae060646106ab600c856003811061283157fe5b600a555b612bde612bd160646106ab600c856003811061283157fe5b839063ffffffff6116b316565b9150600f8160038110612bed57fe5b60020201600101546001600160a01b031660218260038110612c0b57fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600f8160038110612c4357fe5b600202015460218260038110612c5557fe5b6002020155612c6f60646106ab600c84600381106127cf57fe5b602a8260038110612c7c57fe5b01556000600f8260038110612c8d57fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000600f8260038110612cc757fe5b60020201555b60010161278c565b5091505090565b6008546000908152602f60205260408120600301548190612d0b906064906106ab90600a63ffffffff61160f16565b90506000805b6003811015612cd557600060158260038110612d2957fe5b60020201600101546001600160a01b0316146131a457612d5460646106ab600c84600381106127cf57fe5b6030600060158460038110612d6557fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015410612eca57612db8612da760646106ab600c856003811061283157fe5b603060006015856003811061285157fe5b6030600060158460038110612dc957fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155612e42612e0660646106ab600c856003811061283157fe5b6030600060158560038110612e1757fe5b60020201600101546001600160a01b03168152602081019190915260400160002060090154906116b3565b6030600060158460038110612e5357fe5b60020201600101546001600160a01b03168152602081019190915260400160002060090155612e8d60646106ab600c84600381106127cf57fe5b60158260038110612e9a57fe5b60020201600101546040516001600160a01b03909116906000805160206138dd83398151915290600090a361309d565b6030600060158360038110612edb57fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801541561308157612f696030600060158460038110612f1957fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600801546030600060158560038110612e1757fe5b6030600060158460038110612f7a57fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060090181905550612fd3612ae06030600060158560038110612a9757fe5b600a556030600060158360038110612fe757fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801546015826003811061301957fe5b60020201600101546040516001600160a01b03909116906000805160206138dd83398151915290600090a36000603060006015846003811061305757fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015561309d565b613099612ae060646106ab600c856003811061283157fe5b600a555b6130b5612bd160646106ab600c856003811061283157fe5b9150601581600381106130c457fe5b60020201600101546001600160a01b0316601b82600381106130e257fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506015816003811061311a57fe5b6002020154601b826003811061312c57fe5b600202015560006015826003811061314057fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061318060646106ab600c84600381106127cf57fe5b6027826003811061318d57fe5b015560006015826003811061319e57fe5b60020201555b600101612d11565b6001600160a01b0381166131f15760405162461bcd60e51b81526004018080602001828103825260248152602001806139b16024913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b791a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081836132d85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561329d578181015183820152602001613285565b50505050905090810190601f1680156132ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132e457fe5b0495945050505050565b6001600160a01b038083166000908152603060205260408120600d01549091169061332083600263ffffffff61167116565b905060005b60148110156123fa576001600160a01b038316156137ae57806135765761335384600263ffffffff61167116565b6001600160a01b0384166000908152603060205260409020600801541061344b57613388611cd085600263ffffffff61167116565b6001600160a01b0384166000908152603060205260409020600801556133e06133b885600263ffffffff61167116565b6001600160a01b0385166000908152603060205260409020600401549063ffffffff6116b316565b6001600160a01b03841660009081526030602052604090206004015561340d84600263ffffffff61167116565b836001600160a01b0316866001600160a01b0316600080516020613991833981519152426040518082815260200191505060405180910390a461355b565b6001600160a01b03831660009081526030602052604090206008015415613543576001600160a01b0383166000908152603060205260409020600881015460049091015461349e9163ffffffff6116b316565b6001600160a01b03841660009081526030602052604090206004810191909155600801546134db90612ae090611e4b87600263ffffffff61167116565b600a556001600160a01b03808416600081815260306020908152604091829020600801548251428152925190948a169260008051602061399183398151915292908290030190a46001600160a01b03831660009081526030602052604081206008015561355b565b613557612ae085600263ffffffff61167116565b600a555b61356f611eeb85600263ffffffff61167116565b91506137a9565b6001600160a01b0383166000908152603060205260409020600c01546001820111613791576135ac84601463ffffffff61167116565b6001600160a01b0384166000908152603060205260409020600801541061367c576135e1611cd085601463ffffffff61167116565b6001600160a01b0384166000908152603060205260409020600801556136116133b885601463ffffffff61167116565b6001600160a01b03841660009081526030602052604090206004015561363e84601463ffffffff61167116565b836001600160a01b0316866001600160a01b0316600080516020613991833981519152426040518082815260200191505060405180910390a461378c565b6001600160a01b03831660009081526030602052604090206008015415613774576001600160a01b038316600090815260306020526040902060088101546004909101546136cf9163ffffffff6116b316565b6001600160a01b038416600090815260306020526040902060048101919091556008015461370c90612ae090611e4b87601463ffffffff61167116565b600a556001600160a01b03808416600081815260306020908152604091829020600801548251428152925190948a169260008051602061399183398151915292908290030190a46001600160a01b03831660009081526030602052604081206008015561378c565b613788612ae085601463ffffffff61167116565b600a555b6137a9565b6137a5612ae085601463ffffffff61167116565b600a555b613800565b806137d4576137cc612ae060646106ab87609163ffffffff61160f16565b600a556123fa565b6137cc612ae0836123bd6137ef88601463ffffffff61167116565b6123b160148763ffffffff61271516565b6001600160a01b039283166000908152603060205260409020600d015490921691600101613325565b6000818484111561387b5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561329d578181015183820152602001613285565b50505090039056fe436f6e747261637420646f65736e277420686176652073756666696369656e7420616d6f756e7420746f206769766520796f754d696e696d756d20636f6e747269627574696f6e20616d6f756e7420697320302e3120455448253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6f707320796f752063616e277420737461727420746865206e65787420726f756e64416d6f756e742073686f756c6420626520696e206d756c7469706c65206f6620302e312045544820706c656173654f6f707320796f7572206c696d6974206973207374696c6c2072656d61696e696e67e8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df213174e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a7231582082216542658c5bbc1376d0a7c656670775b8f1e6d5e0f6da5f16565f800cfbe664736f6c634300050b0032000000000000000000000000a787ce0037e1df9e7f25c2205b2f5af107c76a6a

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a787ce0037e1df9e7f25c2205b2f5af107c76a6a

-----Decoded View---------------
Arg [0] : _roundStarter (address): 0xa787ce0037e1df9e7f25c2205b2f5af107c76a6a

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a787ce0037e1df9e7f25c2205b2f5af107c76a6a


Deployed ByteCode Sourcemap

6333:35589:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9794:22;9811:3;9794:8;:22::i;:::-;6333:35589;9841:6037;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9841:6037:0;-1:-1:-1;;;;;9841:6037:0;;:::i;6749:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6749:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;6692:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6692:22:0;;;:::i;27487:1318::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27487:1318:0;;;:::i;7016:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7016:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7016:38:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7016:38:0;;;;;;;;;;;;;;;;7325:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7325:56:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7448:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7448:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7448:88:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7388:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7388:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7388:53:0;-1:-1:-1;;;;;7388:53:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7388:53:0;;;;;;;;;;;;;;6416:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6416:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;6416:27:0;;;;;;;;;;;;;;7061:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7061:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7061:38:0;;:::i;39671:722::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39671:722:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39671:722:0;-1:-1:-1;;;;;39671:722:0;;:::i;6721:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6721:21:0;;;:::i;40403:919::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40403:919:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40403:919:0;;;-1:-1:-1;;;;;40403:919:0;;;;;;;;;;:::i;6928:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6928:34:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6928:34:0;;:::i;6777:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6777:21:0;;;:::i;6389:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6389:20:0;;;:::i;7226:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7226:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7226:41:0;;:::i;6969:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6969:34:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6969:34:0;;:::i;7106:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7106:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7106:47:0;;:::i;28868:1203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28868:1203:0;;;:::i;7160:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7160:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7160:47:0;;:::i;41477:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41477:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41477:111:0;-1:-1:-1;;;;;41477:111:0;;:::i;7274:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7274:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7274:44:0;-1:-1:-1;;;;;7274:44:0;;:::i;:::-;;;;;;;;;;;;;;;;;;9841:6037;9911:9;9092:18;9084:4;:26;;9076:77;;;;-1:-1:-1;;;9076:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9942:9;9316:18;9942:9;9309:25;:30;9301:89;;;;-1:-1:-1;;;9301:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10032:10;9979:14;10020:23;;;:11;:23;;;;;;9996:9;;10020:23;;10016:5523;;10079:10;10072:18;;;;:6;:18;;;;;10109:3;10072:34;;;;:40;;;;10127;;;;:49;;;10256:12;10239:11;;10228:41;;10256:12;10228:23;;10170:6;;10228:23;:10;:23;:::i;:::-;:27;:41;:27;:41;:::i;:::-;10198:10;10191:18;;;;:6;:18;;;;;;;;:34;;;;:78;;;;10284:43;;;10377:9;10342:32;;;;:44;10401:11;:23;;;;;:30;;-1:-1:-1;;10401:30:0;10427:4;10401:30;;;10567:9;:21;;;;;10589:7;;10567:30;;;;;;:45;:57;;10321:6;10567:57;:49;:57;:::i;:::-;10529:10;10519:21;;;;:9;:21;;;;;;;;10541:7;;10519:30;;;;;;;:105;;;;10639:23;;:11;:23::i;:::-;-1:-1:-1;;;;;;10769:25:0;;;;;;:133;;-1:-1:-1;;;;;;10879:23:0;;10892:10;10879:23;;10769:133;:238;;;;-1:-1:-1;;;;;;10977:22:0;;;;;;:11;:22;;;;;;;;:30;;:22;:30;10769:238;10699:1067;;;11055:10;11048:18;;;;:6;:18;;;;;;:27;;:39;;-1:-1:-1;;;;;;11048:39:0;-1:-1:-1;;;;;11048:39:0;;;;;;;;11144:17;;;;:31;;;:38;;-1:-1:-1;11144:35:0;:38::i;:::-;-1:-1:-1;;;;;11110:17:0;;;;;;:6;:17;;;;;:31;;;:72;;;;11240:32;;;:44;;11277:6;11240:44;:36;:44;:::i;:::-;-1:-1:-1;;;;;11205:17:0;;;;;;:6;:17;;;;;;;;:32;;;;:79;;;;11349:9;:20;;;;;11370:7;;11349:29;;;;;;;:39;;:51;;11393:6;11349:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;11307:20:0;;;;;;:9;:20;;;;;;;;11328:7;;11307:29;;;;;;;:39;;:93;11445:22;11317:9;11445:11;:22::i;:::-;;11490:26;11506:9;11490:15;:26::i;:::-;11539:64;11567:10;11579:23;11598:3;11579:14;:6;11590:2;11579:14;:10;:14;:::i;:23::-;11539:27;:64::i;:::-;10699:1067;;;11670:31;11677:23;11696:3;11677:14;:6;11688:2;11677:14;:10;:14;:::i;:23::-;11670:2;;;:31;:6;:31;:::i;:::-;11665:2;:36;11742:3;;-1:-1:-1;10699:1067:0;11787:40;;-1:-1:-1;;;;;11787:40:0;;;11805:10;;11787:40;;;;;10016:5523;;;11984:10;11977:18;;;;:6;:18;;;;;:34;;;:39;11969:86;;;;-1:-1:-1;;;11969:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12099:10;12092:18;;;;:6;:18;;;;;:40;;;12082:50;;;12074:90;;;;;-1:-1:-1;;;12074:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12230:10;12223:18;;;;:6;:18;;;;;12260:3;12223:34;;;;:40;;;;12282;;;;:49;;;12415:12;12398:11;;12387:41;;12415:12;12387:23;;12325:6;;12387:23;:10;:23;:::i;:41::-;12357:10;12350:18;;;;:6;:18;;;;;:34;;;:78;;;;12484:34;:46;;12523:6;12484:46;:38;:46;:::i;:::-;12454:10;12447:18;;;;:6;:18;;;;;;;;:83;;;;12682:9;:21;;;;;12704:7;;12682:30;;;;;:45;:57;;12732:6;12682:57;:49;:57;:::i;:::-;12644:10;12634:21;;;;:9;:21;;;;;;;;12656:7;;12634:30;;;;;;;:105;;;;12758:23;;:11;:23::i;:::-;-1:-1:-1;;;;;;12896:25:0;;;;;;:124;;-1:-1:-1;;;;;;12997:23:0;;13010:10;12997:23;;12896:124;:227;;;;-1:-1:-1;;;;;;13093:22:0;;;;;;:11;:22;;;;;;;;:30;;:22;:30;12896:227;12818:2706;;;13327:10;13359:3;13320:18;;;:6;:18;;;;;:27;;;-1:-1:-1;;;;;13320:27:0;:43;13317:348;;13413:10;13406:18;;;;:6;:18;;;;;:27;;;-1:-1:-1;;;;;13406:27:0;;-1:-1:-1;13317:348:0;;;13503:10;13496:18;;;;:6;:18;;;;;;:27;;:39;;-1:-1:-1;;;;;;13496:39:0;-1:-1:-1;;;;;13496:39:0;;;;;;;;13600:17;;;;:31;;;:38;;-1:-1:-1;13600:35:0;:38::i;:::-;-1:-1:-1;;;;;13566:17:0;;;;;;:6;:17;;;;;:31;;:72;13317:348;-1:-1:-1;;;;;13756:17:0;;;;;;:6;:17;;;;;:32;;;:44;;13793:6;13756:44;:36;:44;:::i;:::-;-1:-1:-1;;;;;13721:17:0;;;;;;:6;:17;;;;;;;;:32;;;;:79;;;;13869:9;:20;;;;;13890:7;;13869:29;;;;;;;:39;;:51;;13913:6;13869:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;13827:20:0;;;;;;:9;:20;;;;;;;;13848:7;;13827:29;;;;;;;:39;;:93;13947:22;13837:9;13947:11;:22::i;:::-;;13996:26;14012:9;13996:15;:26::i;:::-;14115:64;14143:10;14155:23;14174:3;14155:14;:6;14166:2;14155:14;:10;:14;:::i;14115:64::-;12818:2706;;;-1:-1:-1;;;;;14440:25:0;;;:178;;;;-1:-1:-1;14582:10:0;14614:3;14575:18;;;:6;:18;;;;;:27;;;-1:-1:-1;;;;;14575:27:0;:43;;14440:178;14361:1163;;;14696:10;14689:18;;;;:6;:18;;;;;;;;:27;;;-1:-1:-1;;;;;14689:27:0;14818:20;;;:9;:20;;;;;14839:7;;14818:29;;;;;;;;14689:27;14818:39;;14689:27;;-1:-1:-1;14818:51:0;;14862:6;14818:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;14776:20:0;;;;;;:9;:20;;;;;;;;14797:7;;14776:29;;;;;;;:39;;;;:93;;;;14935:17;;;:6;:17;;;:32;;:44;;14972:6;14935:44;:36;:44;:::i;:::-;-1:-1:-1;;;;;14900:17:0;;;;;;:6;:17;;;;;:32;;:79;15041:22;14907:9;15041:11;:22::i;14361:1163::-;15465:31;15472:23;15491:3;15472:14;:6;15483:2;15472:14;:10;:14;:::i;15465:31::-;15460:2;:36;14361:1163;15589:58;15613:33;15642:3;15613:24;15624:12;;15613:6;:10;;:24;;;;:::i;:33::-;15595:7;;15589:14;;;;:5;:14;;;;;:19;;;;:58;:23;:58;:::i;:::-;15573:7;;15567:14;;;;:5;:14;;;;;:19;;:80;15731:8;;15690:60;;15720:29;;15745:3;;15720:20;;:6;;:20;:10;:20;:::i;:29::-;15690:13;15697:5;;-1:-1:-1;;;;;15697:5:0;15690:13;;:6;:13;;;;;:25;;;;:60;:29;:60;:::i;:::-;15662:13;15669:5;;-1:-1:-1;;;;;15669:5:0;15662:13;;:6;:13;;;;;:25;;:88;15770:30;15777:22;15795:3;15777:13;:6;15788:1;15777:13;:10;:13;:::i;:22::-;15770:2;;;:30;:6;:30;:::i;:::-;15765:2;:35;15820:36;;15849:6;;15837:10;;15820:36;;;;;9401:1;9164;9841:6037;;:::o;6749:21::-;;;;:::o;6692:22::-;;;;:::o;27487:1318::-;27572:10;27640:28;27572:10;27640:12;:28::i;:::-;-1:-1:-1;;;;;28048:22:0;;27689:17;28048:22;;;:6;:22;;;;;:34;;;;27984:40;;;;27919:41;;;;27855:40;;;;27788:43;;;;27730:34;;;;;:101;;;:165;;;:230;;;:294;;;:352;28164:13;;28161:637;;28210:4;28202:21;:34;-1:-1:-1;28202:34:0;28194:98;;;;-1:-1:-1;;;28194:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28309:22:0;;28346:1;28309:22;;;:6;:22;;;;;;:34;;;:38;;;28362:43;;;:47;;;28424:40;;;:44;;;28483:41;;;:45;;;28543:40;;;:44;;;28602:34;;:38;;;28669:52;;;;;;28711:9;;28669:52;;28346:1;28669:52;28711:9;28309:22;28669:52;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28669:52:0;28782:3;28771:9;28755:14;-1:-1:-1;;;;;28741:45:0;;;;;;;;;;;28161:637;27487:1318;;:::o;7016:38::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7016:38:0;;:::o;7325:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7448:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7388:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7388:53:0;;:::o;6416:27::-;;;-1:-1:-1;;;;;6416:27:0;;:::o;7061:38::-;;;;;;;;;39671:722;-1:-1:-1;;;;;39841:27:0;;39755:7;39841:27;;;:11;:27;;;;;;39755:7;;39841:27;;:35;;:27;:35;39838:548;;;39955:12;;-1:-1:-1;;;;;39914:22:0;;;;;;:6;:22;;;;;:38;;;39971:3;39914:53;;:60;39911:412;;40066:12;;-1:-1:-1;;;;;40025:22:0;;;;;;:6;:22;;;;;:38;;;40024:64;;40025:53;40084:3;40024:64;:59;:64;:::i;:::-;39999:89;;39911:412;;;-1:-1:-1;;;;;40177:22:0;;40154:12;40177:22;;;:6;:22;;;;;:38;;;40169:47;;:3;;:47;:7;:47;:::i;:::-;40154:62;;40264:39;40289:12;;40282:4;:19;;;;;40264:12;;;40282:19;;40264:39;:16;:39;:::i;:::-;40239:64;;39911:412;;40348:22;-1:-1:-1;40341:29:0;;39838:548;39671:722;;;;;:::o;6721:21::-;;;;:::o;40403:919::-;9548:5;;-1:-1:-1;;;;;9548:5:0;9534:10;:19;9526:42;;;;;-1:-1:-1;;;9526:42:0;;;;;;;;;;;;-1:-1:-1;;;9526:42:0;;;;;;;;;;;;;;;40513:9;40526:1;40513:14;:31;;;;;40537:7;40531:2;;:13;;40513:31;40510:805;;;40564:11;;40561:218;;40607:4;40599:21;:32;-1:-1:-1;40596:168:0;;40661:2;;:15;;40668:7;40661:15;:6;:15;:::i;:::-;40656:2;:20;40699:45;;-1:-1:-1;;;;;40699:36:0;;;:45;;;;;40736:7;;40699:45;;;;40736:7;40699:36;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40699:45:0;40596:168;40510:805;;;40808:9;40821:1;40808:14;:31;;;;;40832:7;40826:2;;:13;;40808:31;40805:510;;;40859:11;;40856:218;;40902:4;40894:21;:32;-1:-1:-1;40891:168:0;;40956:2;;:15;;40963:7;40956:15;:6;:15;:::i;:::-;40951:2;:20;40994:45;;-1:-1:-1;;;;;40994:36:0;;;:45;;;;;41031:7;;40994:45;;;;41031:7;40994:36;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;40805:510:0;41103:9;41116:1;41103:14;41100:215;;;-1:-1:-1;;;;;41166:17:0;;;;;;:6;:17;;;;;:29;;;:42;;41200:7;41166:42;:33;:42;:::i;:::-;-1:-1:-1;;;;;41134:17:0;;;;;;:6;:17;;;;;:29;;;;:74;;;;41228:2;:15;;41235:7;41228:15;:6;:15;:::i;:::-;41223:2;:20;41263:40;;41295:7;;-1:-1:-1;;;;;41263:40:0;;;;;;;;41100:215;40403:919;;;:::o;6928:34::-;;;;;;;;;6777:21;;;;:::o;6389:20::-;;;-1:-1:-1;;;;;6389:20:0;;:::o;7226:41::-;;;;;;;;;;;;;:::o;6969:34::-;;;;;;;;;7106:47;;;;;;;;;;;;;-1:-1:-1;7106:47:0;:::o;28868:1203::-;28944:12;;-1:-1:-1;;;;;28944:12:0;28930:10;:26;28922:73;;;;-1:-1:-1;;;28922:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29031:7;;29012:16;29080:14;;;:5;:14;;;;;:19;;;;29120:23;;;;;29114:3;:29;:63;;;;-1:-1:-1;29147:15:0;;;;:5;:15;;;;;:21;;;;;:30;29114:63;29110:954;;;29227:8;29212:11;:23;29208:845;;29256:15;;;;:5;:15;;;;;:21;;:28;;-1:-1:-1;;29256:28:0;29280:4;29256:28;;;29338:24;:22;:24::i;:::-;29303:59;;29381:33;29417:24;:22;:24::i;:::-;29498:7;:9;;29469:10;29498:9;;;;;;29469:10;;;29498:7;29526:15;;;:5;:15;;;;;29554:3;29526:31;;;;29610:8;;29469:10;;29381:60;-1:-1:-1;29602:17:0;;;:7;:17;:::i;:::-;29576:15;;;;:5;:15;;;;;:23;;:43;29661:72;29677:55;:24;29706:25;29677:55;:28;:55;:::i;:::-;29661:11;;:72;:15;:72;:::i;:::-;29638:15;;;;:5;:15;;;;;:20;;:95;-1:-1:-1;29208:845:0;;-1:-1:-1;29208:845:0;;29787:15;;;;:5;:15;;;;;;:21;;:28;;-1:-1:-1;;29787:28:0;29811:4;29787:28;;;;;;29863:7;:9;;;;;;29834:10;;;;29891:15;;;;;;29919:3;29891:31;;;;29975:8;;29967:17;;29919:3;29967:17;:7;:17;:::i;:::-;29941:15;;;;:5;:15;;;;;;:23;;;:43;;;;30003:20;;;;:34;28868:1203::o;7160:47::-;;;;;;;;;41477:111;9548:5;;-1:-1:-1;;;;;9548:5:0;9534:10;:19;9526:42;;;;;-1:-1:-1;;;9526:42:0;;;;;;;;;;;;-1:-1:-1;;;9526:42:0;;;;;;;;;;;;;;;41552:28;41571:8;41552:18;:28::i;:::-;41477:111;:::o;7274:44::-;;;;;;;;;;;;;;;:::o;3345:471::-;3403:7;3648:6;3644:47;;-1:-1:-1;3678:1:0;3671:8;;3644:47;3715:5;;;3719:1;3715;:5;:1;3739:5;;;;;:10;3731:56;;;;-1:-1:-1;;;3731:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3807:1;-1:-1:-1;3345:471:0;;;;;:::o;4284:132::-;4342:7;4369:39;4373:1;4376;4369:39;;;;;;;;;;;;;;;;;:3;:39::i;1860:181::-;1918:7;1950:5;;;1974:6;;;;1966:46;;;;;-1:-1:-1;;;1966:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;32598:2507;32668:4;-1:-1:-1;;;;;32694:20:0;;32690:64;;-1:-1:-1;32737:5:0;32730:12;;32690:64;-1:-1:-1;;;;;32781:15:0;;32766:12;32781:15;;;:9;:15;;;;;;;;32797:7;;32781:24;;;;;;;:39;32910:15;:19;:27;-1:-1:-1;32906:71:0;;32960:5;32953:12;;;;;32906:71;33009:20;;:12;33059:19;33110:20;;:15;33161:19;-1:-1:-1;;;;;33009:20:0;;;;33110;;;;33242:26;;;33238:1860;;;33290:20;;-1:-1:-1;;;;;33290:28:0;;;:20;;:28;33286:857;;;33360:4;33338:12;33351:1;33338:15;;;;:26;-1:-1:-1;33390:4:0;;-1:-1:-1;33383:11:0;;-1:-1:-1;;;;33383:11:0;33286:857;33513:20;;-1:-1:-1;;;;;33513:28:0;;;:20;;:28;33509:634;;;33563:20;:27;;-1:-1:-1;;;;;;33563:27:0;-1:-1:-1;;;;;33563:27:0;;;;;33631:4;33563:12;-1:-1:-1;33609:15:0;;;:26;33654:20;:32;;-1:-1:-1;;;;;;33654:32:0;-1:-1:-1;;;;;33654:32:0;;;;;33727:8;33654:12;-1:-1:-1;33705:15:0;;33509:634;33823:20;:27;;-1:-1:-1;;;;;;33823:27:0;-1:-1:-1;;;;;33823:27:0;;;;;33891:4;33823:12;-1:-1:-1;33869:15:0;;;:26;33914:20;:32;;-1:-1:-1;;;;;;33914:32:0;-1:-1:-1;;;;;33914:32:0;;;;;33987:8;33914:12;-1:-1:-1;33965:15:0;;;;:19;;:30;;;;34037:10;34014:12;34027:1;34014:15;;;;;;;;;;:20;;;:33;;;;;-1:-1:-1;;;;;34014:33:0;;;;;-1:-1:-1;;;;;34014:33:0;;;;;;34088:9;34066:12;34079:1;34066:15;;;;;;33238:1860;34237:15;:19;34230:26;;34226:872;;;34279:20;;-1:-1:-1;;;;;34279:28:0;;;:20;;:28;34275:399;;;34349:4;34327:12;34340:1;34327:15;;34275:399;34454:20;:27;;-1:-1:-1;;;;;;34454:27:0;-1:-1:-1;;;;;34454:27:0;;;;;34522:4;34454:12;-1:-1:-1;34500:15:0;;34226:872;34769:15;:19;34762:26;;34758:340;;;34810:20;;-1:-1:-1;;;;;34810:28:0;;;:20;;:28;34806:279;;;34880:4;34858:12;34871:1;34858:15;;34806:279;34967:20;:27;;-1:-1:-1;;;;;;34967:27:0;-1:-1:-1;;;;;34967:27:0;;;;;35035:4;34967:12;34980:1;35013:15;;34806:279;32598:2507;;;;;;;;:::o;30087:2501::-;30157:4;-1:-1:-1;;;;;30183:20:0;;30179:64;;-1:-1:-1;30226:5:0;30219:12;;30179:64;-1:-1:-1;;;;;30270:15:0;;30255:12;30270:15;;;:9;:15;;;;;;;;30286:7;;30270:24;;;;;;;:34;;;30394:15;:19;:27;-1:-1:-1;30390:71:0;;30444:5;30437:12;;;;;30390:71;30493:20;;:12;30543:19;30594:20;;:15;30645:19;-1:-1:-1;;;;;30493:20:0;;;;30594;;;;30728:26;;;30724:1855;;;30776:20;;-1:-1:-1;;;;;30776:28:0;;;:20;;:28;30772:854;;;30846:4;30824:12;30837:1;30824:15;;30772:854;30999:20;;-1:-1:-1;;;;;30999:28:0;;;:20;;:28;30995:631;;;31049:20;:27;;-1:-1:-1;;;;;;31049:27:0;-1:-1:-1;;;;;31049:27:0;;;;;31117:4;31049:12;-1:-1:-1;31095:15:0;;;:26;31140:20;:32;;-1:-1:-1;;;;;;31140:32:0;-1:-1:-1;;;;;31140:32:0;;;;;31213:8;31140:12;-1:-1:-1;31191:15:0;;30995:631;31306:20;:27;;-1:-1:-1;;;;;;31306:27:0;-1:-1:-1;;;;;31306:27:0;;;;;31374:4;31306:12;-1:-1:-1;31352:15:0;;;:26;31397:20;:32;;-1:-1:-1;;;;;;31397:32:0;-1:-1:-1;;;;;31397:32:0;;;;;31470:8;31397:12;-1:-1:-1;31448:15:0;;;;:19;;:30;;;;31520:10;31497:12;31510:1;31497:15;;;;;;;;;;:20;;;:33;;;;;-1:-1:-1;;;;;31497:33:0;;;;;-1:-1:-1;;;;;31497:33:0;;;;;;31571:9;31549:12;31562:1;31549:15;;;;;;30724:1855;31720:15;:19;31713:26;;31709:870;;;31761:20;;-1:-1:-1;;;;;31761:28:0;;;:20;;:28;31757:383;;;31831:4;31809:12;31822:1;31809:15;;31757:383;31920:20;:27;;-1:-1:-1;;;;;;31920:27:0;-1:-1:-1;;;;;31920:27:0;;;;;31988:4;31920:12;-1:-1:-1;31966:15:0;;31709:870;32235:15;:19;32228:26;;32224:355;;;32277:20;;-1:-1:-1;;;;;32277:28:0;;;:20;;:28;32273:293;;;32347:4;32325:12;32338:1;32325:15;;32273:293;32448:20;:27;;-1:-1:-1;;;;;;32448:27:0;-1:-1:-1;;;;;32448:27:0;;;;;32516:4;32448:12;32461:1;32494:15;;15933:364;-1:-1:-1;;;;;16045:22:0;;;;;;:6;:22;;;;;:36;;;;16004:37;;;;;:77;16001:289;;-1:-1:-1;;;;;16137:22:0;;;;;;:6;:22;;;;;:36;;;:51;;16178:9;16137:51;:40;:51;:::i;:::-;-1:-1:-1;;;;;16098:22:0;;;;;;:6;:22;;;;;;:36;;;:90;;;;16240:37;;;;;16208:70;;;;16098:22;16208:70;15933:364;:::o;16307:5142::-;-1:-1:-1;;;;;16437:22:0;;;16413:21;16437:22;;;:6;:22;;;;;:31;;;;;;;16501:23;16520:3;16501:14;:6;16512:2;16501:14;:10;:14;:::i;:23::-;16479:45;-1:-1:-1;16535:6:0;16554:4888;16567:2;16563:1;:6;16554:4888;;;-1:-1:-1;;;;;16609:29:0;;;16605:4765;;16712:6;16709:4500;;16788:13;:6;16799:1;16788:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;16747:21:0;;;;;;:6;:21;;;;;:37;;;:54;16743:1252;;16870:56;16912:13;:6;16923:1;16912:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;16870:21:0;;;;;;:6;:21;;;;;:37;;;;:56;:41;:56;:::i;:::-;-1:-1:-1;;;;;16830:21:0;;;;;;:6;:21;;;;;:37;;:96;16998:61;17045:13;:6;17056:1;17045:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;16998:21:0;;;;;;:6;:21;;;;;:42;;;;:61;:46;:61;:::i;:::-;-1:-1:-1;;;;;16953:21:0;;;;;;:6;:21;;;;;:42;;:106;17274:13;:6;17285:1;17274:13;:10;:13;:::i;:::-;17259;-1:-1:-1;;;;;17219:74:0;17243:14;-1:-1:-1;;;;;17219:74:0;-1:-1:-1;;;;;;;;;;;17289:3:0;17219:74;;;;;;;;;;;;;;;;;;16743:1252;;;-1:-1:-1;;;;;17371:21:0;;;;;;:6;:21;;;;;:37;;;:41;17368:627;;-1:-1:-1;;;;;17533:21:0;;;;;;:6;:21;;;;;:37;;;;17486:42;;;;;:85;;;:46;:85;:::i;:::-;-1:-1:-1;;;;;17441:21:0;;;;;;:6;:21;;;;;:42;;;:130;;;;17628:37;;;17603:64;;17610:56;;:13;:6;17621:1;17610:13;:10;:13;:::i;:::-;:17;:56;:17;:56;:::i;17603:64::-;17598:2;:69;-1:-1:-1;;;;;17754:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;17699:98;;17793:3;17699:98;;;;17754:37;;17699:98;;;-1:-1:-1;;;;;;;;;;;17699:98:0;;;;;;;;-1:-1:-1;;;;;17824:21:0;;17864:1;17824:21;;;:6;:21;;;;;:37;;:41;17368:627;;;17949:21;17956:13;:6;17967:1;17956:13;:10;:13;:::i;17949:21::-;17944:2;:26;17368:627;18031:30;18047:13;:6;18058:1;18047:13;:10;:13;:::i;:::-;18031:11;;:30;:15;:30;:::i;:::-;18017:44;;16709:4500;;;18125:1;18130;18125:6;18122:3087;;;-1:-1:-1;;;;;18160:21:0;;;;;;:6;:21;;;;;:35;;;18199:1;-1:-1:-1;18157:1412:0;;18274:14;:6;18285:2;18274:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;18233:21:0;;;;;;:6;:21;;;;;:37;;;:55;18229:1212;;18361:57;18403:14;:6;18414:2;18403:14;:10;:14;:::i;18361:57::-;-1:-1:-1;;;;;18321:21:0;;;;;;:6;:21;;;;;:37;;:97;18494:62;18541:14;:6;18552:2;18541:14;:10;:14;:::i;18494:62::-;-1:-1:-1;;;;;18449:21:0;;;;;;:6;:21;;;;;:42;;:107;18677:14;:6;18688:2;18677:14;:10;:14;:::i;:::-;18662:13;-1:-1:-1;;;;;18622:75:0;18646:14;-1:-1:-1;;;;;18622:75:0;-1:-1:-1;;;;;;;;;;;18693:3:0;18622:75;;;;;;;;;;;;;;;;;;18229:1212;;;-1:-1:-1;;;;;18783:21:0;;;;;;:6;:21;;;;;:37;;;:41;18780:661;;-1:-1:-1;;;;;18949:21:0;;;;;;:6;:21;;;;;:37;;;;18902:42;;;;;:85;;;:46;:85;:::i;:::-;-1:-1:-1;;;;;18857:21:0;;;;;;:6;:21;;;;;:42;;;:130;;;;19049:37;;;19023:65;;19030:57;;:14;:6;19041:2;19030:14;:10;:14;:::i;19023:65::-;19018:2;:70;-1:-1:-1;;;;;19179:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;19124:98;;19218:3;19124:98;;;;19179:37;;19124:98;;;-1:-1:-1;;;;;;;;;;;19124:98:0;;;;;;;;-1:-1:-1;;;;;19253:21:0;;19293:1;19253:21;;;:6;:21;;;;;:37;;:41;18780:661;;;19390:22;19397:14;:6;19408:2;19397:14;:10;:14;:::i;19390:22::-;19385:2;:27;18780:661;18157:1412;;;19522:22;19529:14;:6;19540:2;19529:14;:10;:14;:::i;19522:22::-;19517:2;:27;18157:1412;19605:31;19621:14;:6;19632:2;19621:14;:10;:14;:::i;18122:3087::-;-1:-1:-1;;;;;19760:21:0;;;;;;:6;:21;;;;;:35;;;19801:1;19799:3;;-1:-1:-1;19757:1433:0;;19876:14;:6;19887:2;19876:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;19835:21:0;;;;;;:6;:21;;;;;:37;;;:55;19831:1230;;19963:57;20005:14;:6;20016:2;20005:14;:10;:14;:::i;19963:57::-;-1:-1:-1;;;;;19923:21:0;;;;;;:6;:21;;;;;:37;;:97;20096:62;20143:14;:6;20154:2;20143:14;:10;:14;:::i;20096:62::-;-1:-1:-1;;;;;20051:21:0;;;;;;:6;:21;;;;;:42;;:107;20279:14;:6;20290:2;20279:14;:10;:14;:::i;:::-;20264:13;-1:-1:-1;;;;;20224:75:0;20248:14;-1:-1:-1;;;;;20224:75:0;-1:-1:-1;;;;;;;;;;;20295:3:0;20224:75;;;;;;;;;;;;;;;;;;19831:1230;;;-1:-1:-1;;;;;20383:21:0;;;;;;:6;:21;;;;;:37;;;:41;20380:681;;-1:-1:-1;;;;;20549:21:0;;;;;;:6;:21;;;;;:37;;;;20502:42;;;;;:85;;;:46;:85;:::i;:::-;-1:-1:-1;;;;;20457:21:0;;;;;;:6;:21;;;;;:42;;;:130;;;;20649:37;;;20623:65;;20630:57;;:14;:6;20641:2;20630:14;:10;:14;:::i;20623:65::-;20618:2;:70;-1:-1:-1;;;;;20779:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;20724:98;;20818:3;20724:98;;;;20779:37;;20724:98;;;-1:-1:-1;;;;;;;;;;;20724:98:0;;;;;;;;-1:-1:-1;;;;;20853:21:0;;20893:1;20853:21;;;:6;:21;;;;;:37;;:41;20380:681;;;21010:22;21017:14;:6;21028:2;21017:14;:10;:14;:::i;21010:22::-;21005:2;:27;20380:681;19757:1433;;;21143:22;21150:14;:6;21161:2;21150:14;:10;:14;:::i;21143:22::-;21138:2;:27;19757:1433;16605:4765;;;21267:62;21274:54;21316:11;21274:37;21296:14;:6;21307:2;21296:14;:10;:14;:::i;:::-;21275:15;21280:2;21288:1;21275:15;:12;:15;:::i;:::-;21274:21;:37;:21;:37;:::i;:::-;:41;:54;:41;:54;:::i;21267:62::-;21262:2;:67;21349:5;;16605:4765;-1:-1:-1;;;;;21400:21:0;;;;;;;:6;:21;;;;;:30;;;;;;;;16571:3;16554:4888;;;16307:5142;;;;;:::o;25129:2286::-;25365:12;;-1:-1:-1;;;;;25324:22:0;;25223:30;25324:22;;;:6;:22;;;;;:38;;;25223:30;;;;25324:53;25318:3;:59;25315:2083;;;-1:-1:-1;;;;;25508:22:0;;25480:17;25508:22;;;:6;:22;;;;;:38;;;25500:47;;:3;;:47;:7;:47;:::i;:::-;25480:67;;25562:20;25692:61;25740:12;;25693:41;25720:12;;25708:9;:24;;;;;25693:9;;25708:24;;25693:41;:13;:41;:::i;25692:61::-;-1:-1:-1;;;;;25803:22:0;;;;;;:6;:22;;;;;:44;;;25667:86;;-1:-1:-1;25803:44:0;-1:-1:-1;25928:26:0;25803:44;25951:2;25928:26;:22;:26;:::i;:::-;25913:41;-1:-1:-1;26063:40:0;25913:41;26080:22;26063:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;26021:22:0;;;;;;:6;:22;;;;;:38;;;:82;26017:1361;;26165:84;26208:40;:12;26225:22;26208:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;26165:22:0;;;;;;:6;:22;;;;;:38;;;;:84;:42;:84;:::i;:::-;-1:-1:-1;;;;;26124:22:0;;;;;;:6;:22;;;;;:38;;:125;26305:80;26344:40;:12;26361:22;26344:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;26305:22:0;;;;;;:6;:22;;;;;:34;;;;:80;:38;:80;:::i;:::-;-1:-1:-1;;;;;26268:22:0;;;;;;:6;:22;;;;;:34;;:117;26516:12;;26445:87;;26489:41;;26504:9;26516:12;26504:24;;;;26489:9;;26504:24;;26489:41;:13;:41;:::i;:::-;-1:-1:-1;;;;;26445:22:0;;;;;;:6;:22;;;;;:38;;;;:87;:42;:87;:::i;:::-;-1:-1:-1;;;;;26404:22:0;;;;;;:6;:22;;;;;:38;;:128;26632:3;26590:40;:12;26607:22;26590:40;:16;:40;:::i;:::-;26556:80;;-1:-1:-1;;;;;26556:80:0;;;;;;;;26655:87;26685:14;26701:40;:12;26718:22;26701:40;:16;:40;:::i;:::-;26655:29;:87::i;:::-;26017:1361;;;-1:-1:-1;;;;;26844:22:0;;;;;;:6;:22;;;;;:38;;;:42;26841:537;;-1:-1:-1;;;;;26945:22:0;;26907:12;26945:22;;;:6;:22;;;;;:38;;;;;27019:42;;;27117:34;;;:44;;26945:38;27117:44;:38;:44;:::i;:::-;-1:-1:-1;;;;;27080:22:0;;;;;;:6;:22;;;;;;:34;;;:81;;;;27221:3;27180:38;;;;:44;;;27248;27282:4;;27080:22;27248:44;;;27311:51;27341:14;27357:4;27311:29;:51::i;:::-;26841:537;25315:2083;;25129:2286;;;:::o;2316:136::-;2374:7;2401:43;2405:1;2408;2401:43;;;;;;;;;;;;;;;;;:3;:43::i;35113:2217::-;35240:7;;35184;35234:14;;;:5;:14;;;;;:19;;;35184:7;;35234:36;;35266:3;;35234:27;;35258:2;35234:27;:23;:27;:::i;:36::-;35217:53;-1:-1:-1;35285:25:0;;35360:1920;35375:1;35372;:4;35360:1920;;;35438:3;35406:12;35419:1;35406:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;35406:20:0;:36;35402:1863;;35519:39;35554:3;35519:30;35530:15;35546:1;35530:18;;;;;;;;;35519:6;;:30;:10;:30;:::i;:39::-;35471:6;:28;35478:12;35491:1;35478:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;35478:20:0;35471:28;;;;;;;;;;;-1:-1:-1;35471:28:0;:44;;;:87;35467:1333;;35634:89;35683:39;35718:3;35683:30;35694:15;35710:1;35694:18;;;;;;;;;35683:6;;:30;:10;:30;:::i;:39::-;35634:6;:28;35641:12;35654:1;35641:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;35641:20:0;35634:28;;;;;;;;;;;-1:-1:-1;35634:28:0;:44;;;;:48;:89::i;:::-;35587:6;:28;35594:12;35607:1;35594:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;35594:20:0;35587:28;;;;;;;;;;;-1:-1:-1;35587:28:0;:44;;:136;35799:91;35850:39;35885:3;35850:30;35861:15;35877:1;35861:18;;;;;;35850:39;35799:6;:28;35806:12;35819:1;35806:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;35806:20:0;35799:28;;;;;;;;;;;-1:-1:-1;35799:28:0;:46;;;;:50;:91::i;:::-;35750:6;:28;35757:12;35770:1;35757:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;35757:20:0;35750:28;;;;;;;;;;;-1:-1:-1;35750:28:0;:46;;:140;36009:39;36044:3;36009:30;36020:15;36036:1;36020:18;;;;;;36009:39;35987:12;36000:1;35987:15;;;;;;;;;;:20;;;35970:79;;-1:-1:-1;;;;;35987:20:0;;;;-1:-1:-1;;;;;;;;;;;35970:79:0;35987:20;;35970:79;35467:1333;;;36103:6;:28;36110:12;36123:1;36110:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;36110:20:0;36103:28;;;;;;;;;;;-1:-1:-1;36103:28:0;:44;;;:48;36100:700;;36229:96;36280:6;:28;36287:12;36300:1;36287:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;36287:20:0;-1:-1:-1;;;;;36280:28:0;-1:-1:-1;;;;;36280:28:0;;;;;;;;;;;;:44;;;36229:6;:28;36236:12;36249:1;36236:15;;;;;;36229:96;36180:6;:28;36187:12;36200:1;36187:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;36187:20:0;-1:-1:-1;;;;;36180:28:0;-1:-1:-1;;;;;36180:28:0;;;;;;;;;;;;:46;;:145;;;;36357:99;36364:91;36410:6;:28;36417:12;36430:1;36417:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;36417:20:0;36410:28;;;;;;;;;;;-1:-1:-1;36410:28:0;:44;;;36365:39;36400:3;36365:30;36376:15;36392:1;36376:18;;;;;;;;;36365:6;;:30;:10;:30;:::i;36364:91::-;36357:2;;;:99;:6;:99;:::i;:::-;36352:2;:104;36526:6;:28;36533:12;36546:1;36533:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;36533:20:0;36526:28;;;;;;;;;;;-1:-1:-1;36526:28:0;:44;;;36505:12;36518:1;36505:15;;;;;;;;;;:20;;;36488:83;;-1:-1:-1;;;;;36505:20:0;;;;-1:-1:-1;;;;;;;;;;;36488:83:0;36505:20;;36488:83;36645:1;36598:6;:28;36605:12;36618:1;36605:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;36605:20:0;36598:28;;;;;;;;;;;-1:-1:-1;36598:28:0;:44;;:48;36100:700;;;36729:47;36736:39;36771:3;36736:30;36747:15;36763:1;36747:18;;;;;;36729:47;36724:2;:52;36100:700;36844:62;36866:39;36901:3;36866:30;36877:15;36893:1;36877:18;;;;;;36866:39;36844:17;;:62;:21;:62;:::i;:::-;36824:82;;36956:12;36969:1;36956:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;36956:20:0;36929:16;36946:1;36929:19;;;;;;;;;;:24;;;:47;;;;;-1:-1:-1;;;;;36929:47:0;;;;;-1:-1:-1;;;;;36929:47:0;;;;;;37025:12;37038:1;37025:15;;;;;;;;;;:19;36999:16;37016:1;36999:19;;;;;;;;;;:45;37102:39;37137:3;37102:30;37113:15;37129:1;37113:18;;;;;;37102:39;37067:29;37097:1;37067:32;;;;;;;;:74;37195:3;37164:12;37177:1;37164:15;;;;;;;;;;:20;;;:35;;;;;-1:-1:-1;;;;;37164:35:0;;;;;-1:-1:-1;;;;;37164:35:0;;;;;;37244:1;37222:12;37235:1;37222:15;;;;;;;;;;:23;35402:1863;35378:3;;35360:1920;;;-1:-1:-1;37301:17:0;-1:-1:-1;;35113:2217:0;:::o;37338:2247::-;37464:7;;37408;37458:14;;;:5;:14;;;;;:19;;;37408:7;;37458:36;;37490:3;;37458:27;;37482:2;37458:27;:23;:27;:::i;:36::-;37441:53;-1:-1:-1;37509:25:0;;37584:1951;37599:1;37596;:4;37584:1951;;;37662:3;37630:12;37643:1;37630:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;37630:20:0;:36;37626:1894;;37743:39;37778:3;37743:30;37754:15;37770:1;37754:18;;;;;;37743:39;37695:6;:28;37702:12;37715:1;37702:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;37702:20:0;37695:28;;;;;;;;;;;-1:-1:-1;37695:28:0;:44;;;:87;37691:1364;;37858:89;37907:39;37942:3;37907:30;37918:15;37934:1;37918:18;;;;;;37907:39;37858:6;:28;37865:12;37878:1;37865:15;;;;;;37858:89;37811:6;:28;37818:12;37831:1;37818:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;37818:20:0;37811:28;;;;;;;;;;;-1:-1:-1;37811:28:0;:44;;:136;38024:92;38076:39;38111:3;38076:30;38087:15;38103:1;38087:18;;;;;;38076:39;38024:6;:28;38031:12;38044:1;38031:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38031:20:0;38024:28;;;;;;;;;;;-1:-1:-1;38024:28:0;:47;;;;:51;:92::i;:::-;37974:6;:28;37981:12;37994:1;37981:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;37981:20:0;37974:28;;;;;;;;;;;-1:-1:-1;37974:28:0;:47;;:142;38235:39;38270:3;38235:30;38246:15;38262:1;38246:18;;;;;;38235:39;38213:12;38226:1;38213:15;;;;;;;;;;:20;;;38196:79;;-1:-1:-1;;;;;38213:20:0;;;;-1:-1:-1;;;;;;;;;;;38196:79:0;38213:20;;38196:79;37691:1364;;;38355:6;:28;38362:12;38375:1;38362:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38362:20:0;38355:28;;;;;;;;;;;-1:-1:-1;38355:28:0;:44;;;:48;38352:703;;38482:97;38534:6;:28;38541:12;38554:1;38541:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;38541:20:0;-1:-1:-1;;;;;38534:28:0;-1:-1:-1;;;;;38534:28:0;;;;;;;;;;;;:44;;;38482:6;:28;38489:12;38502:1;38489:15;;;;;;38482:97;38432:6;:28;38439:12;38452:1;38439:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;38439:20:0;-1:-1:-1;;;;;38432:28:0;-1:-1:-1;;;;;38432:28:0;;;;;;;;;;;;:47;;:147;;;;38611:99;38618:91;38664:6;:28;38671:12;38684:1;38671:15;;;;;;38611:99;38606:2;:104;38781:6;:28;38788:12;38801:1;38788:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38788:20:0;38781:28;;;;;;;;;;;-1:-1:-1;38781:28:0;:44;;;38759:12;38772:1;38759:15;;;;;;;;;;:20;;;38742:84;;-1:-1:-1;;;;;38759:20:0;;;;-1:-1:-1;;;;;;;;;;;38742:84:0;38759:20;;38742:84;38900:1;38853:6;:28;38860:12;38873:1;38860:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38860:20:0;38853:28;;;;;;;;;;;-1:-1:-1;38853:28:0;:44;;:48;38352:703;;;38984:47;38991:39;39026:3;38991:30;39002:15;39018:1;39002:18;;;;;;38984:47;38979:2;:52;38352:703;39099:62;39121:39;39156:3;39121:30;39132:15;39148:1;39132:18;;;;;;39099:62;39079:82;;39211:12;39224:1;39211:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;39211:20:0;39184:16;39201:1;39184:19;;;;;;;;;;:24;;;:47;;;;;-1:-1:-1;;;;;39184:47:0;;;;;-1:-1:-1;;;;;39184:47:0;;;;;;39280:12;39293:1;39280:15;;;;;;;;;;:19;39254:16;39271:1;39254:19;;;;;;;;;;:45;:23;39322:12;39335:1;39322:15;;;;;;;;;;:20;;;:35;;;;;-1:-1:-1;;;;;39322:35:0;;;;;-1:-1:-1;;;;;39322:35:0;;;;;;39415:39;39450:3;39415:30;39426:15;39442:1;39426:18;;;;;;39415:39;39380:29;39410:1;39380:32;;;;;;;;:74;39499:1;39477:12;39490:1;39477:15;;;;;;;;;;:23;37626:1894;37602:3;;37584:1951;;41695:224;-1:-1:-1;;;;;41768:22:0;;41760:71;;;;-1:-1:-1;;;41760:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41868:5;;;41847:37;;-1:-1:-1;;;;;41847:37:0;;;;41868:5;;;41847:37;;;41895:5;:16;;-1:-1:-1;;;;;;41895:16:0;-1:-1:-1;;;;;41895:16:0;;;;;;;;;;41695:224::o;5051:345::-;5137:7;5239:12;5232:5;5224:28;;;;-1:-1:-1;;;5224:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5224:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5263:9;5279:1;5275;:5;;;;;;;5051:345;-1:-1:-1;;;;;5051:345:0:o;21469:3595::-;-1:-1:-1;;;;;21601:22:0;;;21577:21;21601:22;;;:6;:22;;;;;:31;;;;;;;21665:13;:6;21676:1;21665:13;:10;:13;:::i;:::-;21643:35;-1:-1:-1;21689:6:0;21708:3349;21721:2;21717:1;:6;21708:3349;;;-1:-1:-1;;;;;21763:29:0;;;21759:3226;;21816:6;21813:2805;;21892:13;:6;21903:1;21892:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;21851:21:0;;;;;;:6;:21;;;;;:37;;;:54;21847:1144;;21974:56;22016:13;:6;22027:1;22016:13;:10;:13;:::i;21974:56::-;-1:-1:-1;;;;;21934:21:0;;;;;;:6;:21;;;;;:37;;:96;22099:58;22143:13;:6;22154:1;22143:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;22099:21:0;;;;;;:6;:21;;;;;:39;;;;:58;:43;:58;:::i;:::-;-1:-1:-1;;;;;22057:21:0;;;;;;:6;:21;;;;;:39;;:100;22270:13;:6;22281:1;22270:13;:10;:13;:::i;:::-;22255;-1:-1:-1;;;;;22215:74:0;22239:14;-1:-1:-1;;;;;22215:74:0;-1:-1:-1;;;;;;;;;;;22285:3:0;22215:74;;;;;;;;;;;;;;;;;;21847:1144;;;-1:-1:-1;;;;;22348:21:0;;;;;;:6;:21;;;;;:37;;;:41;22345:646;;-1:-1:-1;;;;;22504:21:0;;;;;;:6;:21;;;;;:37;;;;22460:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;22418:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;22599:37;;;22574:64;;22581:56;;:13;:6;22592:1;22581:13;:10;:13;:::i;22574:64::-;22569:2;:69;-1:-1:-1;;;;;22725:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;22670:98;;22764:3;22670:98;;;;22725:37;;22670:98;;;-1:-1:-1;;;;;;;;;;;22670:98:0;;;;;;;;-1:-1:-1;;;;;22795:21:0;;22835:1;22795:21;;;:6;:21;;;;;:37;;:41;22345:646;;;22945:21;22952:13;:6;22963:1;22952:13;:10;:13;:::i;22945:21::-;22940:2;:26;22345:646;23027:30;23043:13;:6;23054:1;23043:13;:10;:13;:::i;23027:30::-;23013:44;;21813:2805;;;-1:-1:-1;;;;;23160:21:0;;;;;;:6;:21;;;;;:35;;;23201:1;23199:3;;-1:-1:-1;23157:1442:0;;23276:14;:6;23287:2;23276:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;23235:21:0;;;;;;:6;:21;;;;;:37;;;:55;23231:1199;;23363:57;23405:14;:6;23416:2;23405:14;:10;:14;:::i;23363:57::-;-1:-1:-1;;;;;23323:21:0;;;;;;:6;:21;;;;;:37;;:97;23493:59;23537:14;:6;23548:2;23537:14;:10;:14;:::i;23493:59::-;-1:-1:-1;;;;;23451:21:0;;;;;;:6;:21;;;;;:39;;:101;23673:14;:6;23684:2;23673:14;:10;:14;:::i;:::-;23658:13;-1:-1:-1;;;;;23618:75:0;23642:14;-1:-1:-1;;;;;23618:75:0;-1:-1:-1;;;;;;;;;;;23689:3:0;23618:75;;;;;;;;;;;;;;;;;;23231:1199;;;-1:-1:-1;;;;;23755:21:0;;;;;;:6;:21;;;;;:37;;;:41;23752:678;;-1:-1:-1;;;;;23915:21:0;;;;;;:6;:21;;;;;:37;;;;23871:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;23829:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;24015:37;;;23989:65;;23996:57;;:14;:6;24007:2;23996:14;:10;:14;:::i;23989:65::-;23984:2;:70;-1:-1:-1;;;;;24145:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;24090:98;;24184:3;24090:98;;;;24145:37;;24090:98;;;-1:-1:-1;;;;;;;;;;;24090:98:0;;;;;;;;-1:-1:-1;;;;;24219:21:0;;24259:1;24219:21;;;:6;:21;;;;;:37;;:41;23752:678;;;24379:22;24386:14;:6;24397:2;24386:14;:10;:14;:::i;24379:22::-;24374:2;:27;23752:678;23157:1442;;;24513:22;24520:14;:6;24531:2;24520:14;:10;:14;:::i;24513:22::-;24508:2;:27;23157:1442;21759:3226;;;24677:4;24674:278;;24710:32;24717:24;24737:3;24717:15;:6;24728:3;24717:15;:10;:15;:::i;24710:32::-;24705:2;:37;24765:5;;24674:278;24841:62;24848:54;24890:11;24848:37;24870:14;:6;24881:2;24870:14;:10;:14;:::i;:::-;24849:15;24854:2;24862:1;24849:15;:12;:15;:::i;24674:278::-;-1:-1:-1;;;;;25015:21:0;;;;;;;:6;:21;;;;;:30;;;;;;;;21725:3;21708:3349;;2902:192;2988:7;3024:12;3016:6;;;;3008:29;;;;-1:-1:-1;;;3008:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3008:29:0;-1:-1:-1;;;3060:5:0;;;2902:192::o

Swarm Source

bzzr://82216542658c5bbc1376d0a7c656670775b8f1e6d5e0f6da5f16565f800cfbe6
Block Transaction Difficulty Gas Used Reward
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.