Contract 0x5cC65CE96604E290c834f2625fA924ff7956f264

 

Contract Overview

Balance:
0.000026826431284119 BNB

BNB Value:
Less Than $0.01 (@ $354.72/BNB)

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0x1d53ff295a8abf6dbb3e9eb1a8f1403156ab1fed98f96d6898d94ea77f86505683997272021-06-18 9:01:147 mins ago0x829b130e8e818c180f4492047f9eef8f4a18234d IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00174918
0x0ac6ccdbd3ba33640b87c01e4ced787fcb39b4edc8abd57f485aa54cf812564083989912021-06-18 8:23:4044 mins ago0x9cbe889e93ab481d78cb8ea27c97e1ec2cfb0213 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00192663
0x9eb3e2ed135eed57ad1c85c85534513dc789c1f3596d1e5450dc8a2f7277d22f83989812021-06-18 8:23:1045 mins ago0x9cbe889e93ab481d78cb8ea27c97e1ec2cfb0213 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00105659
0x708c5b5dd3c55d1a94686885f516cd305826739044bdd5b9b8ece2528ce0cdac83974692021-06-18 7:06:392 hrs 1 min ago0x42b3b628cbeed52db5e304cdbbcce5da59f0a25c IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.000309745
0x2de0696fba54737ae24ce4b1aa2be1ff3cb26785f5e0fc0650898a3bf68ec64f83951472021-06-18 5:09:343 hrs 58 mins ago0x1d7a5cc4cc44901ba94c95e6c455bc2a48ed5183 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00105659
0xe7ede2bfc229e30306ea8d3176e5ddf8b82e214b436c48a32039f4e804e5b6a683950282021-06-18 5:03:374 hrs 4 mins ago0x579b1e65ec779885af484ac14ddf5c7bb5b0fada IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00039235
0xefc5c1b04175b0d2aa3910dde6b786c5cd7420cea26c0d9719e484f4bfc7941c83949942021-06-18 5:01:554 hrs 6 mins ago0x579b1e65ec779885af484ac14ddf5c7bb5b0fada IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001352965
0x5037bb3203fe354d9cfa475ed023d50ba5501b7b618efa9d0a69f39886731d8483949292021-06-18 4:58:404 hrs 9 mins ago0x0c2d6b45603a97153a25778fc0df88f28aec28bc IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00031735
0x3120203918a630a7eabeae2d6cd6aa4aa8dfda46e0be2936c668257d5b84e06c83949052021-06-18 4:57:284 hrs 10 mins ago0x0c2d6b45603a97153a25778fc0df88f28aec28bc IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001652965
0xd5bf133f27acb90014477ab9c9040cee489a3ccd33c24f273f9eeb35b478bf7883948882021-06-18 4:56:374 hrs 11 mins ago0xcbaa0a204e48bb93a6856fd16dcdb8deb8bb7ff7 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00031735
0x1256d126f413f202e0cf66d7c71467c4d6c50d40a924ef695968890f6c48120083948482021-06-18 4:54:374 hrs 13 mins ago0xcbaa0a204e48bb93a6856fd16dcdb8deb8bb7ff7 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001423625
0xfa6e2c667b06d3510310d42c7aae056ac469ed57b6295b778188e0cf4367847083896202021-06-18 0:30:528 hrs 37 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00074635
0x6d07995b992aa651af449378531ea9b7dd1451a63fbd6d9855e1e60622e96a6183895992021-06-18 0:29:498 hrs 38 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00074635
0x6577b3adef92b6e19465be9b23411fe4ce5c45e72af925578f85cb31a79a9b2883895862021-06-18 0:29:108 hrs 39 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00074635
0x6fc7297f6e396a4f4fb7f847af031f9e1fddf38055b429b6537100908616657083895732021-06-18 0:28:318 hrs 39 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00074635
0x150ed2c925a7a1942ef06085f27133e1c53ba1b467749d6062556956f09575e983888912021-06-17 23:53:189 hrs 14 mins ago0x6ab7fdb6bba8729a4fc78d4c109677e28d86df65 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00116532
0x8e7520a72f05b272552ab2f2af4d6296f44beae744b59041ac28e0480cd5a1a083881892021-06-17 23:17:199 hrs 50 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001856605
0xd78b9a3b9014326ff15126bcb8d784931d15fe9eb9970c86317fcbe7413a0ea883881862021-06-17 23:17:079 hrs 51 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001557355
0x1fdda71fc1d16fa9fedc612444f2416012af2d40fe5213046af05943eba1f40b83881782021-06-17 23:16:429 hrs 51 mins ago0xfe59a1d6852e78f0c3026f3306879e2edb8aeb6e IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00016611
0xbd213cd699c17b74938c19aea4babc7a6a86c0e404a7df65f381c23afe632fc983820762021-06-17 18:10:0814 hrs 58 mins ago0xde51274707e559dc89bac43fd9981e5fb5af3ef7 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00074635
0x4d15c6f4f8efac0975593a17247445975a31111ea85be59ecd49cfc6f5f9e0c683820462021-06-17 18:08:3814 hrs 59 mins ago0xde51274707e559dc89bac43fd9981e5fb5af3ef7 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00457183
0xb4713d2aaee271fd9884336e0d702aec3684854e2838b8da6c0225e7d845a86a83820442021-06-17 18:08:3214 hrs 59 mins ago0xde51274707e559dc89bac43fd9981e5fb5af3ef7 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001110955
0x9677b4c3a87e1de066254535b38c4f98176cbea46f58a6eeb15cd3dca117996b83808982021-06-17 17:10:4915 hrs 57 mins ago0x826dac4134dc45e03cc55f297efcda7084272f12 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00074635
0xa02c786338d2c1eb486e421a9b5d1a6c126943f94cae870022546d73e17c995c83808882021-06-17 17:10:1915 hrs 57 mins ago0x826dac4134dc45e03cc55f297efcda7084272f12 IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.001169235
0x75374f464cf8a76d541a7b6fdcd5aee220fba81bb49c4e3a26f04ccac688bf7b83785542021-06-17 15:12:5117 hrs 55 mins ago0x1e3fc3c558f4db29d99d26b50c4263afd2a7815b IN  0x5cc65ce96604e290c834f2625fa924ff7956f2640 BNB0.00031735
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x708c5b5dd3c55d1a94686885f516cd305826739044bdd5b9b8ece2528ce0cdac83974692021-06-18 7:06:392 hrs 1 min ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x42b3b628cbeed52db5e304cdbbcce5da59f0a25c0.09328 BNB
0xbf69b852de8faacfdf54036b4bafd2d11189e5f43f8cde8ff202242d9e1d5b5383611552021-06-17 0:33:571 day 8 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640xc9f76bbadab505addb12741d0e848d276d0096580.06613848 BNB
0x0f4ce7af501c22009bc0884685da89b12331558e5ccae38c724d9e82ef03ec8383590102021-06-16 22:46:341 day 10 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x009ff94a057c75f661e3e28f89b9b9d84e57fc670.2328 BNB
0x4b8e914d41ad14fdcf34dfb7112d359894396ab58f34e3fa5a0a865e72eb916683574492021-06-16 21:27:451 day 11 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x8b718bd25a9c99820c7dd94fedc82ba8f17d26a80.0630888 BNB
0x6570d1ae86745bc7b6c6233a93685d88acd38b3f13f38342a7c7c2f94bf77dae83547572021-06-16 19:12:341 day 13 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x2c7796c9b724aa3600a3d76570a564a20ff362370.038346 BNB
0xbc71ce68109fa7958a5ca465ecdf32808fd0d3fb52724c3bb5a1369908042ddc83510992021-06-16 16:08:041 day 17 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x5b237821a0266be14941035bea7c2f32358c13810.070882 BNB
0xb791207062b28a3fd48242708ec6e0b0ebf517b67120373cda44c32a3b8da5dc83452252021-06-16 11:12:481 day 21 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640xa4f98ca0d3ca2a815f31e205f004ac10630d3bbf0.010435922 BNB
0x3f290b64aa595d0b82243d2327677c5502fd7e631f5e2c93140d2c2f404fc90f83445772021-06-16 10:40:241 day 22 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x3a5d1f6b97ab2156adbdddde1063e4348de6a6bd0.02324 BNB
0x4534b53910f6c8b86b21e7275af4396b69bebb78395a30700aad16c02f7a122d83308582021-06-15 23:07:362 days 10 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x96b6ade0e6387488ba002edf1a5a09d7cac879f40.010996006 BNB
0x50f764f1007fe0e19e207286c2871998ffee8c03fed77fc8828d83e3dc03505b83264302021-06-15 19:24:432 days 13 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x2bc1a585069fd1981a61fcfe3e4aeb3f46832a4f0.15106 BNB
0xfd5e5f1a6f9f21ee7710a734eafe84aefb3867df8c0a6fc11f64052bb926e9d383240702021-06-15 17:26:052 days 15 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640xc9f76bbadab505addb12741d0e848d276d0096580.0659112 BNB
0x7c1c8bc3703673a6280e8d4116abaf4f72ce870a337e6f48894653487fa1eaab83225872021-06-15 16:11:562 days 16 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x2c7796c9b724aa3600a3d76570a564a20ff362370.03828 BNB
0x56b5379215185d7bcf18969ae88f41a8824cd4e0a2e92bbf9eaf4dd066394fa783225802021-06-15 16:11:352 days 16 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x2c7796c9b724aa3600a3d76570a564a20ff362370.03828 BNB
0x7b349e39ec7709526d4e0fcf26c7b5bb094851d521379c8d7c2f37946f74c2a483192052021-06-15 13:19:412 days 19 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x562a4f86eb88e7d5f64167e0ac332cac582b6c530.1368568 BNB
0xcf854d13eb5f83dc81f1fddf5924d2e23eab69ba14dd6c9cb0455f44e9bf3f5e83034152021-06-14 23:56:263 days 9 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x42b3b628cbeed52db5e304cdbbcce5da59f0a25c0.058 BNB
0x2bb46f35735d2c7fcfe166c94476c285bff5c789df499a447d0cc1a9511a829f83009422021-06-14 21:50:013 days 11 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640xc725346597eb633fa09d4574798be779d1ba4f940.0138388 BNB
0x9c0049774627931e058ef1334a3166c308466c704e0460582837051dbbc77a1582987432021-06-14 19:56:583 days 13 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x2c7796c9b724aa3600a3d76570a564a20ff362370.03828 BNB
0x4ded439bcfcf952883381a4eeaf6539287e02dedbf12d814d8314ada34ec2b4782959952021-06-14 17:39:073 days 15 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x562a4f86eb88e7d5f64167e0ac332cac582b6c530.1365282 BNB
0x0c318fc237548d8584006bd4c7aed7278dc521f8a7084de1adf7a44ba9fa90b782927252021-06-14 14:55:023 days 18 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640xc725346597eb633fa09d4574798be779d1ba4f940.013816098 BNB
0x7b92006e80e46b3b5d0b06acc2c0162a1e7e64ec44423ac3676c58a40d6ec24582918442021-06-14 14:10:583 days 18 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x3a79d73f80bd7443e9d34f0a6456c6dc0d1a26a01.13484 BNB
0x35e36bc70dec2dc7781b61b5ab3de11e20bfe467538dceed4319c7b685e183aa82915202021-06-14 13:54:463 days 19 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x3a79d73f80bd7443e9d34f0a6456c6dc0d1a26a00.55584 BNB
0x45a80c36f69141b9e27b9d4795009e9971e2837e2c3bcd6fa24c7dbcee4e442882914892021-06-14 13:53:133 days 19 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x3a79d73f80bd7443e9d34f0a6456c6dc0d1a26a00.55584 BNB
0xc662b617ed16a1f0b036087017cf39152aef550c3e224a6931f743440306882882912082021-06-14 13:39:103 days 19 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640xbd2e5473961927b634d55cf6ae823a7a46664ec80.05571138 BNB
0xd1fecab1d3ae9d4e0f1e8f3021f865865f490405a2513e9a44e907a414ee98f782895982021-06-14 12:17:083 days 20 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x700bd62d032b9b62976e6ec956e8ed28a649aa0a0.13896 BNB
0x160f2f770842236943dff947563d5ac7bde684f4764534b14ed80004e1a74aba82895502021-06-14 12:14:443 days 20 hrs ago 0x5cc65ce96604e290c834f2625fa924ff7956f2640x700bd62d032b9b62976e6ec956e8ed28a649aa0a0.13896 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SodaDEFI

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-03-26
*/

/*
*    Soda🥤Defi is a new DeFi platform on the Binance Smart Chain network.
*    Stake BNB, earn 🥤SODA and stake 🥤SODA again. That is the way to wealth.
*
*   
*    ░██████╗░█████╗░██████╗░░█████╗░  ██████╗░███████╗███████╗██╗
*    ██╔════╝██╔══██╗██╔══██╗██╔══██╗  ██╔══██╗██╔════╝██╔════╝██║
*    ╚█████╗░██║░░██║██║░░██║███████║  ██║░░██║█████╗░░█████╗░░██║       
*    ░╚═══██╗██║░░██║██║░░██║██╔══██║  ██║░░██║██╔══╝░░██╔══╝░░██║   
*    ██████╔╝╚█████╔╝██████╔╝██║░░██║  ██████╔╝███████╗██║░░░░░██║
*    ╚═════╝░░╚════╝░╚═════╝░╚═╝░░╚═╝  ╚═════╝░╚══════╝╚═╝░░░░░╚═╝
*
*
*   ┌───────────────────────────────────────────────────────────────────────┐
*   │   Website: https://sodadefi.app                                       │
*   │                                                                       │
*   │   Telegram Channel: https://t.me/sodadefi                             |
*   │   Telegram Public Group: https://t.me/sodadefi_group                  |
*   |                                                                       |
*   |   Twitter: https://twitter.com/sodadefi                               |
*   |   Instagram: https://www.instagram.com/sodadefi.app/                  |
*   |   Discord: https://discord.com/invite/4n8N3Pm4Z3                      |
*   |                                                                       |
*   |   E-mail: [email protected]                                      |
*   └───────────────────────────────────────────────────────────────────────┘
*
*
*   [USAGE INSTRUCTION]
*
*   1) Connect browser extension Metamask (see help: https://academy.binance.com/en/articles/connecting-metamask-to-binance-smart-chain )
*   2) Choose BNB-SODA pool, enter the BNB amount (0.01 BNB minimum) using our website "Stake BNB" button
*   3) Wait for your earnings
*   4) Withdraw earnings any time using our website "Harvest" button
*
*   
*   [YIELD FARMING CONDITIONS]
*
*   - BNB-SODA pool: 365% APR (1% daily) in SODA tokens
*   - SODA-SODA pool: 438% APR (1.2% daily) in SODA tokens
*
*   - The price of SODA only growth by 0.2% per day
*   - The initial SODA value is 0.01 BNB
*
*   - Swap SODA to BNB at the current exchange rate at any time
*
*   - Minimal deposit: 0.01 BNB
*   - Earnings every moment, withdraw any time
*   
*
*   [AFFILIATE PROGRAM]
*
*   - 20-level referral commission: 15% - 15% - 8% - 8% - 6% - 5% - 5% - 5% - 4% - 4% - 4% - 3% - 3% - 3% - 2% - 2% - 2% - 1% - 1% - 1%
*   - Matching bonus (rewards is calculated after your partner`s withdrawal in SODA tokens , based on referral rate of each level) 
*
*
*   [FUNDS DISTRIBUTION]
*
*   - 90% Platform main balance, participants payouts
*   - 3% Advertisement and promotion expenses
*   - 3% Technical support of platform
*   - 3% Administrator commision
*   - 1% Moderators and support team salary
*/


pragma solidity ^0.5.8;

interface IBEP20 {
  function totalSupply() external view returns (uint256);

  function decimals() external view returns (uint8);

  function symbol() external view returns (string memory);

 
  function name() external view returns (string memory);


  function getOwner() external view returns (address);

 
  function balanceOf(address account) external view returns (uint256);

  
  function transfer(address recipient, uint256 amount) external returns (bool);

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


  function approve(address spender, uint256 amount) external returns (bool);


  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  
  function mint(address _to, uint256 amount) external returns (bool);

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


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


library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { 
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }

     function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

library Objects {
    struct Investment {
        uint256 planId;
        uint256 investmentDate;
        uint256 investment;
        uint256 lastWithdrawalDate;
        uint256 currentDividends;
        bool isExpired;
    }

    struct Soda_investment {
        uint256 planId;
        uint256 investmentDate;
        uint256 investment;
        uint256 lastWithdrawalDate;
        uint256 currentDividends;
        bool isExpired;
    }
    struct Plan {
        uint256 dailyInterest;
        uint256 term; //0 means unlimited
    }

    struct Investor {
        address payable addr;
        uint256 referrerSodaEarnings;
        uint256 refRewardsToClaim;
        uint256 referrer;
        uint256 planCount;
        uint256 planCountSoda;
        mapping(uint256 => Investment) plans;
        mapping(uint256 => Soda_investment) plans_soda;
        uint256 referrals;
        uint256 lotteryRewards;
        
    }
    

}

contract Ownable {
    address public owner;

    event onOwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        emit onOwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

contract SodaDEFI is Ownable {
    using SafeMath for uint256;
    
    IBEP20 public SODA;

    uint256 public constant DEVELOPER_RATE = 30; //per thousand
    uint256 public constant MARKETING_RATE = 30;
    uint256 public constant ADMIN_RATE = 30;
    uint256 public constant TEAM_RATE = 10;
    uint256[] public REFERRAL_PERCENTS = [1500, 1500, 800, 800, 600, 500, 500, 500, 400, 400, 400, 300, 300, 300, 200, 200, 200, 100, 100, 100];

    uint256 public constant TIME_STEP = 1 days;
    
    uint256 public START_DATE;
    
    uint256 public BNB_PER_SODA;
    uint256 public SODA_STAKED = 0;
    
    uint256 public constant SODA_PER_TICKET = 1e18; // 1 SODA
    uint256 public lotteryRound = 0;
    uint256 public currentPot = 0;
    uint256 public participants = 0;
    uint256 public totalTickets = 0;
    uint256 public LOTTERY_STEP = 12 hours; 
    uint256 public LOTTERY_START_TIME;
    
    uint256 public constant REFERRER_CODE = 7777; //default

    uint256 public constant MIN_INVESTMENT = 1e16; // 0.01 bnb

    uint256 public latestReferrerCode;
    uint256 private totalInvestments_;

    address payable private developerAccount_;
    address payable private marketingAccount_;
    address payable private adminAccount_;
    address payable private teamAccount_;

    mapping(address => uint256) public address2UID; // address => user_id
    mapping(uint256 => Objects.Investor) public uid2Investor; // user_id => investor object
    
    mapping(uint256 => mapping(address => uint256)) public ticketOwners; // round => address => amount of owned tickets
    mapping(uint256 => mapping(uint256 => address)) public participantAdresses; // round => id => address
    
    Objects.Plan[] private investmentPlans_;

    event onInvest(address investor, uint256 amount);
    event onWithdraw(address investor, uint256 amount);
    event onStake(address investor, uint256 amount);
    event onUnstake(address investor, uint256 amount);
    event onRefClaimed(address investor, uint256 amount);
    event onSwap(address investor, uint256 amount);
    event onLotteryWinner(address investor, uint256 pot);
    event onLotteryRewardsClaimed(address investor, uint256 rewards);

    /**
     * @dev Constructor Sets the original roles of the contract
     */

    constructor(address payable adminAccount, address payable marketingAccount, address payable teamAccount, uint256 price, IBEP20 SODA_ADDRESS) public {
        developerAccount_ = msg.sender;
        marketingAccount_ = marketingAccount;
        adminAccount_ = adminAccount;
        teamAccount_ = teamAccount;
        
        BNB_PER_SODA = price.mul(1e16); // if price = 1, BNB_PER_SODA = 0.01 and so on 
        SODA = SODA_ADDRESS;
        
        START_DATE = block.timestamp;
        LOTTERY_START_TIME = block.timestamp;
        _init();
    }


    function getMarketingAccount() public view onlyOwner returns (address) {
        return marketingAccount_;
    }

    function getDeveloperAccount() public view onlyOwner returns (address) {
        return developerAccount_;
    }


    function _init() private {
        latestReferrerCode = REFERRER_CODE;
        address2UID[msg.sender] = REFERRER_CODE;
        uid2Investor[latestReferrerCode].addr = msg.sender;
        uid2Investor[latestReferrerCode].referrer = 0;
        uid2Investor[latestReferrerCode].planCount = 0;
        uid2Investor[latestReferrerCode].planCountSoda = 0;
        investmentPlans_.push(Objects.Plan(10, 200*60*60*24)); //1% per day for 200 days 
        investmentPlans_.push(Objects.Plan(12, 200*60*60*24)); //1.2% per day for 200 days



    }
    
    function getSodaPrice() public view returns(uint256) { // +0.2% per day (0.002)
        uint256 timeMultiplier = (block.timestamp.sub(START_DATE)).div(TIME_STEP); 
        
        uint256 sodaPrice = BNB_PER_SODA.add(BNB_PER_SODA.mul(timeMultiplier).mul(2).div(1000));
        
        return sodaPrice;
    }


    function getTotalInvestments() public  view returns (uint256){
        return totalInvestments_;
    }

    function getBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function getUIDByAddress(address _addr) public view returns (uint256) {
        return address2UID[_addr];
    }


    function _addInvestor(address payable _addr, uint256 _referrerCode) private returns (uint256) {
        if (_referrerCode >= REFERRER_CODE) {
            //require(uid2Investor[_referrerCode].addr != address(0), "Wrong referrer code");
            if (uid2Investor[_referrerCode].addr == address(0)) {
                _referrerCode = 0;
            }
        } else {
            _referrerCode = 0;
        }
        address payable addr = _addr;
        latestReferrerCode = latestReferrerCode.add(1);
        address2UID[addr] = latestReferrerCode;
        uid2Investor[latestReferrerCode].addr = addr;
        uid2Investor[latestReferrerCode].referrer = _referrerCode;
        uid2Investor[latestReferrerCode].planCount = 0;
        uid2Investor[latestReferrerCode].planCountSoda = 0;
        if (_referrerCode >= REFERRER_CODE) {
            
            uint256 upline = _referrerCode;
            
            for(uint256 i = 0; i < 20; i++){
                if(upline >=REFERRER_CODE){
                    
                    uid2Investor[upline].referrals = uid2Investor[upline].referrals.add(1);
                    upline = uid2Investor[upline].referrer;
                    
                } else break;
            }

        }
        return (latestReferrerCode);
    }

    function _invest(address payable _addr, uint256 _planId, uint256 _referrerCode, uint256 _amount) private returns (bool) {
        
        require(_amount>=MIN_INVESTMENT, "Wrong min investment");

        uint256 uid = address2UID[_addr];

        if (uid == 0) {
            uid = _addInvestor(_addr, _referrerCode);
            //new user
        } else {//old user
            //do nothing, referrer is permenant
        }

        

        uint256 planCount = uid2Investor[uid].planCount;
        Objects.Investor storage investor = uid2Investor[uid];
        investor.plans[planCount].planId = _planId;
        investor.plans[planCount].investmentDate = block.timestamp;
        investor.plans[planCount].lastWithdrawalDate = block.timestamp;
        investor.plans[planCount].investment = _amount;
        investor.plans[planCount].currentDividends = 0;
        investor.plans[planCount].isExpired = false;

        investor.planCount = investor.planCount.add(1);

        totalInvestments_ = totalInvestments_.add(_amount);

        uint256 developerPercentage = (_amount.mul(DEVELOPER_RATE)).div(1000);
        developerAccount_.transfer(developerPercentage);
        uint256 marketingPercentage = (_amount.mul(MARKETING_RATE)).div(1000);
        marketingAccount_.transfer(marketingPercentage);
        uint256 adminPercentage = (_amount.mul(ADMIN_RATE)).div(1000);
        adminAccount_.transfer(adminPercentage);
        uint256 teamPercentage = (_amount.mul(TEAM_RATE)).div(1000);
        teamAccount_.transfer(teamPercentage);
        
        return true;
    }

    function _stake(address payable _addr, uint256 _planId, uint256 _amount) private returns(bool){
        require(SODA.balanceOf(_addr)>=_amount, "insufficient amount of soda token");

        uint256 uid = address2UID[_addr];

        if (uid == 0) {
            revert("You do not have active investment in bnb");
        }
        
        SODA.transferFrom(_addr, address(this), _amount);
         
        uint256 planCountSoda = uid2Investor[uid].planCountSoda;
        Objects.Investor storage investor = uid2Investor[uid];

        investor.plans_soda[planCountSoda].planId = _planId;
        investor.plans_soda[planCountSoda].investmentDate = block.timestamp;
        investor.plans_soda[planCountSoda].lastWithdrawalDate = block.timestamp;
        investor.plans_soda[planCountSoda].investment = _amount;
        investor.plans_soda[planCountSoda].currentDividends = 0;
        investor.plans_soda[planCountSoda].isExpired = false;

        investor.planCountSoda = investor.planCountSoda.add(1);

        SODA_STAKED = SODA_STAKED.add(_amount);


        return true;
    }


    function invest(uint256 _referrerCode) public payable {
        if (_invest(msg.sender, 0, _referrerCode, msg.value)) {
            emit onInvest(msg.sender, msg.value);
        }
    }

    function stake(uint256 _value) public {
        if(_stake(msg.sender,1,_value)){
            emit onStake(msg.sender, _value);
        }
    }

    function claimReward() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0, "Can not withdraw because no any investments");
        require(uid2Investor[uid].planCountSoda != 0, "Can not withdraw because no any investments in soda");
        uint256 withdrawalAmount = 0;

         for (uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++) {
             if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

             Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans_soda[i].planId];

          
            bool isExpired = false;
             uint256 withdrawalDate = block.timestamp;
             if (plan.term > 0) {
                 uint256 endTime = uid2Investor[uid].plans_soda[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                     withdrawalDate = endTime;
                     isExpired = true;
                   
                 }
             }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans_soda[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans_soda[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
            uid2Investor[uid].plans_soda[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans_soda[i].isExpired = isExpired;
            uid2Investor[uid].plans_soda[i].currentDividends += amount;
         }
        
        uint256 payout = withdrawalAmount.mul(9).div(10); // 90%
        
        SODA.mint(msg.sender,payout);
        
        _calculateSodaReferrerReward(payout, uid2Investor[uid].referrer);
        _buyTickets(msg.sender, withdrawalAmount.sub(payout)); // 10% of withdrawal goes on tickets purchase
        
        emit onWithdraw(msg.sender, withdrawalAmount);
    }   


    function withdraw() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0, "Can not withdraw because of no investments");
        uint256 withdrawalAmount = 0;

        

        for (uint256 i = 0; i < uid2Investor[uid].planCount; i++) {
            if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

            Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans[i].planId];

          

            bool isExpired = false;
            uint256 withdrawalDate = block.timestamp;
            if (plan.term > 0) {
                uint256 endTime = uid2Investor[uid].plans[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                    withdrawalDate = endTime;
                    isExpired = true;
                   
                }
            }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
            uid2Investor[uid].plans[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans[i].isExpired = isExpired;
            uid2Investor[uid].plans[i].currentDividends += amount;
        }
        
        uint256 sodaReward = withdrawalAmount.mul(1e18).div(BNB_PER_SODA);
        uint256 payout = sodaReward.mul(9).div(10); // 90% 
        
        SODA.mint(msg.sender,payout);
        
        _calculateSodaReferrerReward(payout, uid2Investor[uid].referrer);
        _buyTickets(msg.sender,sodaReward.sub(payout)); // 10% of withdrawal goes on tickets purchase
        

        emit onWithdraw(msg.sender, sodaReward);
    }

    function unstake() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0,"Can not withdraw because of no investments");
        require(uid2Investor[uid].planCountSoda != 0,"nothing to unstake");
        
        uint256 body = 0;
        
        uint256 withdrawalAmount = 0;

         for (uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++) {
             if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

             Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans_soda[i].planId];

          
            
             uint256 withdrawalDate = block.timestamp;
             if (plan.term > 0) {
                 uint256 endTime = uid2Investor[uid].plans_soda[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                     withdrawalDate = endTime;
                   
                 }
             }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans_soda[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans_soda[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
            body += uid2Investor[uid].plans_soda[i].investment;
          
            uid2Investor[uid].plans_soda[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans_soda[i].isExpired = true;
            uid2Investor[uid].plans_soda[i].currentDividends += amount;
         }
         
         uid2Investor[uid].planCountSoda = 0;
         
         uint256 payout = withdrawalAmount.mul(9).div(10); // 90%
         
         
         _calculateSodaReferrerReward(payout, uid2Investor[uid].referrer);
        
         
         
         SODA.transfer(msg.sender, body);
         SODA.mint(msg.sender, payout);
         
         _buyTickets(msg.sender, withdrawalAmount.sub(payout)); // 10% of withdrawal goes on tickets purchase
          
         SODA_STAKED = SODA_STAKED.sub(body);
         
        
         emit onUnstake(msg.sender, body);
        
        
    }

    function swap(uint256 _sodaAmount) public{
        require(SODA.balanceOf(msg.sender)>=_sodaAmount, "insufficient amount of soda token");

        uint256 price = getSodaPrice();
        uint256 payout = _sodaAmount.mul(price).div(1e18);

        SODA.transferFrom(msg.sender, address(this), _sodaAmount);

        msg.sender.transfer(payout);
        
        emit onSwap(msg.sender, payout);

    }
    
    function claimRef() public {
         uint256 uid = address2UID[msg.sender];
         require(uid != 0,"You are not registered");
         require(uid2Investor[uid].refRewardsToClaim !=0, "Nothing to claim");
         
         uint256 amount = uid2Investor[uid].refRewardsToClaim;
         
         SODA.mint(msg.sender,amount);
         
         uid2Investor[uid].refRewardsToClaim = 0;
         uid2Investor[uid].referrerSodaEarnings = uid2Investor[uid].referrerSodaEarnings.add(amount);
         
         emit onRefClaimed(msg.sender,amount);
    }
    
    function claimLotteryReward() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0,"You are not registered");
        require(uid2Investor[uid].lotteryRewards !=0, "Nothing to claim");
        
        uint256 amount = uid2Investor[uid].lotteryRewards;
        
        SODA.mint(msg.sender, amount);
        
        uid2Investor[uid].lotteryRewards = 0;
        
        emit onLotteryRewardsClaimed(msg.sender, amount);
    }
    
    function _buyTickets(address userAddress, uint256 withdrawalAmount) private { // withdrawalAmount = 10% of initial withdrawal amount
    
        require(withdrawalAmount != 0, "zero withdrawal amount");
        
        uint256 tickets = withdrawalAmount.mul(SODA_PER_TICKET).div(1e18);
        
        if(ticketOwners[lotteryRound][userAddress] == 0) {
            participantAdresses[lotteryRound][participants] = userAddress;
            participants = participants.add(1);
        }
        
        ticketOwners[lotteryRound][userAddress] = ticketOwners[lotteryRound][userAddress].add(tickets);
        currentPot = currentPot.add(withdrawalAmount);
        totalTickets = totalTickets.add(tickets);
        
        if(block.timestamp - LOTTERY_START_TIME >= LOTTERY_STEP){
            _chooseWinner();
        }
    }
    
    function _chooseWinner() private {
        
       uint256[] memory init_range = new uint256[](participants);
       uint256[] memory end_range = new uint256[](participants);
       
       uint256 last_range = 0;
       
       for(uint256 i = 0; i < participants; i++){
           uint256 range0 = last_range.add(1);
           uint256 range1 = range0.add(ticketOwners[lotteryRound][participantAdresses[lotteryRound][i]].div(1e18)); 
           
           init_range[i] = range0;
           end_range[i] = range1;
           
           last_range = range1;
       }
        
       uint256 random = _getRandom().mod(last_range).add(1); 
       
       for(uint256 i = 0; i < participants; i++){
           if((random >= init_range[i]) && (random <= end_range[i])){
               // winner found
               
               address winnerAddress = participantAdresses[lotteryRound][i];
               uint256 uid = address2UID[winnerAddress];
               
               uid2Investor[uid].lotteryRewards = uid2Investor[uid].lotteryRewards.add(currentPot.mul(9).div(10));
              
               // reset lotteryRound
               
               currentPot = 0;
               lotteryRound = lotteryRound.add(1);
               participants = 0;
               totalTickets = 0;
               LOTTERY_START_TIME = block.timestamp;
               
               emit onLotteryWinner(winnerAddress, uid2Investor[uid].lotteryRewards);

               break;
           }
       }
    }
    
    function _getRandom() private view returns(uint256){
        
        bytes32 _blockhash = blockhash(block.number-1);
        
        
        return uint256(keccak256(abi.encode(_blockhash,block.timestamp,block.difficulty,currentPot)));
    }

    function _calculateSodaReferrerReward(uint256 _investment, uint256 _referrerCode) private {

       if (_referrerCode != 0) {
          address payable upline = uid2Investor[_referrerCode].addr; // upline`s address
          
          for(uint256 i = 0; i<20;i++){
              if(upline != address(0)){
                  uint256 amount = _investment.mul(REFERRAL_PERCENTS[i]).div(10000);
                  
                  uint256 uid = address2UID[upline]; // upline id
                  uid2Investor[uid].refRewardsToClaim = uid2Investor[uid].refRewardsToClaim.add(amount);
                  
                  uint256 upline_uid = uid2Investor[uid].referrer; // id upline`s upline
                  upline = uid2Investor[upline_uid].addr;
                  
              } else break;
          }
        }

    }
        
    

    function _calculateDividends(uint256 _amount, uint256 _dailyInterestRate, uint256 _now, uint256 _start) private pure returns(uint256) {
        return (_amount * _dailyInterestRate / 1000 * (_now - _start)) / (60*60*24);
    }

    
    
    function getUserReferrer(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].referrer;
    }
    
    function getUserReferralEarnings(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].referrerSodaEarnings;
    }
    
    function getUserAmountOfReferrals(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].referrals;
    }
    
    function getUserSodaPoolReward(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
        uint256 withdrawalAmount = 0;

         for (uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++) {
             if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

             Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans_soda[i].planId];

          
             uint256 withdrawalDate = block.timestamp;
             if (plan.term > 0) {
                 uint256 endTime = uid2Investor[uid].plans_soda[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                     withdrawalDate = endTime;
                   
                 }
             }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans_soda[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans_soda[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
            
         }
         
         return withdrawalAmount;
        
    }
    
    function getUserBnbPoolReward(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
       uint256 withdrawalAmount = 0;

        

        for (uint256 i = 0; i < uid2Investor[uid].planCount; i++) {
            if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

            Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans[i].planId];

          

            uint256 withdrawalDate = block.timestamp;
            if (plan.term > 0) {
                uint256 endTime = uid2Investor[uid].plans[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                    withdrawalDate = endTime;
                   
                   
                }
            }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
     
        }
        
        uint256 sodaReward = withdrawalAmount.mul(1e18).div(BNB_PER_SODA);
        
        return sodaReward;
        
    }
    
    function getUserLotteryRewards(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].lotteryRewards;
    }

    function userTotalBnbInvestments(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        uint256 amount = 0;
        
        for(uint256 i = 0; i < uid2Investor[uid].planCount; i++){
            amount = amount.add(uid2Investor[uid].plans[i].investment);
        }
        
        return amount;
    }
    
    function userTotalSodaInvestments(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        uint256 amount = 0;
        
        for(uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++){
            amount = amount.add(uid2Investor[uid].plans_soda[i].investment);
        }
        
        return amount;
    }
    
    function getAvailableRefEarnings(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].refRewardsToClaim;
    }
    
    function getUserTickets(address _userAddress) public view returns(uint256) {
         
         return ticketOwners[lotteryRound][_userAddress];
    }
    
    function getLotteryTimer() public view returns(uint256) {
        return LOTTERY_START_TIME.add(12 hours);
    }
    
    
}

Contract ABI

[{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserTickets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SODA","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserAmountOfReferrals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"address2UID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"ticketOwners","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERRER_CODE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKETING_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_referrerCode","type":"uint256"}],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"unstake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TIME_STEP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LOTTERY_START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserReferrer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"START_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserBnbPoolReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_INVESTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserReferralEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimLotteryReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPot","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BNB_PER_SODA","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"REFERRAL_PERCENTS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TEAM_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"participants","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestReferrerCode","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDeveloperAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserSodaPoolReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMarketingAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSodaPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"userTotalSodaInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sodaAmount","type":"uint256"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimRef","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SODA_PER_TICKET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserLotteryRewards","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"uid2Investor","outputs":[{"name":"addr","type":"address"},{"name":"referrerSodaEarnings","type":"uint256"},{"name":"refRewardsToClaim","type":"uint256"},{"name":"referrer","type":"uint256"},{"name":"planCount","type":"uint256"},{"name":"planCountSoda","type":"uint256"},{"name":"referrals","type":"uint256"},{"name":"lotteryRewards","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ADMIN_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"LOTTERY_STEP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"participantAdresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lotteryRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"userTotalBnbInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLotteryTimer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SODA_STAKED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEVELOPER_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTickets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getAvailableRefEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getUIDByAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"adminAccount","type":"address"},{"name":"marketingAccount","type":"address"},{"name":"teamAccount","type":"address"},{"name":"price","type":"uint256"},{"name":"SODA_ADDRESS","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onUnstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onRefClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"pot","type":"uint256"}],"name":"onLotteryWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"rewards","type":"uint256"}],"name":"onLotteryRewardsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"onOwnershipTransferred","type":"event"}]

60806040526040518061028001604052806105dc61ffff1681526020016105dc61ffff16815260200161032061ffff16815260200161032061ffff16815260200161025861ffff1681526020016101f461ffff1681526020016101f461ffff1681526020016101f461ffff16815260200161019061ffff16815260200161019061ffff16815260200161019061ffff16815260200161012c61ffff16815260200161012c61ffff16815260200161012c61ffff16815260200160c861ffff16815260200160c861ffff16815260200160c861ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff1681525060029060146200010a92919062000560565b506000600555600060065560006007556000600855600060095561a8c0600a553480156200013757600080fd5b5060405160a080620052f0833981018060405260a08110156200015957600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002f7662386f26fc10000836200036760201b62003c661790919060201c565b60048190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260038190555042600b819055506200035c620003a260201b60201c565b5050505050620005e0565b6000808314156200037c57600090506200039c565b60008284029050828482816200038e57fe5b04146200039757fe5b809150505b92915050565b611e61600c81905550611e61601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503360136000600c54815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060136000600c54815260200190815260200160002060030181905550600060136000600c54815260200190815260200160002060040181905550600060136000600c5481526020019081526020016000206005018190555060166040518060400160405280600a8152602001630107ac0081525090806001815401808255809150509060018203906000526020600020906002020160009091929091909150600082015181600001556020820151816001015550505060166040518060400160405280600c8152602001630107ac00815250908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010155505050565b828054828255906000526020600020908101928215620005a5579160200282015b82811115620005a4578251829061ffff1690559160200191906001019062000581565b5b509050620005b49190620005b8565b5090565b620005dd91905b80821115620005d9576000816000905550600101620005bf565b5090565b90565b614d0080620005f06000396000f3fe6080604052600436106102e45760003560e01c80637e3ee80d11610190578063b88a802f116100dc578063cd9b0c1c11610095578063f2fde38b1161006f578063f2fde38b14610ec4578063f46c054014610f15578063f9a026aa14610f7a578063fe4d017f14610fa5576102e4565b8063cd9b0c1c14610e43578063d6a63c9f14610e6e578063dd11247e14610e99576102e4565b8063b88a802f14610cc1578063bdb6ce3d14610cd8578063c361c14d14610d03578063c519642614610d88578063c947618a14610db3578063cc9c10c514610e18576102e4565b806394b918de11610149578063a64cf35711610123578063a64cf35714610b4a578063a694fc3a14610baf578063ab92bff614610bea578063b2c67a8214610c96576102e4565b806394b918de14610acd57806397b09aba14610b0857806399c3530314610b1f576102e4565b80637e3ee80d146108d35780637f6a824c1461092a578063838fcc901461098f578063864862c2146109e65780638c224ac914610a115780638da5cb5b14610a76576102e4565b806336144c9a1161024f5780635566513211610208578063600d20ce116101e2578063600d20ce14610803578063635d2045146108525780636c4470fb1461087d57806375c04d0b146108a8576102e4565b80635566513214610796578063574479e6146107ad5780635a0309a2146107d8576102e4565b806336144c9a146105fa578063372c65331461065f5780633ccfd60b1461068a5780634aefbf24146106a15780634ef8ff33146107065780634fdddc1414610731576102e4565b806325ccbc43116102a157806325ccbc431461050957806328e7cef5146105345780632afcf4801461055f5780632def66201461058d57806332bc298c146105a4578063360498d1146105cf576102e4565b80630484a22f146102e9578063065f32fc1461034e57806312065fe0146103a557806312536135146103d05780631463ae0614610435578063256fd6cc1461049a575b600080fd5b3480156102f557600080fd5b506103386004803603602081101561030c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100a565b6040518082815260200191505060405180910390f35b34801561035a57600080fd5b50610363611066565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103b157600080fd5b506103ba61108c565b6040518082815260200191505060405180910390f35b3480156103dc57600080fd5b5061041f600480360360208110156103f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ab565b6040518082815260200191505060405180910390f35b34801561044157600080fd5b506104846004803603602081101561045857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061110f565b6040518082815260200191505060405180910390f35b3480156104a657600080fd5b506104f3600480360360408110156104bd57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611127565b6040518082815260200191505060405180910390f35b34801561051557600080fd5b5061051e61114c565b6040518082815260200191505060405180910390f35b34801561054057600080fd5b50610549611152565b6040518082815260200191505060405180910390f35b61058b6004803603602081101561057557600080fd5b8101908080359060200190929190505050611157565b005b34801561059957600080fd5b506105a26111d8565b005b3480156105b057600080fd5b506105b9611851565b6040518082815260200191505060405180910390f35b3480156105db57600080fd5b506105e4611858565b6040518082815260200191505060405180910390f35b34801561060657600080fd5b506106496004803603602081101561061d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061185e565b6040518082815260200191505060405180910390f35b34801561066b57600080fd5b506106746118c2565b6040518082815260200191505060405180910390f35b34801561069657600080fd5b5061069f6118c8565b005b3480156106ad57600080fd5b506106f0600480360360208110156106c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611da0565b6040518082815260200191505060405180910390f35b34801561071257600080fd5b5061071b611fba565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b506107806004803603602081101561075457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fc5565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107ab612029565b005b3480156107b957600080fd5b506107c26122fc565b6040518082815260200191505060405180910390f35b3480156107e457600080fd5b506107ed612302565b6040518082815260200191505060405180910390f35b34801561080f57600080fd5b5061083c6004803603602081101561082657600080fd5b8101908080359060200190929190505050612308565b6040518082815260200191505060405180910390f35b34801561085e57600080fd5b50610867612329565b6040518082815260200191505060405180910390f35b34801561088957600080fd5b5061089261232e565b6040518082815260200191505060405180910390f35b3480156108b457600080fd5b506108bd612334565b6040518082815260200191505060405180910390f35b3480156108df57600080fd5b506108e861233a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093657600080fd5b506109796004803603602081101561094d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123bd565b6040518082815260200191505060405180910390f35b34801561099b57600080fd5b506109a46125a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109f257600080fd5b506109fb612626565b6040518082815260200191505060405180910390f35b348015610a1d57600080fd5b50610a6060048036036020811015610a3457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b1565b6040518082815260200191505060405180910390f35b348015610a8257600080fd5b50610a8b612776565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ad957600080fd5b50610b0660048036036020811015610af057600080fd5b810190808035906020019092919050505061279b565b005b348015610b1457600080fd5b50610b1d612ada565b005b348015610b2b57600080fd5b50610b34612df0565b6040518082815260200191505060405180910390f35b348015610b5657600080fd5b50610b9960048036036020811015610b6d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfc565b6040518082815260200191505060405180910390f35b348015610bbb57600080fd5b50610be860048036036020811015610bd257600080fd5b8101908080359060200190929190505050612e60565b005b348015610bf657600080fd5b50610c2360048036036020811015610c0d57600080fd5b8101908080359060200190929190505050612ee0565b604051808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b348015610ca257600080fd5b50610cab612f48565b6040518082815260200191505060405180910390f35b348015610ccd57600080fd5b50610cd6612f4d565b005b348015610ce457600080fd5b50610ced613461565b6040518082815260200191505060405180910390f35b348015610d0f57600080fd5b50610d4660048036036040811015610d2657600080fd5b810190808035906020019092919080359060200190929190505050613467565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d9457600080fd5b50610d9d6134a9565b6040518082815260200191505060405180910390f35b348015610dbf57600080fd5b50610e0260048036036020811015610dd657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134af565b6040518082815260200191505060405180910390f35b348015610e2457600080fd5b50610e2d613574565b6040518082815260200191505060405180910390f35b348015610e4f57600080fd5b50610e58613592565b6040518082815260200191505060405180910390f35b348015610e7a57600080fd5b50610e83613598565b6040518082815260200191505060405180910390f35b348015610ea557600080fd5b50610eae61359d565b6040518082815260200191505060405180910390f35b348015610ed057600080fd5b50610f1360048036036020811015610ee757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135a3565b005b348015610f2157600080fd5b50610f6460048036036020811015610f3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136f4565b6040518082815260200191505060405180910390f35b348015610f8657600080fd5b50610f8f613758565b6040518082815260200191505060405180910390f35b348015610fb157600080fd5b50610ff460048036036020811015610fc857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613762565b6040518082815260200191505060405180910390f35b600060146000600654815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506013600082815260200190815260200160002060080154915050919050565b60126020528060005260406000206000915090505481565b6014602052816000526040600020602052806000526040600020600091509150505481565b611e6181565b601e81565b61116433600083346137ab565b156111d5577f9a7b89cf778462f98a9b59f99121c720927a5c37ffaaba0346f77326622a8aeb3334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b50565b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614c2c602a913960400191505060405180910390fd5b600060136000838152602001908152602001600020600501541415611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7468696e6720746f20756e7374616b65000000000000000000000000000081525060200191505060405180910390fd5b6000809050600080905060008090505b60136000858152602001908152602001600020600501548110156115775760136000858152602001908152602001600020600601600082815260200190815260200160002060050160009054906101000a900460ff16156113735761156a565b6000601660136000878152602001908152602001600020600701600084815260200190815260200160002060000154815481106113ac57fe5b9060005260206000209060020201905060004290506000826001015411156114205760006114118360010154601360008a8152602001908152602001600020600701600087815260200190815260200160002060010154613c2090919063ffffffff16565b905080821061141e578091505b505b600061148660136000898152602001908152602001600020600701600086815260200190815260200160002060020154846000015484601360008c8152602001908152602001600020600701600089815260200190815260200160002060030154613c3c565b9050808501945060136000888152602001908152602001600020600701600085815260200190815260200160002060020154860195508160136000898152602001908152602001600020600701600086815260200190815260200160002060030181905550600160136000898152602001908152602001600020600701600086815260200190815260200160002060050160006101000a81548160ff02191690831515021790555080601360008981526020019081526020016000206007016000868152602001908152602001600020600401600082825401925050819055505050505b8080600101915050611313565b506000601360008581526020019081526020016000206005018190555060006115bd600a6115af600985613c6690919063ffffffff16565b613c9d90919063ffffffff16565b90506115df816013600087815260200190815260200160002060030154613cb6565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561168857600080fd5b505af115801561169c573d6000803e3d6000fd5b505050506040513d60208110156116b257600080fd5b810190808051906020019092919050505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561176d57600080fd5b505af1158015611781573d6000803e3d6000fd5b505050506040513d602081101561179757600080fd5b8101908080519060200190929190505050506117c5336117c08385613e7a90919063ffffffff16565b613e91565b6117da83600554613e7a90919063ffffffff16565b6005819055507f7fb6d3a352654bbe6482e4c3cab1e9a132396fc33d40865daec7f457f2948f923384604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b6201518081565b600b5481565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506013600082815260200190815260200160002060030154915050919050565b60035481565b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614c2c602a913960400191505060405180910390fd5b600080905060008090505b6013600084815260200190815260200160002060040154811015611baf5760136000848152602001908152602001600020600601600082815260200190815260200160002060050160009054906101000a900460ff16156119d157611ba2565b600060166013600086815260200190815260200160002060060160008481526020019081526020016000206000015481548110611a0a57fe5b9060005260206000209060020201905060008090506000429050600083600101541115611a87576000611a748460010154601360008a8152602001908152602001600020600601600088815260200190815260200160002060010154613c2090919063ffffffff16565b9050808210611a8557809150600192505b505b6000611aed60136000898152602001908152602001600020600601600087815260200190815260200160002060020154856000015484601360008c815260200190815260200160002060060160008a815260200190815260200160002060030154613c3c565b9050808601955081601360008981526020019081526020016000206006016000878152602001908152602001600020600301819055508260136000898152602001908152602001600020600601600087815260200190815260200160002060050160006101000a81548160ff0219169083151502179055508060136000898152602001908152602001600020600601600087815260200190815260200160002060040160008282540192505081905550505050505b8080600101915050611971565b506000611be1600454611bd3670de0b6b3a764000085613c6690919063ffffffff16565b613c9d90919063ffffffff16565b90506000611c0c600a611bfe600985613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611cb757600080fd5b505af1158015611ccb573d6000803e3d6000fd5b505050506040513d6020811015611ce157600080fd5b810190808051906020019092919050505050611d13816013600087815260200190815260200160002060030154613cb6565b611d2f33611d2a8385613e7a90919063ffffffff16565b613e91565b7fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600080905060008090505b6013600084815260200190815260200160002060040154811015611f7b5760136000848152602001908152602001600020600601600082815260200190815260200160002060050160009054906101000a900460ff1615611e5057611f6e565b600060166013600086815260200190815260200160002060060160008481526020019081526020016000206000015481548110611e8957fe5b906000526020600020906002020190506000429050600082600101541115611efd576000611eee836001015460136000898152602001908152602001600020600601600087815260200190815260200160002060010154613c2090919063ffffffff16565b9050808210611efb578091505b505b6000611f6360136000888152602001908152602001600020600601600086815260200190815260200160002060020154846000015484601360008b8152602001908152602001600020600601600089815260200190815260200160002060030154613c3c565b905080850194505050505b8080600101915050611df0565b506000611fad600454611f9f670de0b6b3a764000085613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050809350505050919050565b662386f26fc1000081565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506013600082815260200190815260200160002060010154915050919050565b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f596f7520617265206e6f7420726567697374657265640000000000000000000081525060200191505060405180910390fd5b600060136000838152602001908152602001600020600901541415612171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4e6f7468696e6720746f20636c61696d0000000000000000000000000000000081525060200191505060405180910390fd5b600060136000838152602001908152602001600020600901549050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561223557600080fd5b505af1158015612249573d6000803e3d6000fd5b505050506040513d602081101561225f57600080fd5b810190808051906020019092919050505050600060136000848152602001908152602001600020600901819055507f8e4e1e6d03e5b72678138d8cbe9853d23c47187442b1e2f6a2be34587aed6eab3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60075481565b60045481565b6002818154811061231557fe5b906000526020600020016000915090505481565b600a81565b60085481565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461239557600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600080905060008090505b60136000848152602001908152602001600020600501548110156125985760136000848152602001908152602001600020600601600082815260200190815260200160002060050160009054906101000a900460ff161561246d5761258b565b6000601660136000868152602001908152602001600020600701600084815260200190815260200160002060000154815481106124a657fe5b90600052602060002090600202019050600042905060008260010154111561251a57600061250b836001015460136000898152602001908152602001600020600701600087815260200190815260200160002060010154613c2090919063ffffffff16565b9050808210612518578091505b505b600061258060136000888152602001908152602001600020600701600086815260200190815260200160002060020154846000015484601360008b8152602001908152602001600020600701600089815260200190815260200160002060030154613c3c565b905080850194505050505b808060010191505061240d565b508092505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125fe57600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806126536201518061264560035442613e7a90919063ffffffff16565b613c9d90919063ffffffff16565b905060006126a76126966103e8612688600261267a87600454613c6690919063ffffffff16565b613c6690919063ffffffff16565b613c9d90919063ffffffff16565b600454613c2090919063ffffffff16565b9050809250505090565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600080905060008090505b601360008481526020019081526020016000206005015481101561276b5761275c6013600085815260200190815260200160002060070160008381526020019081526020016000206002015483613c2090919063ffffffff16565b91508080600101915050612701565b508092505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561283b57600080fd5b505afa15801561284f573d6000803e3d6000fd5b505050506040513d602081101561286557600080fd5b810190808051906020019092919050505010156128cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614cb46021913960400191505060405180910390fd5b60006128d7612626565b90506000612908670de0b6b3a76400006128fa8486613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156129e757600080fd5b505af11580156129fb573d6000803e3d6000fd5b505050506040513d6020811015612a1157600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a69573d6000803e3d6000fd5b507f7568080cd9afedbd667a0841a7dd3b0452ee9fca4660c6758ee5a54ab3161be43382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612b95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f596f7520617265206e6f7420726567697374657265640000000000000000000081525060200191505060405180910390fd5b600060136000838152602001908152602001600020600201541415612c22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4e6f7468696e6720746f20636c61696d0000000000000000000000000000000081525060200191505060405180910390fd5b600060136000838152602001908152602001600020600201549050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612ce657600080fd5b505af1158015612cfa573d6000803e3d6000fd5b505050506040513d6020811015612d1057600080fd5b81019080805190602001909291905050505060006013600084815260200190815260200160002060020181905550612d67816013600085815260200190815260200160002060010154613c2090919063ffffffff16565b60136000848152602001908152602001600020600101819055507ff2438df4d0a7e3db9ca0c9629f2ff757d4a1ee55f65c78a79ac8a29b316b394e3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b670de0b6b3a764000081565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506013600082815260200190815260200160002060090154915050919050565b612e6c3360018361412c565b15612edd577f8c087b1c5e771b2c641c01e5611c84c5eda20b977838b3c2552a0eaf097fe3b43382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b50565b60136020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050154908060080154908060090154905088565b601e81565b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612feb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614c56602b913960400191505060405180910390fd5b60006013600083815260200190815260200160002060050154141561305b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180614c816033913960400191505060405180910390fd5b600080905060008090505b60136000848152602001908152602001600020600501548110156132a45760136000848152602001908152602001600020600601600082815260200190815260200160002060050160009054906101000a900460ff16156130c657613297565b6000601660136000868152602001908152602001600020600701600084815260200190815260200160002060000154815481106130ff57fe5b906000526020600020906002020190506000809050600042905060008360010154111561317c5760006131698460010154601360008a8152602001908152602001600020600701600088815260200190815260200160002060010154613c2090919063ffffffff16565b905080821061317a57809150600192505b505b60006131e260136000898152602001908152602001600020600701600087815260200190815260200160002060020154856000015484601360008c815260200190815260200160002060070160008a815260200190815260200160002060030154613c3c565b9050808601955081601360008981526020019081526020016000206007016000878152602001908152602001600020600301819055508260136000898152602001908152602001600020600701600087815260200190815260200160002060050160006101000a81548160ff0219169083151502179055508060136000898152602001908152602001600020600701600087815260200190815260200160002060040160008282540192505081905550505050505b8080600101915050613066565b5060006132ce600a6132c0600985613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561337957600080fd5b505af115801561338d573d6000803e3d6000fd5b505050506040513d60208110156133a357600080fd5b8101908080519060200190929190505050506133d5816013600086815260200190815260200160002060030154613cb6565b6133f1336133ec8385613e7a90919063ffffffff16565b613e91565b7fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b600a5481565b60156020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600080905060008090505b60136000848152602001908152602001600020600401548110156135695761355a6013600085815260200190815260200160002060060160008381526020019081526020016000206002015483613c2090919063ffffffff16565b915080806001019150506134ff565b508092505050919050565b600061358d61a8c0600b54613c2090919063ffffffff16565b905090565b60055481565b601e81565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146135fc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561363657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506013600082815260200190815260200160002060020154915050919050565b6000600d54905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000662386f26fc1000082101561382a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f57726f6e67206d696e20696e766573746d656e7400000000000000000000000081525060200191505060405180910390fd5b6000601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415613888576138818685614555565b9050613889565b5b60006013600083815260200190815260200160002060040154905060006013600084815260200190815260200160002090508681600601600084815260200190815260200160002060000181905550428160060160008481526020019081526020016000206001018190555042816006016000848152602001908152602001600020600301819055508481600601600084815260200190815260200160002060020181905550600081600601600084815260200190815260200160002060040181905550600081600601600084815260200190815260200160002060050160006101000a81548160ff02191690831515021790555061399660018260040154613c2090919063ffffffff16565b81600401819055506139b385600d54613c2090919063ffffffff16565b600d8190555060006139e36103e86139d5601e89613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613a4d573d6000803e3d6000fd5b506000613a786103e8613a6a601e8a613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613ae2573d6000803e3d6000fd5b506000613b0d6103e8613aff601e8b613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b77573d6000803e3d6000fd5b506000613ba26103e8613b94600a8c613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613c0c573d6000803e3d6000fd5b506001975050505050505050949350505050565b600080828401905083811015613c3257fe5b8091505092915050565b6000620151808284036103e886880281613c5257fe5b040281613c5b57fe5b049050949350505050565b600080831415613c795760009050613c97565b6000828402905082848281613c8a57fe5b0414613c9257fe5b809150505b92915050565b600080828481613ca957fe5b0490508091505092915050565b60008114613e765760006013600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b6014811015613e7357600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614613e61576000613d7c612710613d6e60028581548110613d5457fe5b906000526020600020015488613c6690919063ffffffff16565b613c9d90919063ffffffff16565b90506000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050613deb826013600084815260200190815260200160002060020154613c2090919063ffffffff16565b60136000838152602001908152602001600020600201819055506000601360008381526020019081526020016000206003015490506013600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450505050613e66565b613e73565b8080600101915050613cff565b50505b5050565b600082821115613e8657fe5b818303905092915050565b6000811415613f08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f7a65726f207769746864726177616c20616d6f756e740000000000000000000081525060200191505060405180910390fd5b6000613f3f670de0b6b3a7640000613f31670de0b6b3a764000085613c6690919063ffffffff16565b613c9d90919063ffffffff16565b9050600060146000600654815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561402057826015600060065481526020019081526020016000206000600854815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506140196001600854613c2090919063ffffffff16565b6008819055505b6140858160146000600654815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c2090919063ffffffff16565b60146000600654815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140f082600754613c2090919063ffffffff16565b60078190555061410b81600954613c2090919063ffffffff16565b600981905550600a54600b544203106141275761412661479a565b5b505050565b600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156141ce57600080fd5b505afa1580156141e2573d6000803e3d6000fd5b505050506040513d60208110156141f857600080fd5b81019080805190602001909291905050501015614260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614cb46021913960400191505060405180910390fd5b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156142fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614c046028913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8630866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156143db57600080fd5b505af11580156143ef573d6000803e3d6000fd5b505050506040513d602081101561440557600080fd5b81019080805190602001909291905050505060006013600083815260200190815260200160002060050154905060006013600084815260200190815260200160002090508581600701600084815260200190815260200160002060000181905550428160070160008481526020019081526020016000206001018190555042816007016000848152602001908152602001600020600301819055508481600701600084815260200190815260200160002060020181905550600081600701600084815260200190815260200160002060040181905550600081600701600084815260200190815260200160002060050160006101000a81548160ff02191690831515021790555061452460018260050154613c2090919063ffffffff16565b816005018190555061454185600554613c2090919063ffffffff16565b600581905550600193505050509392505050565b6000611e6182106145d557600073ffffffffffffffffffffffffffffffffffffffff166013600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156145d057600091505b6145da565b600091505b60008390506145f56001600c54613c2090919063ffffffff16565b600c81905550600c54601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060136000600c54815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260136000600c54815260200190815260200160002060030181905550600060136000600c54815260200190815260200160002060040181905550600060136000600c54815260200190815260200160002060050181905550611e61831061478e57600083905060008090505b601481101561478b57611e6182106147795761474160016013600085815260200190815260200160002060080154613c2090919063ffffffff16565b60136000848152602001908152602001600020600801819055506013600083815260200190815260200160002060030154915061477e565b61478b565b8080600101915050614705565b50505b600c5491505092915050565b60606008546040519080825280602002602001820160405280156147cd5781602001602082028038833980820191505090505b50905060606008546040519080825280602002602001820160405280156148035781602001602082028038833980820191505090505b509050600080905060008090505b600854811015614940576000614831600184613c2090919063ffffffff16565b905060006148fa6148eb670de0b6b3a76400006014600060065481526020019081526020016000206000601560006006548152602001908152602001600020600089815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c9d90919063ffffffff16565b83613c2090919063ffffffff16565b90508186848151811061490957fe5b6020026020010181815250508085848151811061492257fe5b60200260200101818152505080935050508080600101915050614811565b506000614970600161496284614954614b8e565b614be290919063ffffffff16565b613c2090919063ffffffff16565b905060008090505b600854811015614b875784818151811061498e57fe5b602002602001015182101580156149b857508381815181106149ac57fe5b60200260200101518211155b15614b7a576000601560006006548152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050614a9d614a78600a614a6a6009600754613c6690919063ffffffff16565b613c9d90919063ffffffff16565b6013600084815260200190815260200160002060090154613c2090919063ffffffff16565b60136000838152602001908152602001600020600901819055506000600781905550614ad56001600654613c2090919063ffffffff16565b6006819055506000600881905550600060098190555042600b819055507feff2bfb4f62e0281f8ac0d6939a18abdd4324639b70921e3a6c3517b1aa57399826013600084815260200190815260200160002060090154604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050614b87565b8080600101915050614978565b5050505050565b60008060014303409050804244600754604051602001808581526020018481526020018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c91505090565b600080821415614bf157600080fd5b818381614bfa57fe5b0690509291505056fe596f7520646f206e6f7420686176652061637469766520696e766573746d656e7420696e20626e6243616e206e6f742077697468647261772062656361757365206f66206e6f20696e766573746d656e747343616e206e6f742077697468647261772062656361757365206e6f20616e7920696e766573746d656e747343616e206e6f742077697468647261772062656361757365206e6f20616e7920696e766573746d656e747320696e20736f6461696e73756666696369656e7420616d6f756e74206f6620736f646120746f6b656ea165627a7a7230582016c41ac241c7cd8dac6e6f56c7a9467faa5fdb18fbec3252c82059ce5eaf14f30029000000000000000000000000e5b2032cc9b620569ecda56c968520b4d74104ed000000000000000000000000e3293c214a8fa6fc709ae6e024bdc2496133e6bd000000000000000000000000b5675741f30671804b9894248750d468425ab0df0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e826da0f088eaac0e1bc24db9cbea30c2088c619

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

000000000000000000000000e5b2032cc9b620569ecda56c968520b4d74104ed000000000000000000000000e3293c214a8fa6fc709ae6e024bdc2496133e6bd000000000000000000000000b5675741f30671804b9894248750d468425ab0df0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e826da0f088eaac0e1bc24db9cbea30c2088c619

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000e5b2032cc9b620569ecda56c968520b4d74104ed
Arg [1] : 000000000000000000000000e3293c214a8fa6fc709ae6e024bdc2496133e6bd
Arg [2] : 000000000000000000000000b5675741f30671804b9894248750d468425ab0df
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 000000000000000000000000e826da0f088eaac0e1bc24db9cbea30c2088c619


Deployed ByteCode Sourcemap

7803:24505:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32014:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32014:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32014:153:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7878:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7878:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11958:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11958:99:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28172:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28172:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28172:197:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9130:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9130:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9130:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9304:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9304:67:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9304:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8734:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8734:44:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7970:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7970:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16255:189;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16255:189:0;;;;;;;;;;;;;;;;;:::i;:::-;;20342:2137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20342:2137:0;;;:::i;:::-;;8259:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8259:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8688:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8688:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27753:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27753:187:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27753:187:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8314:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8314:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18522:1812;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18522:1812:0;;;:::i;:::-;;29557:1234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29557:1234:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29557:1234:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8797:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8797:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27952:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27952:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27952:208:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23491:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23491:468:0;;;:::i;:::-;;8530:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8530:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8352:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8352:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8111:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8111:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8111:139:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8066:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8066:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8566:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8566:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8863:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8863:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10832:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10832:114:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;28381:1164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28381:1164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28381:1164:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10710:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10710:114:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11520:316;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11520:316:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31399:386;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31399:386:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;31399:386:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6938:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6938:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22487:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22487:412:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22487:412:0;;;;;;;;;;;;;;;;;:::i;:::-;;22911:568;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22911:568:0;;;:::i;:::-;;8429:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8429:46:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30803:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30803:200:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;30803:200:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16452:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16452:146:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16452:146:0;;;;;;;;;;;;;;;;;:::i;:::-;;9205:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9205:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9205:56:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8020:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8020:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16606:1903;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16606:1903:0;;;:::i;:::-;;8642:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8642:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9425:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9425:74:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9425:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8492:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8492:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31011:376;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31011:376:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;31011:376:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32179:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32179:114:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8386:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8386:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7905:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7905:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8604:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8604:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7598:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7598:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7598:198:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;31797:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31797:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;31797:205:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11846:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11846:104:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12065:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12065:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12065:114:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32014:153;32080:7;32119:12;:26;32132:12;;32119:26;;;;;;;;;;;:40;32146:12;32119:40;;;;;;;;;;;;;;;;32112:47;;32014:153;;;:::o;7878:18::-;;;;;;;;;;;;;:::o;11958:99::-;12001:7;12036:4;12028:21;;;12021:28;;11958:99;:::o;28172:197::-;28248:7;28267:11;28281;:25;28293:12;28281:25;;;;;;;;;;;;;;;;28267:39;;28334:12;:17;28347:3;28334:17;;;;;;;;;;;:27;;;28327:34;;;28172:197;;;:::o;9130:46::-;;;;;;;;;;;;;;;;;:::o;9304:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8734:44::-;8774:4;8734:44;:::o;7970:43::-;8011:2;7970:43;:::o;16255:189::-;16324:48;16332:10;16344:1;16347:13;16362:9;16324:7;:48::i;:::-;16320:117;;;16394:31;16403:10;16415:9;16394:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;16320:117;16255:189;:::o;20342:2137::-;20379:11;20393;:23;20405:10;20393:23;;;;;;;;;;;;;;;;20379:37;;20442:1;20435:3;:8;;20427:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20543:1;20508:12;:17;20521:3;20508:17;;;;;;;;;;;:31;;;:36;;20500:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20587:12;20602:1;20587:16;;20624:24;20651:1;20624:28;;20671:9;20683:1;20671:13;;20666:1190;20690:12;:17;20703:3;20690:17;;;;;;;;;;;:31;;;20686:1;:35;20666:1190;;;20748:12;:17;20761:3;20748:17;;;;;;;;;;;:23;;:26;20772:1;20748:26;;;;;;;;;;;:36;;;;;;;;;;;;20744:85;;;20805:8;;20744:85;20846:25;20874:16;20891:12;:17;20904:3;20891:17;;;;;;;;;;;:28;;:31;20920:1;20891:31;;;;;;;;;;;:38;;;20874:56;;;;;;;;;;;;;;;;;;20846:84;;20974:22;20999:15;20974:40;;21046:1;21034:4;:9;;;:13;21030:274;;;21069:15;21087:61;21138:4;:9;;;21087:12;:17;21100:3;21087:17;;;;;;;;;;;:28;;:31;21116:1;21087:31;;;;;;;;;;;:46;;;:50;;:61;;;;:::i;:::-;21069:79;;21189:7;21171:14;:25;21167:121;;21239:7;21222:24;;21167:121;21030:274;;21320:14;21337:154;21357:12;:17;21370:3;21357:17;;;;;;;;;;;:28;;:31;21386:1;21357:31;;;;;;;;;;;:42;;;21402:4;:18;;;21423:14;21440:12;:17;21453:3;21440:17;;;;;;;;;;;:28;;:31;21469:1;21440:31;;;;;;;;;;;:50;;;21337:19;:154::i;:::-;21320:171;;21542:6;21522:26;;;;21571:12;:17;21584:3;21571:17;;;;;;;;;;;:28;;:31;21600:1;21571:31;;;;;;;;;;;:42;;;21563:50;;;;21693:14;21640:12;:17;21653:3;21640:17;;;;;;;;;;;:28;;:31;21669:1;21640:31;;;;;;;;;;;:50;;:67;;;;21766:4;21722:12;:17;21735:3;21722:17;;;;;;;;;;;:28;;:31;21751:1;21722:31;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;21837:6;21785:12;:17;21798:3;21785:17;;;;;;;;;;;:28;;:31;21814:1;21785:31;;;;;;;;;;;:48;;;:58;;;;;;;;;;;20666:1190;;;;20723:3;;;;;;;20666:1190;;;;21912:1;21878:12;:17;21891:3;21878:17;;;;;;;;;;;:31;;:35;;;;21936:14;21953:31;21981:2;21953:23;21974:1;21953:16;:20;;:23;;;;:::i;:::-;:27;;:31;;;;:::i;:::-;21936:48;;22025:64;22054:6;22062:12;:17;22075:3;22062:17;;;;;;;;;;;:26;;;22025:28;:64::i;:::-;22133:4;;;;;;;;;;;:13;;;22147:10;22159:4;22133:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22133:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22133:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22133:31:0;;;;;;;;;;;;;;;;;22176:4;;;;;;;;;;;:9;;;22186:10;22198:6;22176:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22176:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22176:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22176:29:0;;;;;;;;;;;;;;;;;22228:53;22240:10;22252:28;22273:6;22252:16;:20;;:28;;;;:::i;:::-;22228:11;:53::i;:::-;22365:21;22381:4;22365:11;;:15;;:21;;;;:::i;:::-;22351:11;:35;;;;22424:27;22434:10;22446:4;22424:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;20342:2137;;;;:::o;8259:42::-;8295:6;8259:42;:::o;8688:33::-;;;;:::o;27753:187::-;27820:7;27839:11;27853;:25;27865:12;27853:25;;;;;;;;;;;;;;;;27839:39;;27906:12;:17;27919:3;27906:17;;;;;;;;;;;:26;;;27899:33;;;27753:187;;;:::o;8314:25::-;;;;:::o;18522:1812::-;18560:11;18574;:23;18586:10;18574:23;;;;;;;;;;;;;;;;18560:37;;18623:1;18616:3;:8;;18608:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18682:24;18709:1;18682:28;;18740:9;18752:1;18740:13;;18735:1146;18759:12;:17;18772:3;18759:17;;;;;;;;;;;:27;;;18755:1;:31;18735:1146;;;18812:12;:17;18825:3;18812:17;;;;;;;;;;;:23;;:26;18836:1;18812:26;;;;;;;;;;;:36;;;;;;;;;;;;18808:85;;;18869:8;;18808:85;18909:25;18937:16;18954:12;:17;18967:3;18954:17;;;;;;;;;;;:23;;:26;18978:1;18954:26;;;;;;;;;;;:33;;;18937:51;;;;;;;;;;;;;;;;;;18909:79;;19019:14;19036:5;19019:22;;19056;19081:15;19056:40;;19127:1;19115:4;:9;;;:13;19111:304;;;19149:15;19167:56;19213:4;:9;;;19167:12;:17;19180:3;19167:17;;;;;;;;;;;:23;;:26;19191:1;19167:26;;;;;;;;;;;:41;;;:45;;:56;;;;:::i;:::-;19149:74;;19264:7;19246:14;:25;19242:158;;19313:7;19296:24;;19355:4;19343:16;;19242:158;19111:304;;19431:14;19448:144;19468:12;:17;19481:3;19468:17;;;;;;;;;;;:23;;:26;19492:1;19468:26;;;;;;;;;;;:37;;;19508:4;:18;;;19529:14;19546:12;:17;19559:3;19546:17;;;;;;;;;;;:23;;:26;19570:1;19546:26;;;;;;;;;;;:45;;;19448:19;:144::i;:::-;19431:161;;19643:6;19623:26;;;;19724:14;19676:12;:17;19689:3;19676:17;;;;;;;;;;;:23;;:26;19700:1;19676:26;;;;;;;;;;;:45;;:62;;;;19792:9;19753:12;:17;19766:3;19753:17;;;;;;;;;;;:23;;:26;19777:1;19753:26;;;;;;;;;;;:36;;;:48;;;;;;;;;;;;;;;;;;19863:6;19816:12;:17;19829:3;19816:17;;;;;;;;;;;:23;;:26;19840:1;19816:26;;;;;;;;;;;:43;;;:53;;;;;;;;;;;18735:1146;;;;;18788:3;;;;;;;18735:1146;;;;19901:18;19922:44;19953:12;;19922:26;19943:4;19922:16;:20;;:26;;;;:::i;:::-;:30;;:44;;;;:::i;:::-;19901:65;;19977:14;19994:25;20016:2;19994:17;20009:1;19994:10;:14;;:17;;;;:::i;:::-;:21;;:25;;;;:::i;:::-;19977:42;;20048:4;;;;;;;;;;;:9;;;20058:10;20069:6;20048:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20048:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20048:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20048:28:0;;;;;;;;;;;;;;;;;20097:64;20126:6;20134:12;:17;20147:3;20134:17;;;;;;;;;;;:26;;;20097:28;:64::i;:::-;20172:46;20184:10;20195:22;20210:6;20195:10;:14;;:22;;;;:::i;:::-;20172:11;:46::i;:::-;20292:34;20303:10;20315;20292:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;18522:1812;;;;:::o;29557:1234::-;29629:7;29648:11;29662;:25;29674:12;29662:25;;;;;;;;;;;;;;;;29648:39;;29707:24;29734:1;29707:28;;29765:9;29777:1;29765:13;;29760:890;29784:12;:17;29797:3;29784:17;;;;;;;;;;;:27;;;29780:1;:31;29760:890;;;29837:12;:17;29850:3;29837:17;;;;;;;;;;;:23;;:26;29861:1;29837:26;;;;;;;;;;;:36;;;;;;;;;;;;29833:85;;;29894:8;;29833:85;29934:25;29962:16;29979:12;:17;29992:3;29979:17;;;;;;;;;;;:23;;:26;30003:1;29979:26;;;;;;;;;;;:33;;;29962:51;;;;;;;;;;;;;;;;;;29934:79;;30044:22;30069:15;30044:40;;30115:1;30103:4;:9;;;:13;30099:286;;;30137:15;30155:56;30201:4;:9;;;30155:12;:17;30168:3;30155:17;;;;;;;;;;;:23;;:26;30179:1;30155:26;;;;;;;;;;;:41;;;:45;;:56;;;;:::i;:::-;30137:74;;30252:7;30234:14;:25;30230:140;;30301:7;30284:24;;30230:140;30099:286;;30401:14;30418:144;30438:12;:17;30451:3;30438:17;;;;;;;;;;;:23;;:26;30462:1;30438:26;;;;;;;;;;;:37;;;30478:4;:18;;;30499:14;30516:12;:17;30529:3;30516:17;;;;;;;;;;;:23;;:26;30540:1;30516:26;;;;;;;;;;;:45;;;30418:19;:144::i;:::-;30401:161;;30613:6;30593:26;;;;29760:890;;;;29813:3;;;;;;;29760:890;;;;30670:18;30691:44;30722:12;;30691:26;30712:4;30691:16;:20;;:26;;;;:::i;:::-;:30;;:44;;;;:::i;:::-;30670:65;;30763:10;30756:17;;;;;29557:1234;;;:::o;8797:45::-;8838:4;8797:45;:::o;27952:208::-;28027:7;28047:11;28061;:25;28073:12;28061:25;;;;;;;;;;;;;;;;28047:39;;28114:12;:17;28127:3;28114:17;;;;;;;;;;;:38;;;28107:45;;;27952:208;;;:::o;23491:468::-;23539:11;23553;:23;23565:10;23553:23;;;;;;;;;;;;;;;;23539:37;;23602:1;23595:3;:8;;23587:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23683:1;23648:12;:17;23661:3;23648:17;;;;;;;;;;;:32;;;:36;;23640:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23726:14;23743:12;:17;23756:3;23743:17;;;;;;;;;;;:32;;;23726:49;;23796:4;;;;;;;;;;;:9;;;23806:10;23818:6;23796:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23796:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23796:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23796:29:0;;;;;;;;;;;;;;;;;23881:1;23846:12;:17;23859:3;23846:17;;;;;;;;;;;:32;;:36;;;;23908:43;23932:10;23944:6;23908:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;23491:468;;:::o;8530:29::-;;;;:::o;8352:27::-;;;;:::o;8111:139::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8066:38::-;8102:2;8066:38;:::o;8566:31::-;;;;:::o;8863:33::-;;;;:::o;10832:114::-;10894:7;7394:5;;;;;;;;;;;7380:19;;:10;:19;;;7372:28;;;;;;10921:17;;;;;;;;;;;10914:24;;10832:114;:::o;28381:1164::-;28454:7;28473:11;28487;:25;28499:12;28487:25;;;;;;;;;;;;;;;;28473:39;;28533:24;28560:1;28533:28;;28580:9;28592:1;28580:13;;28575:907;28599:12;:17;28612:3;28599:17;;;;;;;;;;;:31;;;28595:1;:35;28575:907;;;28657:12;:17;28670:3;28657:17;;;;;;;;;;;:23;;:26;28681:1;28657:26;;;;;;;;;;;:36;;;;;;;;;;;;28653:85;;;28714:8;;28653:85;28755:25;28783:16;28800:12;:17;28813:3;28800:17;;;;;;;;;;;:28;;:31;28829:1;28800:31;;;;;;;;;;;:38;;;28783:56;;;;;;;;;;;;;;;;;;28755:84;;28869:22;28894:15;28869:40;;28941:1;28929:4;:9;;;:13;28925:274;;;28964:15;28982:61;29033:4;:9;;;28982:12;:17;28995:3;28982:17;;;;;;;;;;;:28;;:31;29011:1;28982:31;;;;;;;;;;;:46;;;:50;;:61;;;;:::i;:::-;28964:79;;29084:7;29066:14;:25;29062:121;;29134:7;29117:24;;29062:121;28925:274;;29215:14;29232:154;29252:12;:17;29265:3;29252:17;;;;;;;;;;;:28;;:31;29281:1;29252:31;;;;;;;;;;;:42;;;29297:4;:18;;;29318:14;29335:12;:17;29348:3;29335:17;;;;;;;;;;;:28;;:31;29364:1;29335:31;;;;;;;;;;;:50;;;29232:19;:154::i;:::-;29215:171;;29437:6;29417:26;;;;28575:907;;;;28632:3;;;;;;;28575:907;;;;29511:16;29504:23;;;;28381:1164;;;:::o;10710:114::-;10772:7;7394:5;;;;;;;;;;;7380:19;;:10;:19;;;7372:28;;;;;;10799:17;;;;;;;;;;;10792:24;;10710:114;:::o;11520:316::-;11564:7;11609:22;11634:48;8295:6;11635:31;11655:10;;11635:15;:19;;:31;;;;:::i;:::-;11634:37;;:48;;;;:::i;:::-;11609:73;;11704:17;11724:67;11741:49;11785:4;11741:39;11778:1;11741:32;11758:14;11741:12;;:16;;:32;;;;:::i;:::-;:36;;:39;;;;:::i;:::-;:43;;:49;;;;:::i;:::-;11724:12;;:16;;:67;;;;:::i;:::-;11704:87;;11819:9;11812:16;;;;11520:316;:::o;31399:386::-;31475:7;31495:11;31509;:25;31521:12;31509:25;;;;;;;;;;;;;;;;31495:39;;31555:14;31572:1;31555:18;;31598:9;31610:1;31598:13;;31594:150;31617:12;:17;31630:3;31617:17;;;;;;;;;;;:31;;;31613:1;:35;31594:150;;;31678:54;31689:12;:17;31702:3;31689:17;;;;;;;;;;;:28;;:31;31718:1;31689:31;;;;;;;;;;;:42;;;31678:6;:10;;:54;;;;:::i;:::-;31669:63;;31650:3;;;;;;;31594:150;;;;31771:6;31764:13;;;;31399:386;;;:::o;6938:20::-;;;;;;;;;;;;;:::o;22487:412::-;22575:11;22547:4;;;;;;;;;;;:14;;;22562:10;22547:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22547:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22547:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22547:26:0;;;;;;;;;;;;;;;;:39;;22539:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22637:13;22653:14;:12;:14::i;:::-;22637:30;;22678:14;22695:32;22722:4;22695:22;22711:5;22695:11;:15;;:22;;;;:::i;:::-;:26;;:32;;;;:::i;:::-;22678:49;;22740:4;;;;;;;;;;;:17;;;22758:10;22778:4;22785:11;22740:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22740:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22740:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22740:57:0;;;;;;;;;;;;;;;;;22810:10;:19;;:27;22830:6;22810:27;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22810:27:0;22863:26;22870:10;22882:6;22863:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;22487:412;;;:::o;22911:568::-;22950:11;22964;:23;22976:10;22964:23;;;;;;;;;;;;;;;;22950:37;;23014:1;23007:3;:8;;22999:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23099:1;23061:12;:17;23074:3;23061:17;;;;;;;;;;;:35;;;:39;;23053:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23144:14;23161:12;:17;23174:3;23161:17;;;;;;;;;;;:35;;;23144:52;;23219:4;;;;;;;;;;;:9;;;23229:10;23240:6;23219:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23219:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23219:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23219:28:0;;;;;;;;;;;;;;;;;23308:1;23270:12;:17;23283:3;23270:17;;;;;;;;;;;:35;;:39;;;;23362:50;23405:6;23362:12;:17;23375:3;23362:17;;;;;;;;;;;:38;;;:42;;:50;;;;:::i;:::-;23321:12;:17;23334:3;23321:17;;;;;;;;;;;:38;;:91;;;;23440:31;23453:10;23464:6;23440:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;22911:568;;:::o;8429:46::-;8471:4;8429:46;:::o;30803:200::-;30876:7;30896:11;30910;:25;30922:12;30910:25;;;;;;;;;;;;;;;;30896:39;;30963:12;:17;30976:3;30963:17;;;;;;;;;;;:32;;;30956:39;;;30803:200;;;:::o;16452:146::-;16504:27;16511:10;16522:1;16524:6;16504;:27::i;:::-;16501:90;;;16552:27;16560:10;16572:6;16552:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;16501:90;16452:146;:::o;9205:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8020:39::-;8057:2;8020:39;:::o;16606:1903::-;16647:11;16661;:23;16673:10;16661:23;;;;;;;;;;;;;;;;16647:37;;16710:1;16703:3;:8;;16695:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16813:1;16778:12;:17;16791:3;16778:17;;;;;;;;;;;:31;;;:36;;16770:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16881:24;16908:1;16881:28;;16928:9;16940:1;16928:13;;16923:1193;16947:12;:17;16960:3;16947:17;;;;;;;;;;;:31;;;16943:1;:35;16923:1193;;;17005:12;:17;17018:3;17005:17;;;;;;;;;;;:23;;:26;17029:1;17005:26;;;;;;;;;;;:36;;;;;;;;;;;;17001:85;;;17062:8;;17001:85;17103:25;17131:16;17148:12;:17;17161:3;17148:17;;;;;;;;;;;:28;;:31;17177:1;17148:31;;;;;;;;;;;:38;;;17131:56;;;;;;;;;;;;;;;;;;17103:84;;17216:14;17233:5;17216:22;;17254;17279:15;17254:40;;17326:1;17314:4;:9;;;:13;17310:314;;;17349:15;17367:61;17418:4;:9;;;17367:12;:17;17380:3;17367:17;;;;;;;;;;;:28;;:31;17396:1;17367:31;;;;;;;;;;;:46;;;:50;;:61;;;;:::i;:::-;17349:79;;17469:7;17451:14;:25;17447:161;;17519:7;17502:24;;17562:4;17550:16;;17447:161;17310:314;;17640:14;17657:154;17677:12;:17;17690:3;17677:17;;;;;;;;;;;:28;;:31;17706:1;17677:31;;;;;;;;;;;:42;;;17722:4;:18;;;17743:14;17760:12;:17;17773:3;17760:17;;;;;;;;;;;:28;;:31;17789:1;17760:31;;;;;;;;;;;:50;;;17657:19;:154::i;:::-;17640:171;;17862:6;17842:26;;;;17948:14;17895:12;:17;17908:3;17895:17;;;;;;;;;;;:28;;:31;17924:1;17895:31;;;;;;;;;;;:50;;:67;;;;18021:9;17977:12;:17;17990:3;17977:17;;;;;;;;;;;:28;;:31;18006:1;17977:31;;;;;;;;;;;:41;;;:53;;;;;;;;;;;;;;;;;;18097:6;18045:12;:17;18058:3;18045:17;;;;;;;;;;;:28;;:31;18074:1;18045:31;;;;;;;;;;;:48;;;:58;;;;;;;;;;;16923:1193;;;;;16980:3;;;;;;;16923:1193;;;;18136:14;18153:31;18181:2;18153:23;18174:1;18153:16;:20;;:23;;;;:::i;:::-;:27;;:31;;;;:::i;:::-;18136:48;;18212:4;;;;;;;;;;;:9;;;18222:10;18233:6;18212:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18212:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18212:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18212:28:0;;;;;;;;;;;;;;;;;18261:64;18290:6;18298:12;:17;18311:3;18298:17;;;;;;;;;;;:26;;;18261:28;:64::i;:::-;18336:53;18348:10;18360:28;18381:6;18360:16;:20;;:28;;;;:::i;:::-;18336:11;:53::i;:::-;18461:40;18472:10;18484:16;18461:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;16606:1903;;;:::o;8642:38::-;;;;:::o;9425:74::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8492:31::-;;;;:::o;31011:376::-;31086:7;31106:11;31120;:25;31132:12;31120:25;;;;;;;;;;;;;;;;31106:39;;31166:14;31183:1;31166:18;;31209:9;31221:1;31209:13;;31205:141;31228:12;:17;31241:3;31228:17;;;;;;;;;;;:27;;;31224:1;:31;31205:141;;;31285:49;31296:12;:17;31309:3;31296:17;;;;;;;;;;;:23;;:26;31320:1;31296:26;;;;;;;;;;;:37;;;31285:6;:10;;:49;;;;:::i;:::-;31276:58;;31257:3;;;;;;;31205:141;;;;31373:6;31366:13;;;;31011:376;;;:::o;32179:114::-;32226:7;32253:32;32276:8;32253:18;;:22;;:32;;;;:::i;:::-;32246:39;;32179:114;:::o;8386:30::-;;;;:::o;7905:43::-;7946:2;7905:43;:::o;8604:31::-;;;;:::o;7598:198::-;7394:5;;;;;;;;;;;7380:19;;:10;:19;;;7372:28;;;;;;7701:1;7680:23;;:9;:23;;;;7672:32;;;;;;7750:9;7720:40;;7743:5;;;;;;;;;;;7720:40;;;;;;;;;;;;7779:9;7771:5;;:17;;;;;;;;;;;;;;;;;;7598:198;:::o;31797:205::-;31872:7;31892:11;31906;:25;31918:12;31906:25;;;;;;;;;;;;;;;;31892:39;;31959:12;:17;31972:3;31959:17;;;;;;;;;;;:35;;;31952:42;;;31797:205;;;:::o;11846:104::-;11899:7;11925:17;;11918:24;;11846:104;:::o;12065:114::-;12126:7;12153:11;:18;12165:5;12153:18;;;;;;;;;;;;;;;;12146:25;;12065:114;;;:::o;13512:1615::-;13626:4;8838;13661:7;:23;;13653:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13722:11;13736;:18;13748:5;13736:18;;;;;;;;;;;;;;;;13722:32;;13778:1;13771:3;:8;13767:182;;;13802:34;13815:5;13822:13;13802:12;:34::i;:::-;13796:40;;13767:182;;;;13973:17;13993:12;:17;14006:3;13993:17;;;;;;;;;;;:27;;;13973:47;;14031:33;14067:12;:17;14080:3;14067:17;;;;;;;;;;;14031:53;;14130:7;14095:8;:14;;:25;14110:9;14095:25;;;;;;;;;;;:32;;:42;;;;14191:15;14148:8;:14;;:25;14163:9;14148:25;;;;;;;;;;;:40;;:58;;;;14264:15;14217:8;:14;;:25;14232:9;14217:25;;;;;;;;;;;:44;;:62;;;;14329:7;14290:8;:14;;:25;14305:9;14290:25;;;;;;;;;;;:36;;:46;;;;14392:1;14347:8;:14;;:25;14362:9;14347:25;;;;;;;;;;;:42;;:46;;;;14442:5;14404:8;:14;;:25;14419:9;14404:25;;;;;;;;;;;:35;;;:43;;;;;;;;;;;;;;;;;;14481:25;14504:1;14481:8;:18;;;:22;;:25;;;;:::i;:::-;14460:8;:18;;:46;;;;14539:30;14561:7;14539:17;;:21;;:30;;;;:::i;:::-;14519:17;:50;;;;14582:27;14612:39;14646:4;14613:27;7946:2;14613:7;:11;;:27;;;;:::i;:::-;14612:33;;:39;;;;:::i;:::-;14582:69;;14662:17;;;;;;;;;;;:26;;:47;14689:19;14662:47;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14662:47:0;14720:27;14750:39;14784:4;14751:27;8011:2;14751:7;:11;;:27;;;;:::i;:::-;14750:33;;:39;;;;:::i;:::-;14720:69;;14800:17;;;;;;;;;;;:26;;:47;14827:19;14800:47;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14800:47:0;14858:23;14884:35;14914:4;14885:23;8057:2;14885:7;:11;;:23;;;;:::i;:::-;14884:29;;:35;;;;:::i;:::-;14858:61;;14930:13;;;;;;;;;;;:22;;:39;14953:15;14930:39;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14930:39:0;14980:22;15005:34;15034:4;15006:22;8102:2;15006:7;:11;;:22;;;;:::i;:::-;15005:28;;:34;;;;:::i;:::-;14980:59;;15050:12;;;;;;;;;;;:21;;:37;15072:14;15050:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15050:37:0;15115:4;15108:11;;;;;;;;;13512:1615;;;;;;:::o;5655:147::-;5713:7;5733:9;5749:1;5745;:5;5733:17;;5773:1;5768;:6;;5761:14;;;;5793:1;5786:8;;;5655:147;;;;:::o;27505:228::-;27630:7;27716:8;27704:6;27697:4;:13;27689:4;27668:18;27658:7;:28;:35;;;;;;:53;27657:68;;;;;;27650:75;;27505:228;;;;;;:::o;5011:209::-;5069:7;5099:1;5094;:6;5090:47;;;5124:1;5117:8;;;;5090:47;5147:9;5163:1;5159;:5;5147:17;;5191:1;5186;5182;:5;;;;;;:10;5175:18;;;;5211:1;5204:8;;;5011:209;;;;;:::o;5228:288::-;5286:7;5385:9;5401:1;5397;:5;;;;;;5385:17;;5507:1;5500:8;;;5228:288;;;;:::o;26640:841::-;26763:1;26746:13;:18;26742:730;;26779:22;26804:12;:27;26817:13;26804:27;;;;;;;;;;;:32;;;;;;;;;;;;26779:57;;26885:9;26897:1;26885:13;;26881:580;26902:2;26900:1;:4;26881:580;;;26947:1;26929:20;;:6;:20;;;26926:521;;26971:14;26988:48;27030:5;26988:37;27004:17;27022:1;27004:20;;;;;;;;;;;;;;;;26988:11;:15;;:37;;;;:::i;:::-;:41;;:48;;;;:::i;:::-;26971:65;;27077:11;27091;:19;27103:6;27091:19;;;;;;;;;;;;;;;;27077:33;;27182:47;27222:6;27182:12;:17;27195:3;27182:17;;;;;;;;;;;:35;;;:39;;:47;;;;:::i;:::-;27144:12;:17;27157:3;27144:17;;;;;;;;;;;:35;;:85;;;;27270:18;27291:12;:17;27304:3;27291:17;;;;;;;;;;;:26;;;27270:47;;27369:12;:24;27382:10;27369:24;;;;;;;;;;;:29;;;;;;;;;;;;27360:38;;26926:521;;;;;;27442:5;;26926:521;26905:3;;;;;;;26881:580;;;;26742:730;;26640:841;;:::o;5524:123::-;5582:7;5614:1;5609;:6;;5602:14;;;;5638:1;5634;:5;5627:12;;5524:123;;;;:::o;23971:844::-;24147:1;24127:16;:21;;24119:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24196:15;24214:47;24256:4;24214:37;8471:4;24214:16;:20;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;24196:65;;24328:1;24285:12;:26;24298:12;;24285:26;;;;;;;;;;;:39;24312:11;24285:39;;;;;;;;;;;;;;;;:44;24282:186;;;24396:11;24346:19;:33;24366:12;;24346:33;;;;;;;;;;;:47;24380:12;;24346:47;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;24437:19;24454:1;24437:12;;:16;;:19;;;;:::i;:::-;24422:12;:34;;;;24282:186;24530:52;24574:7;24530:12;:26;24543:12;;24530:26;;;;;;;;;;;:39;24557:11;24530:39;;;;;;;;;;;;;;;;:43;;:52;;;;:::i;:::-;24488:12;:26;24501:12;;24488:26;;;;;;;;;;;:39;24515:11;24488:39;;;;;;;;;;;;;;;:94;;;;24606:32;24621:16;24606:10;;:14;;:32;;;;:::i;:::-;24593:10;:45;;;;24664:25;24681:7;24664:12;;:16;;:25;;;;:::i;:::-;24649:12;:40;;;;24753:12;;24731:18;;24713:15;:36;:52;24710:98;;24781:15;:13;:15::i;:::-;24710:98;23971:844;;;:::o;15135:1110::-;15224:4;15271:7;15248:4;;;;;;;;;;;:14;;;15263:5;15248:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15248:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15248:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15248:21:0;;;;;;;;;;;;;;;;:30;;15240:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15329:11;15343;:18;15355:5;15343:18;;;;;;;;;;;;;;;;15329:32;;15385:1;15378:3;:8;15374:91;;;15403:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15374:91;15485:4;;;;;;;;;;;:17;;;15503:5;15518:4;15525:7;15485:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15485:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15485:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15485:48:0;;;;;;;;;;;;;;;;;15555:21;15579:12;:17;15592:3;15579:17;;;;;;;;;;;:31;;;15555:55;;15621:33;15657:12;:17;15670:3;15657:17;;;;;;;;;;;15621:53;;15731:7;15687:8;:19;;:34;15707:13;15687:34;;;;;;;;;;;:41;;:51;;;;15801:15;15749:8;:19;;:34;15769:13;15749:34;;;;;;;;;;;:49;;:67;;;;15883:15;15827:8;:19;;:34;15847:13;15827:34;;;;;;;;;;;:53;;:71;;;;15957:7;15909:8;:19;;:34;15929:13;15909:34;;;;;;;;;;;:45;;:55;;;;16029:1;15975:8;:19;;:34;15995:13;15975:34;;;;;;;;;;;:51;;:55;;;;16088:5;16041:8;:19;;:34;16061:13;16041:34;;;;;;;;;;;:44;;;:52;;;;;;;;;;;;;;;;;;16131:29;16158:1;16131:8;:22;;;:26;;:29;;;;:::i;:::-;16106:8;:22;;:54;;;;16187:24;16203:7;16187:11;;:15;;:24;;;;:::i;:::-;16173:11;:38;;;;16233:4;16226:11;;;;;15135:1110;;;;;:::o;12189:1315::-;12274:7;8774:4;12298:13;:30;12294:311;;12488:1;12444:46;;:12;:27;12457:13;12444:27;;;;;;;;;;;:32;;;;;;;;;;;;:46;;;12440:104;;;12527:1;12511:17;;12440:104;12294:311;;;12592:1;12576:17;;12294:311;12615:20;12638:5;12615:28;;12675:25;12698:1;12675:18;;:22;;:25;;;;:::i;:::-;12654:18;:46;;;;12731:18;;12711:11;:17;12723:4;12711:17;;;;;;;;;;;;;;;:38;;;;12800:4;12760:12;:32;12773:18;;12760:32;;;;;;;;;;;:37;;;:44;;;;;;;;;;;;;;;;;;12859:13;12815:12;:32;12828:18;;12815:32;;;;;;;;;;;:41;;:57;;;;12928:1;12883:12;:32;12896:18;;12883:32;;;;;;;;;;;:42;;:46;;;;12989:1;12940:12;:32;12953:18;;12940:32;;;;;;;;;;;:46;;:50;;;;8774:4;13005:13;:30;13001:458;;13066:14;13083:13;13066:30;;13129:9;13141:1;13129:13;;13125:321;13148:2;13144:1;:6;13125:321;;;8774:4;13178:6;:22;13175:255;;13279:37;13314:1;13279:12;:20;13292:6;13279:20;;;;;;;;;;;:30;;;:34;;:37;;;;:::i;:::-;13246:12;:20;13259:6;13246:20;;;;;;;;;;;:30;;:70;;;;13348:12;:20;13361:6;13348:20;;;;;;;;;;;:29;;;13339:38;;13175:255;;;13425:5;;13175:255;13152:3;;;;;;;13125:321;;;;13001:458;;13477:18;;13469:27;;;12189:1315;;;;:::o;24827:1543::-;24880:27;24924:12;;24910:27;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;24910:27:0;;;;24880:57;;24947:26;24990:12;;24976:27;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;24976:27:0;;;;24947:56;;25022:18;25043:1;25022:22;;25067:9;25079:1;25067:13;;25063:348;25086:12;;25082:1;:16;25063:348;;;25118:14;25135:17;25150:1;25135:10;:14;;:17;;;;:::i;:::-;25118:34;;25166:14;25183:86;25194:74;25263:4;25194:12;:26;25207:12;;25194:26;;;;;;;;;;;:64;25221:19;:33;25241:12;;25221:33;;;;;;;;;;;:36;25255:1;25221:36;;;;;;;;;;;;;;;;;;;;;25194:64;;;;;;;;;;;;;;;;:68;;:74;;;;:::i;:::-;25183:6;:10;;:86;;;;:::i;:::-;25166:103;;25313:6;25297:10;25308:1;25297:13;;;;;;;;;;;;;:22;;;;;25348:6;25333:9;25343:1;25333:12;;;;;;;;;;;;;:21;;;;;25394:6;25381:19;;25063:348;;25100:3;;;;;;;25063:348;;;;25430:14;25447:35;25480:1;25447:28;25464:10;25447:12;:10;:12::i;:::-;:16;;:28;;;;:::i;:::-;:32;;:35;;;;:::i;:::-;25430:52;;25506:9;25518:1;25506:13;;25502:861;25525:12;;25521:1;:16;25502:861;;;25571:10;25582:1;25571:13;;;;;;;;;;;;;;25561:6;:23;;25560:53;;;;;25600:9;25610:1;25600:12;;;;;;;;;;;;;;25590:6;:22;;25560:53;25557:796;;;25681:21;25705:19;:33;25725:12;;25705:33;;;;;;;;;;;:36;25739:1;25705:36;;;;;;;;;;;;;;;;;;;;;25681:60;;25759:11;25773;:26;25785:13;25773:26;;;;;;;;;;;;;;;;25759:40;;25869:63;25906:25;25928:2;25906:17;25921:1;25906:10;;:14;;:17;;;;:::i;:::-;:21;;:25;;;;:::i;:::-;25869:12;:17;25882:3;25869:17;;;;;;;;;;;:32;;;:36;;:63;;;;:::i;:::-;25834:12;:17;25847:3;25834:17;;;;;;;;;;;:32;;:98;;;;26034:1;26021:10;:14;;;;26068:19;26085:1;26068:12;;:16;;:19;;;;:::i;:::-;26053:12;:34;;;;26120:1;26105:12;:16;;;;26154:1;26139:12;:16;;;;26194:15;26173:18;:36;;;;26249:64;26265:13;26280:12;:17;26293:3;26280:17;;;;;;;;;;;:32;;;26249:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;26333:5;;;;25557:796;25539:3;;;;;;;25502:861;;;;24827:1543;;;;:::o;26382:250::-;26425:7;26454:18;26498:1;26485:12;:14;26475:25;26454:46;;26567:10;26578:15;26594:16;26611:10;;26556:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;26556:66:0;;;26546:77;;;;;;26538:86;;26531:93;;;26382:250;:::o;5811:124::-;5869:7;5902:1;5897;:6;;5889:15;;;;;;5926:1;5922;:5;;;;;;5915:12;;5811:124;;;;:::o

Swarm Source

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