ETH Price: $2,334.58 (-3.22%)

Contract

0x9bDF81e6066D32764b7E75a1b5577237e06d9364
 

Overview

ETH Balance

6.293408271968627557 ETH

Eth Value

$14,692.47 (@ $2,334.58/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw201770562024-06-26 16:28:1171 days ago1719419291IN
0x9bDF81e6...7e06d9364
0 ETH0.0023389412.6169634
Withdraw201768882024-06-26 15:54:1171 days ago1719417251IN
0x9bDF81e6...7e06d9364
0 ETH0.0011278913.37494065
Withdraw201768852024-06-26 15:53:3571 days ago1719417215IN
0x9bDF81e6...7e06d9364
0 ETH0.0013642511.45509957
Withdraw200998672024-06-15 21:26:5982 days ago1718486819IN
0x9bDF81e6...7e06d9364
0 ETH0.000377064.47873791
Withdraw200998192024-06-15 21:17:2382 days ago1718486243IN
0x9bDF81e6...7e06d9364
0 ETH0.000287173.412323
Withdraw200997782024-06-15 21:08:4782 days ago1718485727IN
0x9bDF81e6...7e06d9364
0 ETH0.000329823.92028361
Withdraw200997622024-06-15 21:05:3582 days ago1718485535IN
0x9bDF81e6...7e06d9364
0 ETH0.000262643.11881557
Withdraw200997592024-06-15 21:04:4782 days ago1718485487IN
0x9bDF81e6...7e06d9364
0 ETH0.000263623.13260332
Withdraw200997452024-06-15 21:01:5982 days ago1718485319IN
0x9bDF81e6...7e06d9364
0 ETH0.0008413310
Withdraw200997332024-06-15 20:59:3582 days ago1718485175IN
0x9bDF81e6...7e06d9364
0 ETH0.000330823.93213029
Withdraw200997262024-06-15 20:57:5982 days ago1718485079IN
0x9bDF81e6...7e06d9364
0 ETH0.000266983.17249887
Withdraw200997142024-06-15 20:55:2382 days ago1718484923IN
0x9bDF81e6...7e06d9364
0 ETH0.000762223.46283032
Withdraw199545692024-05-26 14:13:11102 days ago1716732791IN
0x9bDF81e6...7e06d9364
0 ETH0.0023016711.05583696
Withdraw197805152024-05-02 6:00:47127 days ago1714629647IN
0x9bDF81e6...7e06d9364
0 ETH0.000639035.6009737
Deposit197804862024-05-02 5:54:59127 days ago1714629299IN
0x9bDF81e6...7e06d9364
0.16 ETH0.000610175.1691668
Withdraw197789652024-05-02 0:48:23127 days ago1714610903IN
0x9bDF81e6...7e06d9364
0 ETH0.000554926.19720146
Withdraw197788102024-05-02 0:17:11127 days ago1714609031IN
0x9bDF81e6...7e06d9364
0 ETH0.000695726.25241917
Withdraw197787592024-05-02 0:06:47127 days ago1714608407IN
0x9bDF81e6...7e06d9364
0 ETH0.001669047.58368786
Deposit197787412024-05-02 0:03:11127 days ago1714608191IN
0x9bDF81e6...7e06d9364
0.02 ETH0.000756726.41665337
Withdraw197786692024-05-01 23:48:47127 days ago1714607327IN
0x9bDF81e6...7e06d9364
0 ETH0.000738476.47250377
Deposit197786182024-05-01 23:38:35127 days ago1714606715IN
0x9bDF81e6...7e06d9364
0.11 ETH0.000673026.67480834
Deposit197567062024-04-28 22:10:35130 days ago1714342235IN
0x9bDF81e6...7e06d9364
0.0107575 ETH0.000565525.60864763
Deposit197566812024-04-28 22:05:35130 days ago1714341935IN
0x9bDF81e6...7e06d9364
0.0107575 ETH0.000732656.2125527
Withdraw197479272024-04-27 16:42:11131 days ago1714236131IN
0x9bDF81e6...7e06d9364
0 ETH0.000985765
Withdraw197469142024-04-27 13:18:23131 days ago1714223903IN
0x9bDF81e6...7e06d9364
0 ETH0.001618047
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
201770562024-06-26 16:28:1171 days ago1719419291
0x9bDF81e6...7e06d9364
0.06122883 ETH
200997142024-06-15 20:55:2382 days ago1718484923
0x9bDF81e6...7e06d9364
0.00373353 ETH
199545692024-05-26 14:13:11102 days ago1716732791
0x9bDF81e6...7e06d9364
0.11 ETH
197805152024-05-02 6:00:47127 days ago1714629647
0x9bDF81e6...7e06d9364
0.16 ETH
197788102024-05-02 0:17:11127 days ago1714609031
0x9bDF81e6...7e06d9364
0.00279437 ETH
197787592024-05-02 0:06:47127 days ago1714608407
0x9bDF81e6...7e06d9364
0.12539698 ETH
197786692024-05-01 23:48:47127 days ago1714607327
0x9bDF81e6...7e06d9364
0.131515 ETH
197479272024-04-27 16:42:11131 days ago1714236131
0x9bDF81e6...7e06d9364
0.11 ETH
197469142024-04-27 13:18:23131 days ago1714223903
0x9bDF81e6...7e06d9364
0.28554999 ETH
197466812024-04-27 12:31:35131 days ago1714221095
0x9bDF81e6...7e06d9364
0.13969999 ETH
197453612024-04-27 8:03:59131 days ago1714205039
0x9bDF81e6...7e06d9364
0.18755429 ETH
197436682024-04-27 2:22:47132 days ago1714184567
0x9bDF81e6...7e06d9364
0.2015 ETH
160296372022-11-23 2:12:35653 days ago1669169555
0x9bDF81e6...7e06d9364
0.009 ETH
156506762022-10-01 3:38:23706 days ago1664595503
0x9bDF81e6...7e06d9364
0.01215084 ETH
156505152022-10-01 3:06:11706 days ago1664593571
0x9bDF81e6...7e06d9364
0.18651356 ETH
143370602022-03-07 2:27:00914 days ago1646620020
0x9bDF81e6...7e06d9364
0.045 ETH
140662252022-01-24 4:44:54956 days ago1642999494
0x9bDF81e6...7e06d9364
0.05 ETH
140335232022-01-19 3:19:28961 days ago1642562368
0x9bDF81e6...7e06d9364
0.30225 ETH
140287902022-01-18 9:47:38961 days ago1642499258
0x9bDF81e6...7e06d9364
0.23992311 ETH
140287492022-01-18 9:38:55961 days ago1642498735
0x9bDF81e6...7e06d9364
0.5 ETH
140287462022-01-18 9:38:39961 days ago1642498719
0x9bDF81e6...7e06d9364
0.5 ETH
140287312022-01-18 9:35:06961 days ago1642498506
0x9bDF81e6...7e06d9364
0.36351188 ETH
140286592022-01-18 9:22:36961 days ago1642497756
0x9bDF81e6...7e06d9364
3 ETH
140286352022-01-18 9:17:12961 days ago1642497432
0x9bDF81e6...7e06d9364
6 ETH
140286152022-01-18 9:13:57961 days ago1642497237
0x9bDF81e6...7e06d9364
0.5257828 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MUSystem

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
Yes with 200 runs

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

/* MUSystem is a global Savings system 
based of the mathematical algorithm created 
by the Mavrodi brothers - Sergey and Vyacheslav. 
The solidity code was written by the enthusiast and devoted MMM participant.
According to these rules MMM worked in Russia in the nineties.

Today you help someone — Tomorrow you will be helped!

Mutual Uniting System (MUSystem):
email: [email protected]
https://mutualunitingsystem.online/

"MMM IS A FINANCIAL NUCLEAR WEAPON.
They say Baba Vanga predicted, “Pyramid from Russia will travel the world.”
When Sergey Mavrodi passed away, many people thought this prediction 
wasn't going to come true. What if it's just started to materialize?"

Financial apocalypse is inevitable! Together we can do a lot!
Thank you Sergey Mavrodi. You've opened my eyes. 333555*/

pragma solidity =0.6.4;

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

contract MUSystem{
    
    using SafeMath for uint;
    
    string public constant name="Mutual Uniting System";
    string public constant symbol="MUS";
    uint public constant decimals=14;
    uint public totalSupply;
    address payable private creatorOwner;
    mapping (address => uint) balances;
    
    struct User{
        uint UserTotalAmtWithdrawalCurrentPack;
        uint UserWithdrawalFromFirstRefunded;
        uint UserTotalAmtDepositCurrentPack;
        uint UserAmtDepositCurrentPackTRUE;
        uint UserWithdrawalFromDisparity;
        uint UserTotalAmtWithdrawal;
        uint UserSellTokenPackNum;
        bool UserBuyTokenPrevPack;
        uint UserTotalAmtDeposit;
        uint UserBuyTokenPackNum;
        uint UserBuyFirstPack;
        uint UserBuyFirstDate;
        uint UserContinued;
        uint UserFirstAmt;
        uint UserSellDate;
        uint UserBuyDate;
        uint UserCycle;
    }
    mapping (address => User) users;
    
    struct DepositTemp{
        address payable useraddress;
        uint p;
        uint bonus;
        uint userAmt;
        uint amtToSend;
        uint bonusAmount;
        uint userBuyDate;
        uint userSellDate;
        uint userFirstAmt;
        uint userContinued;
        uint userAmtToStore;
        uint availableTokens;
        uint userTokenObtain;
        uint userBuyFirstPack;
        uint userBuyFirstDate;
        uint currentPackNumber;
        uint amtForfirstRefund;
        uint userBuyTokenPackNum;
        uint userTotalAmtDeposit;
        uint bonusAmountRefunded;
        bool userBuyTokenPrevPack;
        uint currentPackStartDate;
        uint userAmtOverloadToSend;
        uint currentPackTokenPriceSellout;
        uint userAmtDepositCurrentPackTRUE;
        uint userTotalAmtDepositCurrentPack;
    }
    
    struct WithdrawTemp{
        address payable useraddress;
        uint userTotalAmtWithdrawalCurrentPack;
        uint userTokensReturnAboveCurrentPack;
        uint userWithdrawalFromFirstRefunded;
        uint userTotalAmtDepositCurrentPack;
        uint userAmtDepositCurrentPackTRUE;
        uint userTokensReturnToCurrentPack;
        uint currentPackTokenPriceSellout;
        uint currentPackTokenPriceBuyout;
        uint withdrawAmtAboveCurrentPack;
        uint userWithdrawalFromDisparity;
        uint bonusTokensReturnDecrease;
        bool returnTokenInCurrentPack;
        uint withdrawAmtToCurrentPack;
        uint remainsFromFirstRefunded;
        uint overallDisparityAmounts;
        uint userTotalAmtWithdrawal;
        uint useFromFirstRefunded;
        uint remainsFromDisparity;
        uint TokensReturnDecrease;
        uint currentPackStartDate;
        uint userAvailableAmount;
        uint currentPackDeposits;
        uint currentPackNumber;
        uint userBuyFirstPack;
        uint userTokensReturn;
        uint useFromDisparity;
        uint overallRefunded;
        uint userSellDate;
        uint userFirstAmt;
        uint userBuyDate;
        uint bonusToSend;
        uint withdrawAmt;
        uint wAtoStore;
        uint thisBal;
        uint bonus;
        uint diff;
        uint dsp;
        bool ra;
    }

    uint private Cycle;
    uint private PrevPackCost;
    bool private feeTransfered;
    uint private NextPackDelta;
    uint private NextPackYield;
    uint private CurrentPackFee;
    uint private RestartModeDate;
    uint private CurrentPackCost;
    uint private OverallDeposits;
    uint private OverallRefunded;
    uint private PrevPackTotalAmt;
    uint private CurrentPackYield;
    uint private CurrentPackDelta;
    bool private RestartMode=false;
    uint private CurrentPackNumber;
    uint private OverallWithdrawals;
    uint private CurrentPackRestAmt;
    uint private CurrentPackTotalAmt;
    uint private CurrentPackDeposits;
    uint private CurrentPackStartDate; 
    uint private CurrentPackTotalToPay;
    uint private OverallDisparityAmounts;
    uint private PrevPackTokenPriceBuyout; 
    uint private NextPackTokenPriceBuyout;
    uint private PrevPackTokenPriceSellout;
    uint private CurrentPackTokenPriceBuyout;
    uint private CurrentPackDisparityAmounts;
    uint private CurrentPackTokenPriceSellout;
    uint private CurrentPackTotalToPayDisparity;

    constructor()public payable{
        creatorOwner=msg.sender;
        CurrentPackNumber=1;
        Cycle=0;
        mint(5000000000000000);
        packSettings(CurrentPackNumber);
    }

    function packSettings(uint _currentPackNumber)internal{
        CurrentPackNumber=_currentPackNumber;
        if(_currentPackNumber==1){
            CurrentPackTokenPriceSellout=10;
            CurrentPackTokenPriceBuyout=10;
            CurrentPackCost=50000000000000000;
            CurrentPackFee=0;
        }
        if(_currentPackNumber==2){
            PrevPackTotalAmt=CurrentPackCost;
            CurrentPackDelta=0;
            NextPackTokenPriceBuyout=CurrentPackTokenPriceSellout*110/100;
            NextPackYield=NextPackTokenPriceBuyout/CurrentPackTokenPriceSellout;
            NextPackDelta=NextPackYield;
            CurrentPackTokenPriceSellout=NextPackTokenPriceBuyout+NextPackDelta;
            CurrentPackTokenPriceBuyout=CurrentPackTokenPriceSellout;
            CurrentPackCost=5000000000000000*CurrentPackTokenPriceSellout;
            CurrentPackTotalAmt=CurrentPackCost+PrevPackTotalAmt;
            CurrentPackFee=0;
        }
        if(_currentPackNumber>2){
            PrevPackTokenPriceSellout=CurrentPackTokenPriceSellout;
            PrevPackTokenPriceBuyout=CurrentPackTokenPriceBuyout;
            PrevPackCost=CurrentPackCost;
            PrevPackTotalAmt=CurrentPackTotalAmt;
            CurrentPackDelta=NextPackDelta;
            CurrentPackTokenPriceBuyout=NextPackTokenPriceBuyout;
            NextPackTokenPriceBuyout=PrevPackTokenPriceSellout*110;
            if(NextPackTokenPriceBuyout<=100){  
                NextPackTokenPriceBuyout=PrevPackTokenPriceSellout*11/10;
            }
            if(NextPackTokenPriceBuyout>100){ 
                NextPackTokenPriceBuyout=NextPackTokenPriceBuyout*10**3;
                NextPackTokenPriceBuyout=((NextPackTokenPriceBuyout/10000)+5)/10;
            }
            NextPackYield=NextPackTokenPriceBuyout-PrevPackTokenPriceSellout;
            NextPackDelta=NextPackYield*101;
            if(NextPackDelta<=100){ 
                NextPackDelta=CurrentPackDelta+(NextPackYield*101/100);
            }
            if(NextPackDelta>100){
                NextPackDelta=NextPackDelta*10**3;
                NextPackDelta=((NextPackDelta/10000)+5)/10;
                NextPackDelta=CurrentPackDelta+NextPackDelta;
            }
            CurrentPackTokenPriceSellout=NextPackTokenPriceBuyout+NextPackDelta;
            CurrentPackCost=5000000000000000*CurrentPackTokenPriceSellout;
            CurrentPackTotalToPay=5000000000000000*CurrentPackTokenPriceBuyout;
            CurrentPackTotalAmt=CurrentPackCost+PrevPackTotalAmt-CurrentPackTotalToPay;
            CurrentPackFee=PrevPackTotalAmt-CurrentPackTotalToPay-(PrevPackCost*7/10);
        }
        CurrentPackDisparityAmounts=0;
        CurrentPackDeposits=0;
        CurrentPackStartDate=now;
        emit NextPack(CurrentPackTokenPriceSellout,CurrentPackTokenPriceBuyout);
    }

    function aboutCurrentPack()public view returns(uint num,uint bal,uint overallRefunded,uint dsp,uint availableTokens,uint availableTokensInPercentage,uint availableAmountToDepositInWei,uint tokenPriceSellout,uint tokenPriceBuyout,uint cycle,uint overallDeposits,uint overallWithdrawals,bool){
        if(CurrentPackDeposits+OverallDisparityAmounts>CurrentPackDisparityAmounts+OverallRefunded){
            dsp = CurrentPackDeposits+OverallDisparityAmounts-CurrentPackDisparityAmounts-OverallRefunded;
        }else{
            dsp=0;
        }
        return(CurrentPackNumber,address(this).balance,OverallRefunded,dsp,balances[address(this)],0,balances[address(this)].mul(CurrentPackTokenPriceSellout),CurrentPackTokenPriceSellout,CurrentPackTokenPriceBuyout,Cycle,OverallDeposits,OverallWithdrawals,RestartMode);
    }

    function aboutUser()public view returns(uint UserFirstAmt,uint remainsFromFirstRefunded,uint UserContinued,uint userTotalAmtDeposit,uint userTotalAmtWithdrawal,uint userAvailableAmount,uint userAvailableAmount1,uint remainsFromDisparity,uint depCP,uint witCP,uint userCycle,uint wAmtToCurrentPack,uint userBuyFirstDate){
        if(users[msg.sender].UserBuyDate>CurrentPackStartDate&&users[msg.sender].UserBuyTokenPackNum==CurrentPackNumber){
            wAmtToCurrentPack=users[msg.sender].UserAmtDepositCurrentPackTRUE; 
        }else{
            wAmtToCurrentPack=0;
        }
        if(users[msg.sender].UserSellDate>CurrentPackStartDate&&users[msg.sender].UserSellTokenPackNum==CurrentPackNumber){    
            witCP=users[msg.sender].UserTotalAmtWithdrawalCurrentPack;
        }else{
            witCP=0;
        }
        if(users[msg.sender].UserBuyDate>CurrentPackStartDate&&users[msg.sender].UserBuyTokenPackNum==CurrentPackNumber){
            depCP=users[msg.sender].UserTotalAmtDepositCurrentPack;
        }else{
            depCP=0;
        }
        remainsFromFirstRefunded=(users[msg.sender].UserFirstAmt*6/10).sub(users[msg.sender].UserWithdrawalFromFirstRefunded);
        remainsFromDisparity=(users[msg.sender].UserFirstAmt*7/10).sub(users[msg.sender].UserWithdrawalFromDisparity);
        userAvailableAmount=(balances[msg.sender]-((wAmtToCurrentPack)/CurrentPackTokenPriceSellout))*CurrentPackTokenPriceBuyout+wAmtToCurrentPack;
        if(userAvailableAmount>remainsFromDisparity){
            userAvailableAmount=userAvailableAmount-remainsFromDisparity;
        }else{
            userAvailableAmount=0;
        }
        if (userAvailableAmount<10){
            userAvailableAmount=0;
        }
        uint dsp=0;
        if(CurrentPackDeposits+OverallDisparityAmounts>CurrentPackDisparityAmounts+OverallRefunded){
            dsp=CurrentPackDeposits+OverallDisparityAmounts-CurrentPackDisparityAmounts-OverallRefunded;
        }
        if(address(this).balance>dsp){
            userAvailableAmount1=address(this).balance-dsp;
        }else{
            userAvailableAmount1=0;
        }
        return(users[msg.sender].UserFirstAmt,remainsFromFirstRefunded,users[msg.sender].UserContinued,users[msg.sender].UserTotalAmtDeposit,users[msg.sender].UserTotalAmtWithdrawal,userAvailableAmount,userAvailableAmount1,remainsFromDisparity,depCP,witCP,userCycle,wAmtToCurrentPack,users[msg.sender].UserBuyFirstDate);
    }

    function nextPack(uint _currentPackNumber)internal{
        transferFee();
        feeTransfered=false;
        CurrentPackNumber=_currentPackNumber+1;
        if(_currentPackNumber>0){
            mint(5000000000000000);
        }
        packSettings(CurrentPackNumber);
    }

    function restart(bool _rm)internal{
        if(_rm==true){
            if(RestartMode==false){
                RestartMode=true;
                RestartModeDate=now;
            }else{
                if(now>RestartModeDate+14*1 days){
                    Cycle=Cycle+1;
                    nextPack(0);
                    RestartMode=false;
                }
            }
        }else{
            if(RestartMode==true){
                RestartMode=false;
                RestartModeDate=0;
            }
        }
    }
    
    function transferFee()internal{
        if(CurrentPackNumber>2&&feeTransfered==false&&RestartMode==false){
            if(address(this).balance>=CurrentPackFee){
                feeTransfered=true;
                creatorOwner.transfer(CurrentPackFee);
            }
        }
    }

    function deposit()public payable{
        DepositTemp memory d;
        d.userAmt=msg.value;
        d.useraddress=msg.sender;
        require(d.userAmt<250 * 1 ether);
        d.availableTokens=balances[address(this)];
        d.currentPackTokenPriceSellout=CurrentPackTokenPriceSellout;
        require(d.userAmt<=d.availableTokens.mul(d.currentPackTokenPriceSellout).add(10*1 ether)); 
        require(d.userAmt.div(d.currentPackTokenPriceSellout)>0);
        d.currentPackNumber=CurrentPackNumber;
        d.currentPackStartDate=CurrentPackStartDate;
        d.userBuyTokenPackNum=users[d.useraddress].UserBuyTokenPackNum;
        d.userBuyTokenPrevPack=users[d.useraddress].UserBuyTokenPrevPack;
        if(d.userBuyTokenPackNum==d.currentPackNumber-1){
            d.userBuyTokenPrevPack=true;
        }else{
            if(d.userBuyTokenPackNum==d.currentPackNumber&&d.userBuyTokenPrevPack==true){
                d.userBuyTokenPrevPack=true;
            }else{
                d.userBuyTokenPrevPack=false;
            }
        }
        d.userBuyFirstDate=users[d.useraddress].UserBuyFirstDate;
        d.userBuyDate=users[d.useraddress].UserBuyDate;
        d.userContinued=users[d.useraddress].UserContinued;
        d.userTotalAmtDepositCurrentPack=users[d.useraddress].UserTotalAmtDepositCurrentPack;
        d.userTotalAmtDeposit=users[d.useraddress].UserTotalAmtDeposit;
        if(d.userBuyTokenPackNum==d.currentPackNumber&&d.userBuyDate>=d.currentPackStartDate){
            require(d.userTotalAmtDepositCurrentPack.add(d.userAmt)<250*1 ether);
            d.userAmtDepositCurrentPackTRUE=users[d.useraddress].UserAmtDepositCurrentPackTRUE;
        }else{
            d.userTotalAmtDepositCurrentPack=0;
            d.userAmtDepositCurrentPackTRUE=0;
        }
        if(users[d.useraddress].UserSellTokenPackNum==d.currentPackNumber&&users[d.useraddress].UserSellDate>=d.currentPackStartDate){
            d.p=users[d.useraddress].UserTotalAmtWithdrawalCurrentPack/20;
            require(d.userAmt>d.p);
            d.userAmt=d.userAmt.sub(d.p);
        }
        d.userTokenObtain=d.userAmt/d.currentPackTokenPriceSellout;
        if(d.userTokenObtain*d.currentPackTokenPriceSellout<d.userAmt){
            d.userTokenObtain=d.userTokenObtain+1;
        }
        if(d.userTokenObtain>d.availableTokens){
            d.amtToSend=d.currentPackTokenPriceSellout*(d.userTokenObtain-d.availableTokens);
            d.userAmt=d.userAmt.sub(d.amtToSend);
            d.userTokenObtain=d.availableTokens;
        }
        if(d.userAmt>=100*1 finney){  
            if(now<=(d.currentPackStartDate+1*1 days)){
                d.bonus=d.userTokenObtain*75/10000+1;
            }else{
                if(now<=(d.currentPackStartDate+2*1 days)){
                    d.bonus=d.userTokenObtain*50/10000+1;
                }else{
                    if(now<=(d.currentPackStartDate+3*1 days)){
                        d.bonus=d.userTokenObtain*25/10000+1;
                    }
                }
            }
        }
        if(d.userContinued>=4&&now>=(d.userBuyFirstDate+1*1 weeks)){
            d.bonus=d.bonus+d.userTokenObtain/100+1;
        }
        if(d.bonus>0){
            d.userTokenObtain=d.userTokenObtain.add(d.bonus);
            if(d.userTokenObtain>d.availableTokens){
                d.userAmtOverloadToSend=d.currentPackTokenPriceSellout*(d.userTokenObtain-d.availableTokens);
                d.bonusAmountRefunded=d.userAmtOverloadToSend;
                d.userTokenObtain=d.availableTokens;
                d.amtToSend=d.amtToSend.add(d.userAmtOverloadToSend);
                d.bonus=0;
            }else{
                d.bonusAmount=d.bonus*d.currentPackTokenPriceSellout;
            }
        }
        if(d.userBuyTokenPackNum==0){
            d.userContinued=1;
            d.userBuyFirstDate=now;
            d.userFirstAmt=d.userAmt.add(d.bonusAmount);
            d.userBuyFirstPack=d.currentPackNumber;
            d.amtForfirstRefund=d.userFirstAmt*6/10;
            OverallDisparityAmounts=OverallDisparityAmounts+d.userFirstAmt*7/10;
            CurrentPackDisparityAmounts=CurrentPackDisparityAmounts+d.userFirstAmt*7/10;
            d.amtToSend=d.amtToSend.add(d.amtForfirstRefund);
            OverallRefunded=OverallRefunded+d.amtForfirstRefund;
        }else{
            d.userFirstAmt=users[d.useraddress].UserFirstAmt;
            d.userBuyFirstPack=users[d.useraddress].UserBuyFirstPack;
            if(d.userBuyTokenPrevPack==true){    
                if(d.userBuyTokenPackNum==d.currentPackNumber-1){
                    d.userContinued=d.userContinued+1;
                }
            }else{
                d.userContinued=1;
            }
        }
        d.userAmtToStore=d.userAmt.add(d.bonusAmount);
        d.userTotalAmtDepositCurrentPack=d.userTotalAmtDepositCurrentPack.add(d.userAmtToStore);
        d.userTotalAmtDeposit=d.userTotalAmtDeposit.add(d.userAmtToStore);
        d.userAmtDepositCurrentPackTRUE=d.userAmtDepositCurrentPackTRUE.add(d.userAmtToStore);
        CurrentPackDeposits=CurrentPackDeposits.add(d.userAmtToStore);
        OverallDeposits=OverallDeposits.add(d.userAmtToStore);
        transfer(address(this),d.useraddress,d.userTokenObtain,false,0,0);
        User storage user=users[d.useraddress];
        user.UserBuyFirstDate=d.userBuyFirstDate;
        user.UserBuyFirstPack=d.userBuyFirstPack;
        user.UserBuyTokenPackNum=d.currentPackNumber;
        user.UserBuyDate=now;
        user.UserFirstAmt=d.userFirstAmt;
        user.UserBuyTokenPrevPack=d.userBuyTokenPrevPack;
        user.UserContinued=d.userContinued;
        user.UserTotalAmtDepositCurrentPack=d.userTotalAmtDepositCurrentPack;
        user.UserTotalAmtDeposit=d.userTotalAmtDeposit;
        user.UserAmtDepositCurrentPackTRUE=d.userAmtDepositCurrentPackTRUE;
        restart(false);
        if(balances[address(this)]==0){
            nextPack(d.currentPackNumber);
        }
        emit Deposit(d.useraddress,d.userAmtToStore,d.amtForfirstRefund,d.bonusAmount,d.bonusAmountRefunded,0,d.userTokenObtain,d.bonus,d.currentPackNumber,d.amtToSend);
        if(d.amtToSend>0){
            d.useraddress.transfer(d.amtToSend);
        }
    }


    function withdraw(uint WithdrawAmount,uint WithdrawTokens,bool AllowToUseDisparity)public{
        require(WithdrawTokens>0||WithdrawAmount>0);
        require(WithdrawTokens<=balances[msg.sender]);
        WithdrawTemp memory w;
        w.useraddress=msg.sender;
        w.userFirstAmt=users[w.useraddress].UserFirstAmt;
        w.userBuyFirstPack=users[w.useraddress].UserBuyFirstPack;
        w.currentPackNumber=CurrentPackNumber;
        w.currentPackStartDate=CurrentPackStartDate;
        w.currentPackTokenPriceSellout=CurrentPackTokenPriceSellout;
        w.currentPackTokenPriceBuyout=CurrentPackTokenPriceBuyout;
        w.overallRefunded=OverallRefunded;
        w.overallDisparityAmounts=OverallDisparityAmounts;
        w.userTotalAmtWithdrawal=users[w.useraddress].UserTotalAmtWithdrawal;
        w.userWithdrawalFromFirstRefunded=users[w.useraddress].UserWithdrawalFromFirstRefunded;
        w.remainsFromFirstRefunded=(w.userFirstAmt*6/10).sub(w.userWithdrawalFromFirstRefunded);
        w.userWithdrawalFromDisparity=users[w.useraddress].UserWithdrawalFromDisparity;
        w.remainsFromDisparity=(w.userFirstAmt*7/10).sub(w.userWithdrawalFromDisparity);
        w.thisBal=address(this).balance;
        w.currentPackDeposits=CurrentPackDeposits;
        if(users[w.useraddress].UserBuyTokenPackNum==w.currentPackNumber&&users[w.useraddress].UserBuyDate>=w.currentPackStartDate){
            w.userTotalAmtDepositCurrentPack=users[w.useraddress].UserTotalAmtDepositCurrentPack;
            w.userAmtDepositCurrentPackTRUE=users[w.useraddress].UserAmtDepositCurrentPackTRUE;
            w.withdrawAmtToCurrentPack=users[w.useraddress].UserAmtDepositCurrentPackTRUE;
            w.returnTokenInCurrentPack=true;
        }else{
            w.returnTokenInCurrentPack=false;
        }
        if(users[w.useraddress].UserSellTokenPackNum==w.currentPackNumber&&users[w.useraddress].UserSellDate>=w.currentPackStartDate){
            w.userTotalAmtWithdrawalCurrentPack=users[w.useraddress].UserTotalAmtWithdrawalCurrentPack;
        }
        if(CurrentPackDeposits+OverallDisparityAmounts>CurrentPackDisparityAmounts+OverallRefunded){
            w.dsp=CurrentPackDeposits+OverallDisparityAmounts-CurrentPackDisparityAmounts-OverallRefunded;
        }else{
            w.dsp=0;
        }
        w.userAvailableAmount=(balances[w.useraddress]-(w.withdrawAmtToCurrentPack/w.currentPackTokenPriceSellout))*w.currentPackTokenPriceBuyout+w.withdrawAmtToCurrentPack;
        if(w.thisBal>=w.dsp){
            if(w.userAvailableAmount>w.thisBal-w.dsp){
                if(w.currentPackNumber==w.userBuyFirstPack){
                    if(w.userAvailableAmount>w.thisBal-w.dsp+w.userAmtDepositCurrentPackTRUE){
                        w.userAvailableAmount=w.thisBal-w.dsp+w.userAmtDepositCurrentPackTRUE;
                    }
                }else{
                    if(w.userAvailableAmount>w.thisBal-w.dsp+w.remainsFromDisparity+w.userAmtDepositCurrentPackTRUE){
                        w.userAvailableAmount=w.thisBal-w.dsp+w.remainsFromDisparity+w.userAmtDepositCurrentPackTRUE;
                    }
                }
            }
        }else{
            if(w.userAmtDepositCurrentPackTRUE>w.remainsFromDisparity){
                if(w.userAvailableAmount>w.userAmtDepositCurrentPackTRUE){
                    w.userAvailableAmount=w.userAmtDepositCurrentPackTRUE;
                }
            }else{
                if(w.userAvailableAmount>w.remainsFromDisparity){
                    w.userAvailableAmount=w.remainsFromDisparity;
                }
            }
            if(w.userAvailableAmount>w.thisBal+w.remainsFromFirstRefunded){
                w.userAvailableAmount=w.thisBal+w.remainsFromFirstRefunded;
            }
            if(w.currentPackNumber>2){
                w.ra=true;
            }
        }
        if(WithdrawTokens>0&&WithdrawAmount==0){
            w.userTokensReturn=WithdrawTokens;
            if(w.returnTokenInCurrentPack==true){
                w.userTokensReturnToCurrentPack=w.withdrawAmtToCurrentPack.div(w.currentPackTokenPriceSellout);
                if(w.userTokensReturn>w.userTokensReturnToCurrentPack){
                    w.userTokensReturnAboveCurrentPack=w.userTokensReturn.sub(w.userTokensReturnToCurrentPack);
                    w.withdrawAmtAboveCurrentPack=w.userTokensReturnAboveCurrentPack.mul(w.currentPackTokenPriceBuyout);
                }else{
                    w.withdrawAmtToCurrentPack=w.userTokensReturn.mul(w.currentPackTokenPriceSellout);
                    w.userTokensReturnToCurrentPack=w.userTokensReturn;
                    w.withdrawAmtAboveCurrentPack=0;
                    w.userTokensReturnAboveCurrentPack=0;
                }
            }else{
                w.withdrawAmtToCurrentPack=0;
                w.userTokensReturnToCurrentPack=0;
                w.userTokensReturnAboveCurrentPack=w.userTokensReturn;
                w.withdrawAmtAboveCurrentPack=w.userTokensReturnAboveCurrentPack.mul(w.currentPackTokenPriceBuyout);
            }
            w.withdrawAmt=w.withdrawAmtToCurrentPack.add(w.withdrawAmtAboveCurrentPack);
        }else{
            w.withdrawAmt=WithdrawAmount;
        }
        if(w.withdrawAmt>w.userAvailableAmount){
            w.withdrawAmt=w.userAvailableAmount;
        }
        if(w.remainsFromDisparity>0){
           if(w.userAvailableAmount>=w.remainsFromDisparity){
                w.userAvailableAmount=w.userAvailableAmount-w.remainsFromDisparity;
            }else{
                w.userAvailableAmount=0;
            }
        }
        if(w.userAvailableAmount<100){
            w.userAvailableAmount=0;
        }
        if(AllowToUseDisparity==false&&w.remainsFromDisparity>0){
            if(w.withdrawAmt>w.userAvailableAmount){
                w.withdrawAmt=w.userAvailableAmount;
            }
        }
        if(w.returnTokenInCurrentPack==true){
            w.userTokensReturnToCurrentPack=w.withdrawAmtToCurrentPack.div(w.currentPackTokenPriceSellout);
            if(w.withdrawAmt>w.withdrawAmtToCurrentPack){ 
                w.withdrawAmtAboveCurrentPack=w.withdrawAmt.sub(w.withdrawAmtToCurrentPack);
                w.userTokensReturnAboveCurrentPack=w.withdrawAmtAboveCurrentPack.div(w.currentPackTokenPriceBuyout);
            }else{
                w.withdrawAmtToCurrentPack=w.withdrawAmt;
                w.userTokensReturnToCurrentPack=w.withdrawAmtToCurrentPack.div(w.currentPackTokenPriceSellout);
                w.withdrawAmtAboveCurrentPack=0;
                w.userTokensReturnAboveCurrentPack=0;
            }
        }else{
            w.withdrawAmtToCurrentPack=0;
            w.userTokensReturnToCurrentPack=0;
            w.withdrawAmtAboveCurrentPack=w.withdrawAmt;
            w.userTokensReturnAboveCurrentPack=w.withdrawAmtAboveCurrentPack.div(w.currentPackTokenPriceBuyout);
        }
        if(AllowToUseDisparity==true&&w.remainsFromDisparity>0){
            if(w.withdrawAmt>w.userAvailableAmount){
                w.useFromDisparity=w.withdrawAmt-w.userAvailableAmount;
                if(w.remainsFromDisparity<w.useFromDisparity){
                    w.useFromDisparity=w.remainsFromDisparity;
                }
                w.userWithdrawalFromDisparity=w.userWithdrawalFromDisparity.add(w.useFromDisparity);
                if(w.remainsFromFirstRefunded>0){
                    if(w.useFromDisparity>w.remainsFromDisparity-w.remainsFromFirstRefunded){
                        w.useFromFirstRefunded=w.useFromDisparity+w.remainsFromFirstRefunded-w.remainsFromDisparity;
                        if (w.remainsFromFirstRefunded<w.useFromFirstRefunded){
                            w.useFromFirstRefunded=w.remainsFromFirstRefunded;
                        }
                        w.userWithdrawalFromFirstRefunded=w.userWithdrawalFromFirstRefunded+w.useFromFirstRefunded;
                        w.withdrawAmt=w.withdrawAmt.sub(w.useFromFirstRefunded);
                    }
                }
            }
        }
        if(balances[address(this)]/50000000000000<10){
            w.bonus=(w.withdrawAmt+w.useFromFirstRefunded)/100;
            w.bonusToSend=w.bonus;
        }
        if(w.thisBal>w.dsp&&w.bonus>0){
            if(w.withdrawAmt+w.bonus>w.thisBal-w.dsp){
                w.bonusToSend=0;
                w.diff=w.bonus;
                if(w.userTokensReturnAboveCurrentPack>0){
                    w.bonusTokensReturnDecrease=w.diff/w.currentPackTokenPriceBuyout;
                    if(w.userTokensReturnAboveCurrentPack>=w.bonusTokensReturnDecrease){
                        w.userTokensReturnAboveCurrentPack=w.userTokensReturnAboveCurrentPack-w.bonusTokensReturnDecrease;
                        
                    }else{
                        w.diff=w.bonusTokensReturnDecrease-w.userTokensReturnAboveCurrentPack;
                        w.userTokensReturnAboveCurrentPack=0;
                        w.bonusTokensReturnDecrease=w.diff*w.currentPackTokenPriceBuyout/w.currentPackTokenPriceSellout;
                        w.userTokensReturnToCurrentPack=w.userTokensReturnToCurrentPack-w.bonusTokensReturnDecrease;
                    }
                }else{
                    w.bonusTokensReturnDecrease=w.diff/w.currentPackTokenPriceSellout;
          
          if(w.userTokensReturnToCurrentPack>=w.bonusTokensReturnDecrease){
                        w.userTokensReturnToCurrentPack=w.userTokensReturnToCurrentPack-w.bonusTokensReturnDecrease;
                    }
                }
            }
        }
        if(w.thisBal<=w.dsp){
            if(w.bonus>0){
                w.bonusToSend=0;
                w.diff=w.bonus;
                if(w.userTokensReturnAboveCurrentPack>0){
                    w.bonusTokensReturnDecrease=w.diff/w.currentPackTokenPriceBuyout;
                    if(w.userTokensReturnAboveCurrentPack>=w.bonusTokensReturnDecrease){

 
                       w.userTokensReturnAboveCurrentPack=w.userTokensReturnAboveCurrentPack-w.bonusTokensReturnDecrease;
                    }else{
                        w.diff=w.bonusTokensReturnDecrease-w.userTokensReturnAboveCurrentPack;
                        w.userTokensReturnAboveCurrentPack=0;
                        w.bonusTokensReturnDecrease=w.diff*w.currentPackTokenPriceBuyout/w.currentPackTokenPriceSellout;
                        w.userTokensReturnToCurrentPack=w.userTokensReturnToCurrentPack-w.bonusTokensReturnDecrease;
                    }
                }else{
                    w.bonusTokensReturnDecrease=w.diff/w.currentPackTokenPriceSellout;
                    if(w.userTokensReturnToCurrentPack>=w.bonusTokensReturnDecrease){
                        w.userTokensReturnToCurrentPack=w.userTokensReturnToCurrentPack-w.bonusTokensReturnDecrease;
                    }
                }
            }
            if(w.withdrawAmt>w.thisBal){
                w.diff=w.withdrawAmt+100-w.thisBal;
                if(w.userTokensReturnAboveCurrentPack>0){
                    w.TokensReturnDecrease=w.diff/w.currentPackTokenPriceBuyout;
                    if(w.userTokensReturnAboveCurrentPack>=w.TokensReturnDecrease){
                        w.userTokensReturnAboveCurrentPack=w.userTokensReturnAboveCurrentPack-w.TokensReturnDecrease;
                        w.withdrawAmtAboveCurrentPack=w.userTokensReturnAboveCurrentPack*w.currentPackTokenPriceBuyout;
                    }else{
                        w.diff=w.TokensReturnDecrease-w.userTokensReturnAboveCurrentPack;
                        w.userTokensReturnAboveCurrentPack=0;
                        w.TokensReturnDecrease=w.diff*w.currentPackTokenPriceBuyout/w.currentPackTokenPriceSellout;
                        w.userTokensReturnToCurrentPack=w.userTokensReturnToCurrentPack-w.TokensReturnDecrease;
                    }
                }else{
                    w.TokensReturnDecrease=w.diff/w.currentPackTokenPriceSellout;
                    if(w.userTokensReturnToCurrentPack>=w.TokensReturnDecrease){
                        w.userTokensReturnToCurrentPack=w.userTokensReturnToCurrentPack-w.TokensReturnDecrease;
                        w.withdrawAmtToCurrentPack=w.userTokensReturnToCurrentPack*w.currentPackTokenPriceSellout;
                    }
                }
                w.withdrawAmt=w.withdrawAmtToCurrentPack+w.withdrawAmtAboveCurrentPack;
                if(w.withdrawAmt>=w.useFromFirstRefunded){
                    w.withdrawAmt=w.withdrawAmt-w.useFromFirstRefunded;
                }else{
                    w.diff=w.useFromFirstRefunded-w.withdrawAmt;
                    w.withdrawAmt=0;
                    w.useFromFirstRefunded=w.useFromFirstRefunded-w.diff;
                }
                if(w.withdrawAmt>w.thisBal){
                    w.withdrawAmt=w.thisBal;
                }
            }
        }
        User storage user=users[w.useraddress];
        if(w.userAmtDepositCurrentPackTRUE>w.withdrawAmtToCurrentPack){
            user.UserAmtDepositCurrentPackTRUE=w.userAmtDepositCurrentPackTRUE-w.withdrawAmtToCurrentPack;
        }else{
            user.UserAmtDepositCurrentPackTRUE=0;
        }
        if(w.overallDisparityAmounts>w.useFromDisparity){
            OverallDisparityAmounts=w.overallDisparityAmounts-w.useFromDisparity;
        }else{
            OverallDisparityAmounts=0;
        }
        if(w.userBuyFirstPack==w.currentPackNumber&&users[w.useraddress].UserBuyFirstDate>=w.currentPackStartDate){
            if(CurrentPackDisparityAmounts>w.useFromDisparity){
                CurrentPackDisparityAmounts=CurrentPackDisparityAmounts-w.useFromDisparity;
            }else{
                CurrentPackDisparityAmounts=0;
            }
        }
        if(w.overallRefunded>w.useFromFirstRefunded){
            OverallRefunded=w.overallRefunded-w.useFromFirstRefunded;
        }else{
            OverallRefunded=0;
        }
        if(w.currentPackDeposits>w.withdrawAmtToCurrentPack){
            CurrentPackDeposits=w.currentPackDeposits-w.withdrawAmtToCurrentPack;
        }else{
            CurrentPackDeposits=0;
        }
        w.userTokensReturn=w.userTokensReturnToCurrentPack+w.userTokensReturnAboveCurrentPack;
        w.wAtoStore=w.withdrawAmt+w.useFromFirstRefunded+w.bonusToSend;
        w.userTotalAmtWithdrawal=w.userTotalAmtWithdrawal+w.wAtoStore;
        w.userTotalAmtWithdrawalCurrentPack=w.userTotalAmtWithdrawalCurrentPack+w.wAtoStore;
        OverallWithdrawals=OverallWithdrawals+w.wAtoStore;
        user.UserSellTokenPackNum=w.currentPackNumber;
        user.UserSellDate=now;
        user.UserTotalAmtWithdrawal=w.userTotalAmtWithdrawal;
        user.UserTotalAmtWithdrawalCurrentPack=w.userTotalAmtWithdrawalCurrentPack;
        user.UserWithdrawalFromFirstRefunded=w.userWithdrawalFromFirstRefunded;
        user.UserWithdrawalFromDisparity=w.userWithdrawalFromDisparity;
        emit Withdraw(w.useraddress,w.wAtoStore,w.useFromFirstRefunded,w.bonus,w.bonusToSend,w.currentPackNumber,w.userTokensReturn,w.userTokensReturnToCurrentPack,w.bonusTokensReturnDecrease,w.TokensReturnDecrease);
        if (w.userTokensReturn==balances[w.useraddress]+1){
            w.userTokensReturn=balances[w.useraddress];
            if (w.userTokensReturnToCurrentPack==balances[w.useraddress]+1){
                w.userTokensReturnToCurrentPack=balances[w.useraddress];
            }
            if (w.userTokensReturnAboveCurrentPack==balances[w.useraddress]+1){
                w.userTokensReturnAboveCurrentPack=balances[w.useraddress];
            }
        }
        transfer(w.useraddress,address(this),w.userTokensReturn,w.returnTokenInCurrentPack,w.userTokensReturnToCurrentPack,w.userTokensReturnAboveCurrentPack);
        if(w.ra==true){
            restart(true);
        }
        if(w.withdrawAmt+w.bonus>0){
            w.useraddress.transfer(w.withdrawAmt+w.bonusToSend);
        }
    }

    function transfer(address _from,address _to,uint _value,bool _rttcp,uint _rtcp,uint _racp)internal returns(bool success){
        balances[_from]=balances[_from].sub(_value); 
        if(_to==address(this)){ 
            if(_rttcp==true){
                balances[_to]=balances[_to].add(_rtcp);
            }else{
                balances[_to]=balances[_to];
            }
            totalSupply=totalSupply.sub(_racp);
        }else{
            balances[_to]=balances[_to].add(_value);
        }
        emit Transfer(_from,_to,_value); 
        return true;
    }

    function balanceOf(address tokenOwner)public view returns(uint balance){
        return balances[tokenOwner];
    }

    function mint(uint _value)internal returns(bool){
        balances[address(this)]=balances[address(this)].add(_value);
        totalSupply=totalSupply.add(_value);
        return true;
    }
    
    event Deposit(address indexed addr,uint,uint,uint,uint,uint,uint,uint,uint,uint);
    event Withdraw(address indexed addr,uint,uint,uint,uint,uint,uint,uint,uint,uint);
    event Transfer(address indexed _from,address indexed _to,uint _value);
    event NextPack(uint indexed CurrentPackTokenPriceSellout,uint indexed CurrentPackTokenPriceBuyout);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"CurrentPackTokenPriceSellout","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"CurrentPackTokenPriceBuyout","type":"uint256"}],"name":"NextPack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"aboutCurrentPack","outputs":[{"internalType":"uint256","name":"num","type":"uint256"},{"internalType":"uint256","name":"bal","type":"uint256"},{"internalType":"uint256","name":"overallRefunded","type":"uint256"},{"internalType":"uint256","name":"dsp","type":"uint256"},{"internalType":"uint256","name":"availableTokens","type":"uint256"},{"internalType":"uint256","name":"availableTokensInPercentage","type":"uint256"},{"internalType":"uint256","name":"availableAmountToDepositInWei","type":"uint256"},{"internalType":"uint256","name":"tokenPriceSellout","type":"uint256"},{"internalType":"uint256","name":"tokenPriceBuyout","type":"uint256"},{"internalType":"uint256","name":"cycle","type":"uint256"},{"internalType":"uint256","name":"overallDeposits","type":"uint256"},{"internalType":"uint256","name":"overallWithdrawals","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aboutUser","outputs":[{"internalType":"uint256","name":"UserFirstAmt","type":"uint256"},{"internalType":"uint256","name":"remainsFromFirstRefunded","type":"uint256"},{"internalType":"uint256","name":"UserContinued","type":"uint256"},{"internalType":"uint256","name":"userTotalAmtDeposit","type":"uint256"},{"internalType":"uint256","name":"userTotalAmtWithdrawal","type":"uint256"},{"internalType":"uint256","name":"userAvailableAmount","type":"uint256"},{"internalType":"uint256","name":"userAvailableAmount1","type":"uint256"},{"internalType":"uint256","name":"remainsFromDisparity","type":"uint256"},{"internalType":"uint256","name":"depCP","type":"uint256"},{"internalType":"uint256","name":"witCP","type":"uint256"},{"internalType":"uint256","name":"userCycle","type":"uint256"},{"internalType":"uint256","name":"wAmtToCurrentPack","type":"uint256"},{"internalType":"uint256","name":"userBuyFirstDate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"WithdrawAmount","type":"uint256"},{"internalType":"uint256","name":"WithdrawTokens","type":"uint256"},{"internalType":"bool","name":"AllowToUseDisparity","type":"bool"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526011805460ff19169055600180546001600160a01b031916331781556012556000600455620000436611c37937e080006001600160e01b036200006116565b506012546200005b906001600160e01b03620000c016565b620002e6565b3060009081526002602090815260408220546200008991849062001f75620002cc821b17901c565b30600090815260026020908152604082209290925554620000b591849062001f75620002cc821b17901c565b600055506001919050565b60128190556001811415620000ea57600a601f819055601d5566b1a2bc2ec50000600b5560006009555b80600214156200014a57600b54600e556000601055601f546064606e820204601b819055816200011657fe5b0460088190556007819055601b5401601f819055601d8190556611c37937e0800002600b819055600e540160155560006009555b60028111156200028857601f54601c819055601d8054601a55600b54600555601554600e55600754601055601b8054909155606e90910290819055606410620001a257600a601c54600b02816200019d57fe5b04601b555b6064601b541115620001d257601b80546103e80290819055600a90612710900460050181620001cd57fe5b04601b555b601c54601b5403600881905560650260078190556064106200020957606460085460650281620001fe57fe5b601054919004016007555b606460075411156200023f57600780546103e80290819055600a906127109004600501816200023457fe5b601054919004016007555b60078054601b5401601f8190556611c37937e08000908102600b819055601d549091026018819055600e5490910103601555600554600a910204601854600e5403036009819055505b6000601e819055601681905542601755601d54601f54604051919290917f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d89190a350565b600082820183811015620002df57600080fd5b9392505050565b6126a980620002f66000396000f3fe6080604052600436106100865760003560e01c806370a082311161005957806370a082311461018b57806395d89b41146101be578063d0e30db0146101d3578063d6efd2c1146101db578063d89fec581461025557610086565b806306fdde031461008b57806318160ddd14610115578063313ce5671461013c57806333cfcd3b14610151575b600080fd5b34801561009757600080fd5b506100a06102d1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100da5781810151838201526020016100c2565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012157600080fd5b5061012a610302565b60408051918252519081900360200190f35b34801561014857600080fd5b5061012a610308565b34801561015d57600080fd5b506101896004803603606081101561017457600080fd5b5080359060208101359060400135151561030d565b005b34801561019757600080fd5b5061012a600480360360208110156101ae57600080fd5b50356001600160a01b03166112f5565b3480156101ca57600080fd5b506100a0611310565b61018961132f565b3480156101e757600080fd5b506101f0611bec565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b34801561026157600080fd5b5061026a611e4d565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e0880152610100870152610120860152610140850152610160840152151561018083015251908190036101a00190f35b604051806040016040528060158152602001744d757475616c20556e6974696e672053797374656d60581b81525081565b60005481565b600e81565b600082118061031c5750600083115b61032557600080fd5b3360009081526002602052604090205482111561034157600080fd5b61034961247a565b338082526000908152600360208181526040808420600d908101546103a0870190815286516001600160a01b039081168752858552838720600a908101546103008a01526012546102e08a01526017546102808a0152601f5460e08a0152601d546101008a015292546103608901526019546101e0890152875181168752858552838720600501546102008901528751168652939092529092206001015460608401819052905161040692906006025b049063ffffffff611f0b16565b6101c082015280516001600160a01b031660009081526003602052604090206004015461014082018190526103a08201516104479190600a906007026103f9565b610240820152476104408201526016546102c08201526102e081015181516001600160a01b03166000908152600360205260409020600901541480156104ae575061028081015181516001600160a01b03166000908152600360205260409020600f015410155b156105105780516001600160a01b03908116600090815260036020818152604080842060020154608087015285518516845282825280842083015460a08701528551909416835281905291902001546101a08201526001610180820152610519565b60006101808201525b6102e081015181516001600160a01b031660009081526003602052604090206006015414801561056a575061028081015181516001600160a01b03166000908152600360205260409020600e015410155b156105915780516001600160a01b0316600090815260036020908152604090912054908201525b600d54601e54016019546016540111156105bf57600d54601e546019546016540103036104a08201526105c8565b60006104a08201525b6101a081015161010082015160e083015182816105e157fe5b84516001600160a01b0316600090815260026020526040902054919004900302016102a08201526104a0810151610440820151106106ce57806104a0015181610440015103816102a0015111156106c957806103000151816102e001511415610682578060a00151816104a001518261044001510301816102a00151111561067d5760a08101516104a082015161044083015103016102a08201525b6106c9565b8060a00151816102400151826104a00151836104400151030101816102a0015111156106c95760a08101516102408201516104a08301516104408401510301016102a08201525b610764565b8061024001518160a001511115610701578060a00151816102a0015111156106fc5760a08101516102a08201525b610720565b806102400151816102a001511115610720576102408101516102a08201525b806101c0015181610440015101816102a00151111561074d576101c0810151610440820151016102a08201525b6002816102e0015111156107645760016104c08201525b600083118015610772575083155b1561089d57610320810183905261018081015115156001141561083e5760e08101516101a08201516107a99163ffffffff611f2516565b60c0820181905261032082015111156107fe5760c08101516103208201516107d69163ffffffff611f0b16565b604082018190526101008201516107f3919063ffffffff611f4716565b610120820152610839565b60e08101516103208201516108189163ffffffff611f4716565b6101a082015261032081015160c08201526000610120820181905260408201525b610877565b60006101a0820181905260c082015261032081015160408201819052610100820151610870919063ffffffff611f4716565b6101208201525b6101208101516101a08201516108929163ffffffff611f7516565b6104008201526108a6565b61040081018490525b806102a0015181610400015111156108c5576102a08101516104008201525b6102408101511561090257806102400151816102a00151106108f9576102408101516102a082018051919091039052610902565b60006102a08201525b6064816102a0015110156109195760006102a08201525b8115801561092c57506000816102400151115b1561095057806102a001518161040001511115610950576102a08101516104008201525b610180810151151560011415610a115760e08101516101a082015161097a9163ffffffff611f2516565b60c08201526101a081015161040082015111156109d4576101a08101516104008201516109ac9163ffffffff611f0b16565b61012082018190526101008201516109ca919063ffffffff611f2516565b6040820152610a0c565b6104008101516101a0820181905260e08201516109f7919063ffffffff611f2516565b60c08201526000610120820181905260408201525b610a4a565b60006101a0820181905260c08201526104008101516101208201819052610100820151610a44919063ffffffff611f2516565b60408201525b6001821515148015610a6157506000816102400151115b15610b4a57806102a001518161040001511115610b4a576102a08101516104008201510361034082018190526102408201511015610aa6576102408101516103408201525b610340810151610140820151610ac19163ffffffff611f7516565b6101408201526101c081015115610b4a57806101c00151816102400151038161034001511115610b4a576102408101516101c082015161034083015181019190910361022083018190521115610b1e576101c08101516102208201525b61022081015160608201805182019052610400820151610b439163ffffffff611f0b16565b6104008201525b30600090815260026020526040902054600a90652d79883d200090041015610b925760648161022001518261040001510181610b8257fe5b0461046082018190526103e08201525b806104a00151816104400151118015610bb057506000816104600151115b15610cb257806104a0015181610440015103816104600151826104000151011115610cb25760006103e0820152610460810151610480820152604081015115610c7a5780610100015181610480015181610c0657fe5b046101608201819052604082015110610c3057610160810151604082018051919091039052610c75565b604081018051610160830151036104808301819052600090915260e082015161010083015190910281610c5f57fe5b04610160820181905260c0820180519190910390525b610cb2565b8060e0015181610480015181610c8c57fe5b04610160820181905260c082015110610cb25761016081015160c0820180519190910390525b806104a0015181610440015111610f345761046081015115610dab5760006103e0820152610460810151610480820152604081015115610d735780610100015181610480015181610cff57fe5b046101608201819052604082015110610d2957610160810151604082018051919091039052610d6e565b604081018051610160830151036104808301819052600090915260e082015161010083015190910281610d5857fe5b04610160820181905260c0820180519190910390525b610dab565b8060e0015181610480015181610d8557fe5b04610160820181905260c082015110610dab5761016081015160c0820180519190910390525b8061044001518161040001511115610f345761044081015161040082015103606401610480820152604081015115610e735780610100015181610480015181610df057fe5b046102608201819052604082015110610e2957610260810151604082018051919091039081905261010082015102610120820152610e6e565b604081018051610260830151036104808301819052600090915260e082015161010083015190910281610e5857fe5b04610260820181905260c0820180519190910390525b610eb9565b8060e0015181610480015181610e8557fe5b04610260820181905260c082015110610eb95761026081015160c082018051919091039081905260e0820151026101a08201525b6101208101516101a082015101610400820181905261022082015111610ef15761022081015161040082018051919091039052610f15565b61040081018051610220830180519182036104808501819052600090935291900390525b8061044001518161040001511115610f34576104408101516104008201525b80516001600160a01b031660009081526003602052604090206101a082015160a08301511115610f74576101a082015160a0830151036003820155610f7c565b600060038201555b816103400151826101e001511115610fa3576103408201516101e083015103601955610fa9565b60006019555b816102e00151826103000151148015610fe3575061028082015182516001600160a01b03166000908152600360205260409020600b015410155b1561101257816103400151601e54111561100c57816103400151601e5403601e81905550611012565b6000601e555b81610220015182610360015111156110395761022082015161036083015103600d5561103f565b6000600d555b816101a00151826102c001511115611066576101a08201516102c08301510360165561106c565b60006016555b60408083015160c08085015191820161032086018190526103e0860151610220870151610400880151810182016104208901819052610200890180518201908190526020808b01805184019081905260138054850190556102e08c015160068c0181905542600e8d015560058c01939093558a556060808c015160018c01556101408c015160048c01558b516104608d01516101608e01516102608f01518d5197885294870197909752858c015290840195909552608083019190915260a08201949094529384019490945260e083019390935261010082015291516001600160a01b03909116917f462d37d3ec07f21024a59c3b1ed2c7d4410d0ff9ff959786a097e415422a788991908190036101200190a281516001600160a01b0316600090815260026020526040902054610320830151600190910114156112565781516001600160a01b039081166000908152600260208181526040808420546103208801528651909416835252205460c08301516001909101141561120a5781516001600160a01b031660009081526002602052604090205460c08301525b81516001600160a01b0316600090815260026020526040908190205490830151600190910114156112565781516001600160a01b03166000908152600260205260409081902054908301525b61127a8260000151308461032001518561018001518660c001518760400151611f87565b506104c08201511515600114156112955761129560016120f1565b61046082015161040083015101156112ee5781516103e08301516104008401516040516001600160a01b0390931692910180156108fc02916000818181858888f193505050501580156112ec573d6000803e3d6000fd5b505b5050505050565b6001600160a01b031660009081526002602052604090205490565b604051806040016040528060038152602001624d555360e81b81525081565b6113376125a5565b3460608201819052338252680d8d726b7177a800001161135657600080fd5b306000908152600260205260409020546101608201819052601f546102e083018190526113a391678ac7230489e8000091611397919063ffffffff611f4716565b9063ffffffff611f7516565b816060015111156113b357600080fd5b60006113d1826102e001518360600151611f2590919063ffffffff16565b116113db57600080fd5b6012546101e082019081526017546102a083015281516001600160a01b0390811660009081526003602081815260408084206009015461022088019081528751909516845291905290206007015460ff16151561028084015290519051600019909101141561145157600161028082015261148c565b806101e00151816102200151148015611471575061028081015115156001145b1561148357600161028082015261148c565b60006102808201525b80516001600160a01b039081166000908152600360208181526040808420600b01546101c0870152855185168452828252808420600f015460c0870152855185168452828252808420600c015461012087015285518516845282825280842060020154610320870152855190941683525220600801546102408201526101e081015161022082015114801561152a5750806102a001518160c0015110155b1561158857680d8d726b7177a800006115558260600151836103200151611f7590919063ffffffff16565b1061155f57600080fd5b80516001600160a01b031660009081526003602081905260409091200154610300820152611599565b600061032082018190526103008201525b6101e081015181516001600160a01b03166000908152600360205260409020600601541480156115ea57506102a081015181516001600160a01b03166000908152600360205260409020600e015410155b156116425780516001600160a01b0316600090815260036020526040902054601490046020820181905260608201511161162357600080fd5b6020810151606082015161163c9163ffffffff611f0b16565b60608201525b806102e0015181606001518161165457fe5b04610180820181905260608201516102e0830151909102101561167e576101808101805160010190525b80610160015181610180015111156116d3576101608101516101808201516102e0830151919003026080820181905260608201516116c19163ffffffff611f0b16565b60608201526101608101516101808201525b67016345785d8a000081606001511061176a57806102a001516201518001421161171857612710816101800151604b028161170a57fe5b04600101604082015261176a565b806102a001516202a30001421161173c576127108161018001516032028161170a57fe5b806102a001516203f48001421161176a576127108161018001516019028161176057fe5b0460010160408201525b60048161012001511015801561178a5750806101c0015162093a80014210155b156117b25760648161018001518161179e57fe5b048160400151016001018160400181815250505b60408101511561184c5760408101516101808201516117d69163ffffffff611f7516565b6101808201819052610160820151101561183a57610160810151610180820180516102e084015190839003026102c08401819052610260840181905291905260808201516118299163ffffffff611f7516565b60808201526000604082015261184c565b6102e081015160408201510260a08201525b6102208101516118ed576001610120820152426101c082015260a0810151606082015161187e9163ffffffff611f7516565b61010082018190526101e08201516101a0830152600a60068202819004610200840181905260198054600790940292909204928301909155601e805490920190915560808201516118d49163ffffffff611f7516565b6080820152610200810151600d80549091019055611968565b80516001600160a01b039081166000908152600360208181526040808420600d0154610100870152855190941683525220600a01546101a082015261028081015115156001141561195f576001816101e0015103816102200151141561195a576101208101805160010190525b611968565b60016101208201525b60a081015160608201516119819163ffffffff611f7516565b610140820181905261032082015161199e9163ffffffff611f7516565b6103208201526101408101516102408201516119bf9163ffffffff611f7516565b6102408201526101408101516103008201516119e09163ffffffff611f7516565b6103008201526101408101516016546119fe9163ffffffff611f7516565b601655610140810151600c54611a199163ffffffff611f7516565b600c558051610180820151611a3391309160008080611f87565b5080516001600160a01b0316600090815260036020819052604082206101c0840151600b8201556101a0840151600a8201556101e0840151600982015542600f820155610100840151600d82015561028084015160078201805460ff1916911515919091179055610120840151600c820155610320840151600282015561024084015160088201556103008401519181019190915590611ad2906120f1565b30600090815260026020526040902054611af457611af4826101e00151612171565b81600001516001600160a01b03167fa03b5c57f1b91416f3e1bdc7340369095b63e55a3b37799d33c0092f5b84960c8361014001518461020001518560a00151866102600151600088610180015189604001518a6101e001518b60800151604051808a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390a2608082015115611be857815160808301516040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015611be6573d6000803e3d6000fd5b505b5050565b600080600080600080600080600080600080600060175460036000336001600160a01b03166001600160a01b03168152602001908152602001600020600f0154118015611c4c575060125433600090815260036020526040902060090154145b15611c6c5733600090815260036020819052604090912001549150611c71565b600091505b601754336000908152600360205260409020600e0154118015611ca7575060125433600090815260036020526040902060060154145b15611cc357336000908152600360205260409020549350611cc8565b600093505b601754336000908152600360205260409020600f0154118015611cfe575060125433600090815260036020526040902060090154145b15611d1d57336000908152600360205260409020600201549450611d22565b600094505b3360009081526003602052604090206001810154600d90910154611d4c9190600a906006026103f9565b3360009081526003602052604090206004810154600d90910154919d50611d7891600a906007026103f9565b955081601d54601f548481611d8957fe5b3360009081526002602052604090205491900490030201975085881115611db4578588039750611db9565b600097505b600a881015611dc757600097505b6000809050600d54601e5401601954601654011115611df15750600d54601e546019546016540103035b80471115611e03578047039750611e08565b600097505b5050336000908152600360205260409020600d810154600c82015460088301546005840154600b90940154929f50909c509a50909850909192939495969798999a9b9c565b6000806000806000806000806000806000806000600d54601e5401601954601654011115611e8b57600d54601e546019546016540103039950611e90565b600099505b601254600d5430600090815260026020526040812054601f544793928f9291611ec090839063ffffffff611f4716565b601f54601d54600454600c54601354601160009054906101000a900460ff168797509c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b600082821115611f1a57600080fd5b508082035b92915050565b6000808211611f3357600080fd5b6000828481611f3e57fe5b04949350505050565b600082611f5657506000611f1f565b82820282848281611f6357fe5b0414611f6e57600080fd5b9392505050565b600082820183811015611f6e57600080fd5b6001600160a01b038616600090815260026020526040812054611fb0908663ffffffff611f0b16565b6001600160a01b0380891660009081526002602052604090209190915586163014156120565760018415151415612028576001600160a01b03861660009081526002602052604090205461200a908463ffffffff611f7516565b6001600160a01b03871660009081526002602052604090205561203b565b6001600160a01b03861660005260026020525b60005461204e908363ffffffff611f0b16565b600055612099565b6001600160a01b03861660009081526002602052604090205461207f908663ffffffff611f7516565b6001600160a01b0387166000908152600260205260409020555b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35060019695505050505050565b6001811515141561214e5760115460ff1661211c576011805460ff1916600117905542600a55612149565b600a5462127500014211156121495760048054600101905561213e6000612171565b6011805460ff191690555b61216e565b60115460ff1615156001141561216e576011805460ff191690556000600a555b50565b6121796121ad565b6006805460ff191690556001810160125580156121a2576121a06611c37937e0800061222b565b505b61216e60125461227a565b60026012541180156121c2575060065460ff16155b80156121d1575060115460ff16155b15612229576009544710612229576006805460ff19166001908117909155546009546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561216e573d6000803e3d6000fd5b565b3060009081526002602052604081205461224b908363ffffffff611f7516565b306000908152600260205260408120919091555461226f908363ffffffff611f7516565b600055506001919050565b601281905560018114156122a357600a601f819055601d5566b1a2bc2ec50000600b5560006009555b806002141561230157600b54600e556000601055601f546064606e820204601b819055816122cd57fe5b0460088190556007819055601b5401601f819055601d8190556611c37937e0800002600b819055600e540160155560006009555b600281111561243657601f54601c819055601d8054601a55600b54600555601554600e55600754601055601b8054909155606e9091029081905560641061235657600a601c54600b028161235157fe5b04601b555b6064601b54111561238457601b80546103e80290819055600a9061271090046005018161237f57fe5b04601b555b601c54601b5403600881905560650260078190556064106123b9576064600854606502816123ae57fe5b601054919004016007555b606460075411156123ed57600780546103e80290819055600a906127109004600501816123e257fe5b601054919004016007555b60078054601b5401601f8190556611c37937e08000908102600b819055601d549091026018819055600e5490910103601555600554600a910204601854600e5403036009819055505b6000601e819055601681905542601755601d54601f54604051919290917f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d89190a350565b604051806104e0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180610340016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152509056fea26469706673582212204d171d5c839471a59041e795d980fcf08ee0c20bbaf97788bf27de7be9ac9a5764736f6c63430006040033

Deployed Bytecode

0x6080604052600436106100865760003560e01c806370a082311161005957806370a082311461018b57806395d89b41146101be578063d0e30db0146101d3578063d6efd2c1146101db578063d89fec581461025557610086565b806306fdde031461008b57806318160ddd14610115578063313ce5671461013c57806333cfcd3b14610151575b600080fd5b34801561009757600080fd5b506100a06102d1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100da5781810151838201526020016100c2565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012157600080fd5b5061012a610302565b60408051918252519081900360200190f35b34801561014857600080fd5b5061012a610308565b34801561015d57600080fd5b506101896004803603606081101561017457600080fd5b5080359060208101359060400135151561030d565b005b34801561019757600080fd5b5061012a600480360360208110156101ae57600080fd5b50356001600160a01b03166112f5565b3480156101ca57600080fd5b506100a0611310565b61018961132f565b3480156101e757600080fd5b506101f0611bec565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015261016084015261018083015251908190036101a00190f35b34801561026157600080fd5b5061026a611e4d565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e0880152610100870152610120860152610140850152610160840152151561018083015251908190036101a00190f35b604051806040016040528060158152602001744d757475616c20556e6974696e672053797374656d60581b81525081565b60005481565b600e81565b600082118061031c5750600083115b61032557600080fd5b3360009081526002602052604090205482111561034157600080fd5b61034961247a565b338082526000908152600360208181526040808420600d908101546103a0870190815286516001600160a01b039081168752858552838720600a908101546103008a01526012546102e08a01526017546102808a0152601f5460e08a0152601d546101008a015292546103608901526019546101e0890152875181168752858552838720600501546102008901528751168652939092529092206001015460608401819052905161040692906006025b049063ffffffff611f0b16565b6101c082015280516001600160a01b031660009081526003602052604090206004015461014082018190526103a08201516104479190600a906007026103f9565b610240820152476104408201526016546102c08201526102e081015181516001600160a01b03166000908152600360205260409020600901541480156104ae575061028081015181516001600160a01b03166000908152600360205260409020600f015410155b156105105780516001600160a01b03908116600090815260036020818152604080842060020154608087015285518516845282825280842083015460a08701528551909416835281905291902001546101a08201526001610180820152610519565b60006101808201525b6102e081015181516001600160a01b031660009081526003602052604090206006015414801561056a575061028081015181516001600160a01b03166000908152600360205260409020600e015410155b156105915780516001600160a01b0316600090815260036020908152604090912054908201525b600d54601e54016019546016540111156105bf57600d54601e546019546016540103036104a08201526105c8565b60006104a08201525b6101a081015161010082015160e083015182816105e157fe5b84516001600160a01b0316600090815260026020526040902054919004900302016102a08201526104a0810151610440820151106106ce57806104a0015181610440015103816102a0015111156106c957806103000151816102e001511415610682578060a00151816104a001518261044001510301816102a00151111561067d5760a08101516104a082015161044083015103016102a08201525b6106c9565b8060a00151816102400151826104a00151836104400151030101816102a0015111156106c95760a08101516102408201516104a08301516104408401510301016102a08201525b610764565b8061024001518160a001511115610701578060a00151816102a0015111156106fc5760a08101516102a08201525b610720565b806102400151816102a001511115610720576102408101516102a08201525b806101c0015181610440015101816102a00151111561074d576101c0810151610440820151016102a08201525b6002816102e0015111156107645760016104c08201525b600083118015610772575083155b1561089d57610320810183905261018081015115156001141561083e5760e08101516101a08201516107a99163ffffffff611f2516565b60c0820181905261032082015111156107fe5760c08101516103208201516107d69163ffffffff611f0b16565b604082018190526101008201516107f3919063ffffffff611f4716565b610120820152610839565b60e08101516103208201516108189163ffffffff611f4716565b6101a082015261032081015160c08201526000610120820181905260408201525b610877565b60006101a0820181905260c082015261032081015160408201819052610100820151610870919063ffffffff611f4716565b6101208201525b6101208101516101a08201516108929163ffffffff611f7516565b6104008201526108a6565b61040081018490525b806102a0015181610400015111156108c5576102a08101516104008201525b6102408101511561090257806102400151816102a00151106108f9576102408101516102a082018051919091039052610902565b60006102a08201525b6064816102a0015110156109195760006102a08201525b8115801561092c57506000816102400151115b1561095057806102a001518161040001511115610950576102a08101516104008201525b610180810151151560011415610a115760e08101516101a082015161097a9163ffffffff611f2516565b60c08201526101a081015161040082015111156109d4576101a08101516104008201516109ac9163ffffffff611f0b16565b61012082018190526101008201516109ca919063ffffffff611f2516565b6040820152610a0c565b6104008101516101a0820181905260e08201516109f7919063ffffffff611f2516565b60c08201526000610120820181905260408201525b610a4a565b60006101a0820181905260c08201526104008101516101208201819052610100820151610a44919063ffffffff611f2516565b60408201525b6001821515148015610a6157506000816102400151115b15610b4a57806102a001518161040001511115610b4a576102a08101516104008201510361034082018190526102408201511015610aa6576102408101516103408201525b610340810151610140820151610ac19163ffffffff611f7516565b6101408201526101c081015115610b4a57806101c00151816102400151038161034001511115610b4a576102408101516101c082015161034083015181019190910361022083018190521115610b1e576101c08101516102208201525b61022081015160608201805182019052610400820151610b439163ffffffff611f0b16565b6104008201525b30600090815260026020526040902054600a90652d79883d200090041015610b925760648161022001518261040001510181610b8257fe5b0461046082018190526103e08201525b806104a00151816104400151118015610bb057506000816104600151115b15610cb257806104a0015181610440015103816104600151826104000151011115610cb25760006103e0820152610460810151610480820152604081015115610c7a5780610100015181610480015181610c0657fe5b046101608201819052604082015110610c3057610160810151604082018051919091039052610c75565b604081018051610160830151036104808301819052600090915260e082015161010083015190910281610c5f57fe5b04610160820181905260c0820180519190910390525b610cb2565b8060e0015181610480015181610c8c57fe5b04610160820181905260c082015110610cb25761016081015160c0820180519190910390525b806104a0015181610440015111610f345761046081015115610dab5760006103e0820152610460810151610480820152604081015115610d735780610100015181610480015181610cff57fe5b046101608201819052604082015110610d2957610160810151604082018051919091039052610d6e565b604081018051610160830151036104808301819052600090915260e082015161010083015190910281610d5857fe5b04610160820181905260c0820180519190910390525b610dab565b8060e0015181610480015181610d8557fe5b04610160820181905260c082015110610dab5761016081015160c0820180519190910390525b8061044001518161040001511115610f345761044081015161040082015103606401610480820152604081015115610e735780610100015181610480015181610df057fe5b046102608201819052604082015110610e2957610260810151604082018051919091039081905261010082015102610120820152610e6e565b604081018051610260830151036104808301819052600090915260e082015161010083015190910281610e5857fe5b04610260820181905260c0820180519190910390525b610eb9565b8060e0015181610480015181610e8557fe5b04610260820181905260c082015110610eb95761026081015160c082018051919091039081905260e0820151026101a08201525b6101208101516101a082015101610400820181905261022082015111610ef15761022081015161040082018051919091039052610f15565b61040081018051610220830180519182036104808501819052600090935291900390525b8061044001518161040001511115610f34576104408101516104008201525b80516001600160a01b031660009081526003602052604090206101a082015160a08301511115610f74576101a082015160a0830151036003820155610f7c565b600060038201555b816103400151826101e001511115610fa3576103408201516101e083015103601955610fa9565b60006019555b816102e00151826103000151148015610fe3575061028082015182516001600160a01b03166000908152600360205260409020600b015410155b1561101257816103400151601e54111561100c57816103400151601e5403601e81905550611012565b6000601e555b81610220015182610360015111156110395761022082015161036083015103600d5561103f565b6000600d555b816101a00151826102c001511115611066576101a08201516102c08301510360165561106c565b60006016555b60408083015160c08085015191820161032086018190526103e0860151610220870151610400880151810182016104208901819052610200890180518201908190526020808b01805184019081905260138054850190556102e08c015160068c0181905542600e8d015560058c01939093558a556060808c015160018c01556101408c015160048c01558b516104608d01516101608e01516102608f01518d5197885294870197909752858c015290840195909552608083019190915260a08201949094529384019490945260e083019390935261010082015291516001600160a01b03909116917f462d37d3ec07f21024a59c3b1ed2c7d4410d0ff9ff959786a097e415422a788991908190036101200190a281516001600160a01b0316600090815260026020526040902054610320830151600190910114156112565781516001600160a01b039081166000908152600260208181526040808420546103208801528651909416835252205460c08301516001909101141561120a5781516001600160a01b031660009081526002602052604090205460c08301525b81516001600160a01b0316600090815260026020526040908190205490830151600190910114156112565781516001600160a01b03166000908152600260205260409081902054908301525b61127a8260000151308461032001518561018001518660c001518760400151611f87565b506104c08201511515600114156112955761129560016120f1565b61046082015161040083015101156112ee5781516103e08301516104008401516040516001600160a01b0390931692910180156108fc02916000818181858888f193505050501580156112ec573d6000803e3d6000fd5b505b5050505050565b6001600160a01b031660009081526002602052604090205490565b604051806040016040528060038152602001624d555360e81b81525081565b6113376125a5565b3460608201819052338252680d8d726b7177a800001161135657600080fd5b306000908152600260205260409020546101608201819052601f546102e083018190526113a391678ac7230489e8000091611397919063ffffffff611f4716565b9063ffffffff611f7516565b816060015111156113b357600080fd5b60006113d1826102e001518360600151611f2590919063ffffffff16565b116113db57600080fd5b6012546101e082019081526017546102a083015281516001600160a01b0390811660009081526003602081815260408084206009015461022088019081528751909516845291905290206007015460ff16151561028084015290519051600019909101141561145157600161028082015261148c565b806101e00151816102200151148015611471575061028081015115156001145b1561148357600161028082015261148c565b60006102808201525b80516001600160a01b039081166000908152600360208181526040808420600b01546101c0870152855185168452828252808420600f015460c0870152855185168452828252808420600c015461012087015285518516845282825280842060020154610320870152855190941683525220600801546102408201526101e081015161022082015114801561152a5750806102a001518160c0015110155b1561158857680d8d726b7177a800006115558260600151836103200151611f7590919063ffffffff16565b1061155f57600080fd5b80516001600160a01b031660009081526003602081905260409091200154610300820152611599565b600061032082018190526103008201525b6101e081015181516001600160a01b03166000908152600360205260409020600601541480156115ea57506102a081015181516001600160a01b03166000908152600360205260409020600e015410155b156116425780516001600160a01b0316600090815260036020526040902054601490046020820181905260608201511161162357600080fd5b6020810151606082015161163c9163ffffffff611f0b16565b60608201525b806102e0015181606001518161165457fe5b04610180820181905260608201516102e0830151909102101561167e576101808101805160010190525b80610160015181610180015111156116d3576101608101516101808201516102e0830151919003026080820181905260608201516116c19163ffffffff611f0b16565b60608201526101608101516101808201525b67016345785d8a000081606001511061176a57806102a001516201518001421161171857612710816101800151604b028161170a57fe5b04600101604082015261176a565b806102a001516202a30001421161173c576127108161018001516032028161170a57fe5b806102a001516203f48001421161176a576127108161018001516019028161176057fe5b0460010160408201525b60048161012001511015801561178a5750806101c0015162093a80014210155b156117b25760648161018001518161179e57fe5b048160400151016001018160400181815250505b60408101511561184c5760408101516101808201516117d69163ffffffff611f7516565b6101808201819052610160820151101561183a57610160810151610180820180516102e084015190839003026102c08401819052610260840181905291905260808201516118299163ffffffff611f7516565b60808201526000604082015261184c565b6102e081015160408201510260a08201525b6102208101516118ed576001610120820152426101c082015260a0810151606082015161187e9163ffffffff611f7516565b61010082018190526101e08201516101a0830152600a60068202819004610200840181905260198054600790940292909204928301909155601e805490920190915560808201516118d49163ffffffff611f7516565b6080820152610200810151600d80549091019055611968565b80516001600160a01b039081166000908152600360208181526040808420600d0154610100870152855190941683525220600a01546101a082015261028081015115156001141561195f576001816101e0015103816102200151141561195a576101208101805160010190525b611968565b60016101208201525b60a081015160608201516119819163ffffffff611f7516565b610140820181905261032082015161199e9163ffffffff611f7516565b6103208201526101408101516102408201516119bf9163ffffffff611f7516565b6102408201526101408101516103008201516119e09163ffffffff611f7516565b6103008201526101408101516016546119fe9163ffffffff611f7516565b601655610140810151600c54611a199163ffffffff611f7516565b600c558051610180820151611a3391309160008080611f87565b5080516001600160a01b0316600090815260036020819052604082206101c0840151600b8201556101a0840151600a8201556101e0840151600982015542600f820155610100840151600d82015561028084015160078201805460ff1916911515919091179055610120840151600c820155610320840151600282015561024084015160088201556103008401519181019190915590611ad2906120f1565b30600090815260026020526040902054611af457611af4826101e00151612171565b81600001516001600160a01b03167fa03b5c57f1b91416f3e1bdc7340369095b63e55a3b37799d33c0092f5b84960c8361014001518461020001518560a00151866102600151600088610180015189604001518a6101e001518b60800151604051808a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390a2608082015115611be857815160808301516040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015611be6573d6000803e3d6000fd5b505b5050565b600080600080600080600080600080600080600060175460036000336001600160a01b03166001600160a01b03168152602001908152602001600020600f0154118015611c4c575060125433600090815260036020526040902060090154145b15611c6c5733600090815260036020819052604090912001549150611c71565b600091505b601754336000908152600360205260409020600e0154118015611ca7575060125433600090815260036020526040902060060154145b15611cc357336000908152600360205260409020549350611cc8565b600093505b601754336000908152600360205260409020600f0154118015611cfe575060125433600090815260036020526040902060090154145b15611d1d57336000908152600360205260409020600201549450611d22565b600094505b3360009081526003602052604090206001810154600d90910154611d4c9190600a906006026103f9565b3360009081526003602052604090206004810154600d90910154919d50611d7891600a906007026103f9565b955081601d54601f548481611d8957fe5b3360009081526002602052604090205491900490030201975085881115611db4578588039750611db9565b600097505b600a881015611dc757600097505b6000809050600d54601e5401601954601654011115611df15750600d54601e546019546016540103035b80471115611e03578047039750611e08565b600097505b5050336000908152600360205260409020600d810154600c82015460088301546005840154600b90940154929f50909c509a50909850909192939495969798999a9b9c565b6000806000806000806000806000806000806000600d54601e5401601954601654011115611e8b57600d54601e546019546016540103039950611e90565b600099505b601254600d5430600090815260026020526040812054601f544793928f9291611ec090839063ffffffff611f4716565b601f54601d54600454600c54601354601160009054906101000a900460ff168797509c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b600082821115611f1a57600080fd5b508082035b92915050565b6000808211611f3357600080fd5b6000828481611f3e57fe5b04949350505050565b600082611f5657506000611f1f565b82820282848281611f6357fe5b0414611f6e57600080fd5b9392505050565b600082820183811015611f6e57600080fd5b6001600160a01b038616600090815260026020526040812054611fb0908663ffffffff611f0b16565b6001600160a01b0380891660009081526002602052604090209190915586163014156120565760018415151415612028576001600160a01b03861660009081526002602052604090205461200a908463ffffffff611f7516565b6001600160a01b03871660009081526002602052604090205561203b565b6001600160a01b03861660005260026020525b60005461204e908363ffffffff611f0b16565b600055612099565b6001600160a01b03861660009081526002602052604090205461207f908663ffffffff611f7516565b6001600160a01b0387166000908152600260205260409020555b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35060019695505050505050565b6001811515141561214e5760115460ff1661211c576011805460ff1916600117905542600a55612149565b600a5462127500014211156121495760048054600101905561213e6000612171565b6011805460ff191690555b61216e565b60115460ff1615156001141561216e576011805460ff191690556000600a555b50565b6121796121ad565b6006805460ff191690556001810160125580156121a2576121a06611c37937e0800061222b565b505b61216e60125461227a565b60026012541180156121c2575060065460ff16155b80156121d1575060115460ff16155b15612229576009544710612229576006805460ff19166001908117909155546009546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561216e573d6000803e3d6000fd5b565b3060009081526002602052604081205461224b908363ffffffff611f7516565b306000908152600260205260408120919091555461226f908363ffffffff611f7516565b600055506001919050565b601281905560018114156122a357600a601f819055601d5566b1a2bc2ec50000600b5560006009555b806002141561230157600b54600e556000601055601f546064606e820204601b819055816122cd57fe5b0460088190556007819055601b5401601f819055601d8190556611c37937e0800002600b819055600e540160155560006009555b600281111561243657601f54601c819055601d8054601a55600b54600555601554600e55600754601055601b8054909155606e9091029081905560641061235657600a601c54600b028161235157fe5b04601b555b6064601b54111561238457601b80546103e80290819055600a9061271090046005018161237f57fe5b04601b555b601c54601b5403600881905560650260078190556064106123b9576064600854606502816123ae57fe5b601054919004016007555b606460075411156123ed57600780546103e80290819055600a906127109004600501816123e257fe5b601054919004016007555b60078054601b5401601f8190556611c37937e08000908102600b819055601d549091026018819055600e5490910103601555600554600a910204601854600e5403036009819055505b6000601e819055601681905542601755601d54601f54604051919290917f80123097a76fe2b82a8a76c7c41e432f73fce3311a85c3ca296fdfa52f6d57d89190a350565b604051806104e0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180610340016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152509056fea26469706673582212204d171d5c839471a59041e795d980fcf08ee0c20bbaf97788bf27de7be9ac9a5764736f6c63430006040033

Deployed Bytecode Sourcemap

1600:35747:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;1666:51:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1666:51:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1666:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1805:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1805:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;1766:32;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1766:32:0;;;:::i;19901:16165::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19901:16165:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19901:16165:0;;;;;;;;;;;;;;:::i;:::-;;36663:117;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36663:117:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;36663:117:0;-1:-1:-1;;;;;36663:117:0;;:::i;1724:35::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1724:35:0;;;:::i;13559:6332::-;;;:::i;9920:2486::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9920:2486:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9085:827;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9085:827:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1666:51;;;;;;;;;;;;;;-1:-1:-1;;;1666:51:0;;;;:::o;1805:23::-;;;;:::o;1766:32::-;1796:2;1766:32;:::o;19901:16165::-;20024:1;20009:14;:16;:34;;;;20042:1;20027:14;:16;20009:34;20001:43;;12:1:-1;9;2:12;20001:43:0;20088:10;20079:20;;;;:8;:20;;;;;;20063:36;;;20055:45;;12:1:-1;9;2:12;20055:45:0;20111:21;;:::i;:::-;20157:10;20143:24;;;:13;20193:20;;;:5;:20;;;;;;;;:33;;;;;20178:14;;;:48;;;20262:13;;-1:-1:-1;;;;;20256:20:0;;;;;;;;;;;:37;;;;;20237:18;;;:56;20324:17;;20304:19;;;:37;20375:20;;20352:22;;;:43;20437:28;;20406:30;;;:59;20506:27;;20476:29;;;:57;20562:15;;20544:17;;;:33;20614:23;;-1:-1:-1;20588:25:0;;:49;20679:13;;20673:20;;;;;;;;;;:43;;;-1:-1:-1;20648:24:0;;:68;20767:13;;20761:20;;;;;;;;;;:52;;;-1:-1:-1;20727:33:0;;:86;;;20852:14;;20851:60;;20256:37;20867:1;20852:16;:19;;;20851:60;:25;:60;:::i;:::-;20824:26;;;:87;20958:13;;-1:-1:-1;;;;;20952:20:0;;;;;:5;:20;;;;;:48;;;20922:29;;;:78;;;21035:14;;;;21034:56;;20952:48;21052:2;;21050:1;21035:16;:19;;21034:56;21011:22;;;:79;21111:21;21101:9;;;:31;21165:19;;21143:21;;;:41;21240:19;;;;21204:13;;-1:-1:-1;;;;;21198:20:0;-1:-1:-1;21198:20:0;;;:5;:20;;;;;:40;;;:61;:119;;;;-1:-1:-1;21295:22:0;;;;21267:13;;-1:-1:-1;;;;;21261:20:0;;;;;:5;:20;;;;;:32;;;:56;;21198:119;21195:532;;;21372:13;;-1:-1:-1;;;;;21366:20:0;;;;;;;:5;:20;;;;;;;;:51;;;21333:32;;;:84;21470:13;;21464:20;;;;;;;;;;:50;;;21432:31;;;:82;21562:13;;21556:20;;;;;;;;;;;:50;;21529:26;;;:77;21648:4;21621:26;;;:31;21195:532;;;21710:5;21683:26;;;:32;21195:532;21783:19;;;;21746:13;;-1:-1:-1;;;;;21740:20:0;;;;;:5;:20;;;;;:41;;;:62;:121;;;;-1:-1:-1;21839:22:0;;;;21810:13;;-1:-1:-1;;;;;21804:20:0;;;;;:5;:20;;;;;:33;;;:57;;21740:121;21737:242;;;21919:13;;-1:-1:-1;;;;;21913:20:0;;;;;:5;:20;;;;;;;;:54;21877:35;;;:90;21737:242;22064:15;;22036:27;;:43;22012:23;;21992:19;;:43;:87;21989:249;;;22173:15;;22145:27;;22121:23;;22101:19;;:43;:71;:87;22095:5;;;:93;21989:249;;;22225:1;22219:5;;;:7;21989:249;22386:26;;;;22356:29;;;;22323:30;;;;22386:26;22323:30;22296:57;;;;22280:13;;-1:-1:-1;;;;;22271:23:0;;;;;:8;:23;;;;;;22296:57;;;22271:83;;22270:115;:142;22248:21;;;:164;22437:5;;;;22426:9;;;;:16;22423:1384;;22493:1;:5;;;22483:1;:9;;;:15;22461:1;:21;;;:37;22458:638;;;22542:1;:18;;;22521:1;:19;;;:39;22518:563;;;22625:1;:31;;;22619:1;:5;;;22609:1;:9;;;:15;:47;22587:1;:21;;;:69;22584:193;;;22722:31;;;;22716:5;;;;22706:9;;;;:15;:47;22684:21;;;:69;22584:193;22518:563;;;22887:1;:31;;;22864:1;:22;;;22858:1;:5;;;22848:1;:9;;;:15;:38;:70;22826:1;:21;;;:92;22823:239;;;23007:31;;;;22984:22;;;;22978:5;;;;22968:9;;;;:15;:38;:70;22946:21;;;:92;22823:239;22423:1384;;;23161:1;:22;;;23129:1;:31;;;:54;23126:418;;;23228:1;:31;;;23206:1;:21;;;:53;23203:153;;;23305:31;;;;23283:21;;;:53;23203:153;23126:418;;;23419:1;:22;;;23397:1;:21;;;:44;23394:135;;;23487:22;;;;23465:21;;;:44;23394:135;23593:1;:26;;;23583:1;:9;;;:36;23561:1;:21;;;:58;23558:155;;;23671:26;;;;23661:9;;;;:36;23639:21;;;:58;23558:155;23750:1;23730;:19;;;:21;23727:69;;;23776:4;23771;;;:9;23727:69;23835:1;23820:14;:16;:35;;;;-1:-1:-1;23838:17:0;;23820:35;23817:1377;;;23871:18;;;:33;;;23922:26;;;;:32;;23950:4;23922:32;23919:1115;;;24037:30;;;;24006:26;;;;:62;;;:30;:62;:::i;:::-;23974:31;;;:94;;;24090:18;;;;:50;24087:623;;;24222:31;;;;24199:18;;;;:55;;;:22;:55;:::i;:::-;24164:34;;;:90;;;24346:29;;;;24307:69;;24164:90;24307:69;:38;:69;:::i;:::-;24277:29;;;:99;24087:623;;;24473:30;;;;24450:18;;;;:54;;;:22;:54;:::i;:::-;24423:26;;;:81;24559:18;;;;24527:31;;;:50;-1:-1:-1;24600:29:0;;;:31;;;24654:34;;;:36;24087:623;23919:1115;;;24775:1;24748:26;;;:28;;;24795:31;;;:33;24882:18;;;;24847:34;;;:53;;;24988:29;;;;24949:69;;24882:18;24949:69;:38;:69;:::i;:::-;24919:29;;;:99;23919:1115;25093:29;;;;25062:26;;;;:61;;;:30;:61;:::i;:::-;25048:13;;;:75;23817:1377;;;25154:13;;;:28;;;23817:1377;25221:1;:21;;;25207:1;:13;;;:35;25204:101;;;25272:21;;;;25258:13;;;:35;25204:101;25318:22;;;;:24;25315:265;;25383:1;:22;;;25360:1;:21;;;:45;25357:212;;25469:22;;;;25447:21;;;;;:44;;;;25425:66;;25357:212;;;25552:1;25530:21;;;:23;25357:212;25615:3;25593:1;:21;;;:25;25590:79;;;25656:1;25634:21;;;:23;25590:79;25682:26;;;;:52;;;25733:1;25710;:22;;;:24;25682:52;25679:191;;;25767:1;:21;;;25753:1;:13;;;:35;25750:109;;;25822:21;;;;25808:13;;;:35;25750:109;25883:26;;;;:32;;25911:4;25883:32;25880:1020;;;25994:30;;;;25963:26;;;;:62;;;:30;:62;:::i;:::-;25931:31;;;:94;26057:26;;;;26043:13;;;;:40;26040:570;;;26152:26;;;;26134:13;;;;:45;;;:17;:45;:::i;:::-;26104:29;;;:75;;;26267:29;;;;26233:64;;26104:75;26233:64;:33;:64;:::i;:::-;26198:34;;;:99;26040:570;;;26363:13;;;;26336:26;;;:40;;;26458:30;;;;26427:62;;26363:13;26427:62;:30;:62;:::i;:::-;26395:31;;;:94;26538:1;26508:29;;;:31;;;26558:34;;;:36;26040:570;25880:1020;;;26667:1;26640:26;;;:28;;;26683:31;;;:33;26761:13;;;;26731:29;;;:43;;;26858:29;;;;26824:64;;26761:13;26824:64;:33;:64;:::i;:::-;26789:34;;;:99;25880:1020;26934:4;26913:25;;;;:51;;;;;26963:1;26940;:22;;;:24;26913:51;26910:1151;;;26997:1;:21;;;26983:1;:13;;;:35;26980:1070;;;27071:21;;;;27057:13;;;;:35;27038:18;;;:54;;;27114:22;;;;:41;27111:129;;;27198:22;;;;27179:18;;;:41;27111:129;27322:18;;;;27288:29;;;;:53;;;:33;:53;:::i;:::-;27258:29;;;:83;27363:26;;;;:28;27360:675;;27460:1;:26;;;27437:1;:22;;;:49;27418:1;:18;;;:68;27415:601;;;27583:22;;;;27556:26;;;;27537:18;;;;:45;;:68;;;;27514:22;;;:91;;;-1:-1:-1;27632:162:0;;;27740:26;;;;27717:22;;;:49;27632:162;27888:22;;;;27854:33;;;;;:56;;27820:90;;27951:13;;;;:41;;;:17;:41;:::i;:::-;27937:13;;;:55;27415:601;28091:4;28074:23;;;;:8;:23;;;;;;28113:2;;28098:14;;28074:38;:41;28071:158;;;28178:3;28154:1;:22;;;28140:1;:13;;;:36;28139:42;;;;;;28131:7;;;:50;;;28196:13;;;:21;28071:158;28252:1;:5;;;28242:1;:9;;;:15;:26;;;;;28267:1;28259;:7;;;:9;28242:26;28239:1377;;;28319:1;:5;;;28309:1;:9;;;:15;28301:1;:7;;;28287:1;:13;;;:21;:37;28284:1321;;;28358:1;28344:13;;;:15;28385:7;;;;28378:6;;;:14;28414:34;;;;:36;28411:1179;;28509:1;:29;;;28502:1;:6;;;:36;;;;;;28474:27;;;:64;;;28564:34;;;;:63;28561:668;;28725:27;;;;28690:34;;;;;:62;;;;28655:97;;28561:668;;;28868:34;;;;;28840:27;;;;:62;28833:6;;;:69;;;-1:-1:-1;28929:36:0;;;29057:30;;;;29027:29;;;;29057:30;;29020:36;29057:30;29020:67;;;;;28992:27;;;:95;;;29146:31;;;;;:59;;;;29114:91;;28561:668;28411:1179;;;29310:1;:30;;;29303:1;:6;;;:37;;;;;;29275:27;;;:65;;;29368:31;;;;:60;29365:206;;29520:27;;;;29488:31;;;;;:59;;;;29456:91;;29365:206;29640:1;:5;;;29629:1;:9;;;:16;29626:3341;;29664:7;;;;:9;29661:1269;;29707:1;29693:13;;;:15;29734:7;;;;29727:6;;;:14;29763:34;;;;:36;29760:1155;;29858:1;:29;;;29851:1;:6;;;:36;;;;;;29823:27;;;:64;;;29913:34;;;;:63;29910:646;;30078:27;;;;30043:34;;;;;:62;;;;30008:97;;29910:646;;;30195:34;;;;;30167:27;;;;:62;30160:6;;;:69;;;-1:-1:-1;30256:36:0;;;30384:30;;;;30354:29;;;;30384:30;;30347:36;30384:30;30347:67;;;;;30319:27;;;:95;;;30473:31;;;;;:59;;;;30441:91;;29910:646;29760:1155;;;30637:1;:30;;;30630:1;:6;;;:37;;;;;;30602:27;;;:65;;;30693:31;;;;:60;30690:206;;30845:27;;;;30813:31;;;;;:59;;;;30781:91;;30690:206;30961:1;:9;;;30947:1;:13;;;:23;30944:2012;;;31015:9;;;;30997:13;;;;:27;31011:3;30997:27;30990:6;;;:34;31046;;;;:36;31043:1343;;31136:1;:29;;;31129:1;:6;;;:36;;;;;;31106:22;;;:59;;;31191:34;;;;:58;31188:738;;31347:22;;;;31312:34;;;;;:57;;;;31277:92;;;;31461:29;;;;31426:64;31396:29;;;:94;31188:738;;;31575:34;;;;;31552:22;;;;:57;31545:6;;;:64;;;-1:-1:-1;31636:36:0;;;31759:30;;;;31729:29;;;;31759:30;;31722:36;31759:30;31722:67;;;;;31699:22;;;:90;;;31848:31;;;;;:54;;;;31816:86;;31188:738;31043:1343;;;32002:1;:30;;;31995:1;:6;;;:37;;;;;;31972:22;;;:60;;;32058:31;;;;:55;32055:312;;32205:22;;;;32173:31;;;;;:54;;;;32141:86;;;;32313:30;;;;32281:62;-1:-1:-1;32254:26:0;;:89;32055:312;32445:29;;;;32418:26;;;;:56;32404:13;;;:70;;;32511:22;;;;-1:-1:-1;32493:337:0;;32585:22;;;;32571:13;;;;;:36;;;;32557:50;;32493:337;;;32684:13;;;;;32661:22;;;;;:36;;;32654:6;;;:43;;;-1:-1:-1;32720:15:0;;;32781:29;;;32758:52;;32493:337;32865:1;:9;;;32851:1;:13;;;:23;32848:93;;;32912:9;;;;32898:13;;;:23;32848:93;33001:13;;-1:-1:-1;;;;;32995:20:0;32977:17;32995:20;;;:5;:20;;;;;33061:26;;;;33029:31;;;;:58;33026:249;;;33170:26;;;;33138:31;;;;:58;33103:34;;;:93;33026:249;;;33262:1;33227:34;;;:36;33026:249;33314:1;:18;;;33288:1;:25;;;:44;33285:199;;;33398:18;;;;33372:25;;;;:44;33348:23;:68;33285:199;;;33471:1;33447:23;:25;33285:199;33517:1;:19;;;33497:1;:18;;;:39;:102;;;;-1:-1:-1;33577:22:0;;;;33544:13;;-1:-1:-1;;;;;33538:20:0;;;;;:5;:20;;;;;:37;;;:61;;33497:102;33494:359;;;33646:1;:18;;;33618:27;;:46;33615:227;;;33740:1;:18;;;33712:27;;:46;33684:27;:74;;;;33615:227;;;33825:1;33797:27;:29;33615:227;33884:1;:22;;;33866:1;:17;;;:40;33863:175;;;33956:22;;;;33938:17;;;;:40;33922:15;:56;33863:175;;;34025:1;34009:15;:17;33863:175;34073:1;:26;;;34051:1;:21;;;:48;34048:199;;;34157:26;;;;34135:21;;;;:48;34115:19;:68;34048:199;;;34234:1;34214:19;:21;34048:199;34308:34;;;;;34276:31;;;;;:66;;;34257:18;;;:85;;;34402:13;;;;34379:22;;;;34365:13;;;;:36;;:50;;34353:11;;;:62;;;34451:24;;;;;:36;;34426:61;;;;-1:-1:-1;34534:35:0;;;;;:47;;34498:83;;;;34611:18;;;:30;;34592:49;;34678:19;;;;34652:25;;;:45;;;34726:3;34708:17;;;:21;34740:27;;;:52;;;;34803:74;;34925:33;;;;;-1:-1:-1;34888:36:0;;:70;35002:29;;;;-1:-1:-1;34969:32:0;;:62;35056:13;;35105:7;;;;35198:27;;;;35226:22;;;;35047:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35047:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35047:202:0;;;;;;;;;;-1:-1:-1;35047:202:0;;;35293:13;;-1:-1:-1;;;;;35284:23:0;;;;;:8;:23;;;;;;35264:18;;;;35308:1;35284:25;;;35264:45;35260:459;;;35353:13;;-1:-1:-1;;;;;35344:23:0;;;;;;;:8;:23;;;;;;;;;35325:18;;;:42;35428:13;;35419:23;;;;;;;;35386:31;;;;35443:1;35419:25;;;35386:58;35382:153;;;35505:13;;-1:-1:-1;;;;;35496:23:0;;;;;:8;:23;;;;;;35464:31;;;:55;35382:153;35598:13;;-1:-1:-1;;;;;35589:23:0;;;;;:8;:23;;;;;;;;35553:34;;;;35613:1;35589:25;;;35553:61;35549:159;;;35678:13;;-1:-1:-1;;;;;35669:23:0;;;;;:8;:23;;;;;;;;35634:34;;;:58;35549:159;35729:150;35738:1;:13;;;35760:4;35766:1;:18;;;35785:1;:26;;;35812:1;:31;;;35844:1;:34;;;35729:8;:150::i;:::-;-1:-1:-1;35893:4:0;;;;:10;;35899:4;35893:10;35890:54;;;35919:13;35927:4;35919:7;:13::i;:::-;35971:7;;;;35957:13;;;;:21;:23;35954:105;;35996:13;;36033;;;;36019;;;;35996:51;;-1:-1:-1;;;;;35996:22:0;;;;36019:27;;35996:51;;;;;:13;:51;:13;:51;36019:27;35996:22;:51;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35996:51:0;35954:105;19901:16165;;;;;:::o;36663:117::-;-1:-1:-1;;;;;36752:20:0;36721:12;36752:20;;;:8;:20;;;;;;;36663:117::o;1724:35::-;;;;;;;;;;;;;;-1:-1:-1;;;1724:35:0;;;;:::o;13559:6332::-;13602:20;;:::i;:::-;13643:9;13633;;;:19;;;13677:10;13663:24;;13716:13;-1:-1:-1;13698:32:0;;12:1:-1;9;2:12;13698:32:0;13776:4;13759:23;;;;:8;:23;;;;;;13741:17;;;:41;;;13824:28;;13793:30;;;:59;;;13882:69;;13940:10;;13882:53;;13759:23;13882:53;:21;:53;:::i;:::-;:57;:69;:57;:69;:::i;:::-;13871:1;:9;;;:80;;13863:89;;12:1:-1;9;2:12;13863:89:0;14018:1;13972:45;13986:1;:30;;;13972:1;:9;;;:13;;:45;;;;:::i;:::-;:47;13964:56;;12:1:-1;9;2:12;13964:56:0;14051:17;;14031:19;;;:37;;;14102:20;;14079:22;;;:43;14161:13;;-1:-1:-1;;;;;14155:20:0;;;-1:-1:-1;14155:20:0;;;:5;:20;;;;;;;;:40;;;14133:21;;;:62;;;14235:13;;14229:20;;;;;;;;;;:41;;;;;14206:64;;:22;;;:64;14307:19;;14284:21;;-1:-1:-1;;14307:21:0;;;14284:44;14281:337;;;14367:4;14344:22;;;:27;14281:337;;;14428:1;:19;;;14405:1;:21;;;:42;:72;;;;-1:-1:-1;14449:22:0;;;;:28;;14473:4;14449:28;14405:72;14402:205;;;14520:4;14497:22;;;:27;14402:205;;;14586:5;14563:22;;;:28;14402:205;14653:13;;-1:-1:-1;;;;;14647:20:0;;;;;;;:5;:20;;;;;;;;:37;;;14628:18;;;:56;14715:13;;14709:20;;;;;;;;;;:32;;;14695:13;;;:46;14774:13;;14768:20;;;;;;;;;;:34;;;14752:15;;;:50;14852:13;;14846:20;;;;;;;;;;:51;;;14813:32;;;:84;14936:13;;14930:20;;;;;;;:40;;;14908:21;;;:62;15007:19;;;;14984:21;;;;:42;:81;;;;;15043:1;:22;;;15028:1;:13;;;:37;;14984:81;14981:390;;;15137:11;15089:47;15126:1;:9;;;15089:1;:32;;;:36;;:47;;;;:::i;:::-;:59;15081:68;;12:1:-1;9;2:12;15081:68:0;15202:13;;-1:-1:-1;;;;;15196:20:0;;;;;:5;:20;;;;;;;;:50;;15164:31;;;:82;14981:390;;;15310:1;15277:32;;;:34;;;15326:31;;;:33;14981:390;15427:19;;;;15390:13;;-1:-1:-1;;;;;15384:20:0;;;;;:5;:20;;;;;:41;;;:62;:121;;;;-1:-1:-1;15483:22:0;;;;15454:13;;-1:-1:-1;;;;;15448:20:0;;;;;:5;:20;;;;;:33;;;:57;;15384:121;15381:293;;;15531:13;;-1:-1:-1;;;;;15525:20:0;;;;;:5;:20;;;;;:54;15580:2;;15525:57;15521:3;;;:61;;;15605:9;;;;:13;15597:22;;12:1:-1;9;2:12;15597:22:0;15658:3;;;;15644:9;;;;:18;;;:13;:18;:::i;:::-;15634:9;;;:28;15381:293;15712:1;:30;;;15702:1;:9;;;:40;;;;;;15684:17;;;:58;;;15805:9;;;;15774:30;;;;15756:48;;;:58;15753:126;;;15848:17;;;;;15866:1;15848:19;15830:37;;15753:126;15910:1;:17;;;15892:1;:17;;;:35;15889:247;;;16005:17;;;;15987;;;;15955:30;;;;15987:35;;;15955:68;15943:11;;;:80;;;16048:9;;;;:26;;;:13;:26;:::i;:::-;16038:9;;;:36;16107:17;;;;16089;;;:35;15889:247;16160:12;16149:1;:9;;;:23;16146:502;;16199:1;:22;;;16222:8;16199:31;16193:3;:38;16190:447;;16280:5;16259:1;:17;;;16277:2;16259:20;:26;;;;;;16286:1;16259:28;16251:7;;;:36;16190:447;;;16335:1;:22;;;16358:8;16335:31;16329:3;:38;16326:296;;16420:5;16399:1;:17;;;16417:2;16399:20;:26;;;;16326:296;16483:1;:22;;;16506:8;16483:31;16477:3;:38;16474:129;;16572:5;16551:1;:17;;;16569:2;16551:20;:26;;;;;;16578:1;16551:28;16543:7;;;:36;16474:129;16678:1;16661;:15;;;:18;;:55;;;;;16687:1;:18;;;16706:9;16687:28;16681:3;:35;;16661:55;16658:125;;;16766:3;16748:1;:17;;;:21;;;;;;16740:1;:7;;;:29;16770:1;16740:31;16732:1;:7;;:39;;;;;16658:125;16796:7;;;;:9;16793:576;;16861:7;;;;16839:17;;;;:30;;;:21;:30;:::i;:::-;16821:17;;;:48;;;16905:17;;;;-1:-1:-1;16884:474:0;;;17016:17;;;;16998;;;;;16966:30;;;;16998:35;;;;16966:68;16942:23;;;:92;;;17053:21;;;:45;;;17117:35;;;-1:-1:-1;17183:11:0;;;:40;;;:15;:40;:::i;:::-;17171:11;;;:52;17250:1;17242:7;;;:9;16884:474;;;17312:30;;;;17304:7;;;;:38;17290:13;;;:52;16884:474;17382:21;;;;17379:989;;17438:1;17422:15;;;:17;17473:3;17454:18;;;:22;17520:13;;;;17506:9;;;;:28;;;:13;:28;:::i;:::-;17491:14;;;:43;;;17568:19;;;;17549:18;;;:38;17639:2;17637:1;17622:16;;:19;;;17602;;;:39;;;17680:23;;;17719:1;17704:16;;;:19;;;;17680:43;;;17656:67;;;17766:27;;;:47;;;17738:75;;;17840:11;;;;:36;;;:15;:36;:::i;:::-;17828:11;;;:48;17923:19;;;;17907:15;;;:35;;;17891:51;;17379:989;;;17994:13;;-1:-1:-1;;;;;17988:20:0;;;;;;;:5;:20;;;;;;;;:33;;;17973:14;;;:48;18061:13;;18055:20;;;;;;;:37;;;18036:18;;;:56;18110:22;;;;:28;;18134:4;18110:28;18107:250;;;18208:1;18188;:19;;;:21;18165:1;:21;;;:44;18162:124;;;18249:15;;;;;18265:1;18249:17;18233:33;;18162:124;18107:250;;;18340:1;18324:15;;;:17;18107:250;18409:13;;;;18395:9;;;;:28;;;:13;:28;:::i;:::-;18378:16;;;:45;;;18467:32;;;;:54;;;:36;:54;:::i;:::-;18434:32;;;:87;18580:16;;;;18554:21;;;;:43;;;:25;:43;:::i;:::-;18532:21;;;:65;18676:16;;;;18640:31;;;;:53;;;:35;:53;:::i;:::-;18608:31;;;:85;18748:16;;;;18724:19;;:41;;;:23;:41;:::i;:::-;18704:19;:61;18812:16;;;;18792:15;;:37;;;:19;:37;:::i;:::-;18776:15;:53;18863:13;;18877:17;;;;18840:65;;18857:4;;18863:13;;;18840:8;:65::i;:::-;-1:-1:-1;18940:13:0;;-1:-1:-1;;;;;18934:20:0;18916:17;18934:20;;;:5;:20;;;;;;;18987:18;;;;18965:21;;;:40;19038:18;;;;19016:21;;;:40;19092:19;;;;19067:24;;;:44;19139:3;19122:16;;;:20;19171:14;;;;19153:17;;;:32;19222:22;;;;19196:25;;;:48;;-1:-1:-1;;19196:48:0;;;;;;;;;;19274:15;;;;19255:18;;;:34;19336:32;;;;-1:-1:-1;19300:35:0;;:68;19404:21;;;;-1:-1:-1;19379:24:0;;:46;19471:31;;;;19436:34;;;:66;;;;18934:20;19513:14;;:7;:14::i;:::-;19558:4;19541:23;;;;:8;:23;;;;;;19538:86;;19583:29;19592:1;:19;;;19583:8;:29::i;:::-;19647:1;:13;;;-1:-1:-1;;;;;19639:155:0;;19661:1;:16;;;19678:1;:19;;;19698:1;:13;;;19712:1;:21;;;19734:1;19736;:17;;;19754:1;:7;;;19762:1;:19;;;19782:1;:11;;;19639:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19808:11;;;;:13;19805:79;;19837:13;;19860:11;;;;19837:35;;-1:-1:-1;;;;;19837:22:0;;;;:35;;;;;19860:11;19837:13;:35;:13;:35;19860:11;19837:22;:35;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19837:35:0;19805:79;13559:6332;;:::o;9920:2486::-;9960:17;9978:29;10008:18;10027:24;10052:27;10080:24;10105:25;10131;10157:10;10168;10179:14;10194:22;10217:21;10283:20;;10253:5;:17;10259:10;-1:-1:-1;;;;;10253:17:0;-1:-1:-1;;;;;10253:17:0;;;;;;;;;;;;:29;;;:50;:108;;;;-1:-1:-1;10344:17:0;;10311:10;10305:17;;;;:5;:17;;;;;:37;;;:56;10253:108;10250:255;;;10401:10;10395:17;;;;:5;:17;;;;;;;;:47;;;-1:-1:-1;10250:255:0;;;10492:1;10474:19;;10250:255;10549:20;;10524:10;10518:17;;;;:5;:17;;;;;:30;;;:51;:110;;;;-1:-1:-1;10611:17:0;;10577:10;10571:17;;;;:5;:17;;;;;:38;;;:57;10518:110;10515:240;;;10660:10;10654:17;;;;:5;:17;;;;;:51;;-1:-1:-1;10515:240:0;;;10742:1;10736:7;;10515:240;10798:20;;10774:10;10768:17;;;;:5;:17;;;;;:29;;;:50;:108;;;;-1:-1:-1;10859:17:0;;10826:10;10820:17;;;;:5;:17;;;;;:37;;;:56;10768:108;10765:231;;;10904:10;10898:17;;;;:5;:17;;;;;:48;;;;-1:-1:-1;10765:231:0;;;10983:1;10977:7;;10765:231;11079:10;11073:17;;;;:5;:17;;;;;:49;;;;11032:30;;;;;11031:92;;11073:49;11065:2;;11063:1;11032:32;:35;;11031:92;11203:10;11197:17;;;;:5;:17;;;;;:45;;;;11156:30;;;;;11006:117;;-1:-1:-1;11155:88:0;;11189:2;;11187:1;11156:32;:35;;11155:88;11134:109;;11376:17;11348:27;;11317:28;;11298:17;11297:48;;;;;11284:10;11275:20;;;;:8;:20;;;;;;11297:48;;;11275:71;;11274:101;:119;;-1:-1:-1;11407:40:0;;;11404:183;;;11503:20;11483:19;:40;11463:60;;11404:183;;;11574:1;11554:21;;11404:183;11621:2;11601:19;:22;11597:75;;;11659:1;11639:21;;11597:75;11682:8;11691:1;11682:10;;11778:15;;11750:27;;:43;11726:23;;11706:19;;:43;:87;11703:209;;;-1:-1:-1;11885:15:0;;11857:27;;11833:23;;11813:19;;:43;:71;:87;11703:209;11947:3;11925:21;:25;11922:155;;;12009:3;11987:21;:25;11966:46;;11922:155;;;12064:1;12043:22;;11922:155;-1:-1:-1;;12100:10:0;12094:17;;;;:5;:17;;;;;:30;;;;12150:31;;;;12182:37;;;;12220:40;;;;12363:34;;;;;12094:30;;-1:-1:-1;12150:31:0;;-1:-1:-1;12182:37:0;-1:-1:-1;12220:40:0;;-1:-1:-1;9920:2486:0;;;;;;;;;;;;;:::o;9085:827::-;9132:8;9141;9150:20;9171:8;9180:20;9201:32;9234:34;9269:22;9292:21;9314:10;9325:20;9346:23;9370:4;9461:15;;9433:27;;:43;9409:23;;9389:19;;:43;:87;9386:247;;;9570:15;;9542:27;;9518:23;;9498:19;;:43;:71;:87;9492:93;;9386:247;;;9620:1;9616:5;;9386:247;9650:17;;9690:15;;9727:4;9710:23;;;;:8;:23;;;;;;9764:28;;9668:21;;9690:15;9706:3;;9710:23;9736:57;;9710:23;;9736:57;:27;:57;:::i;:::-;9794:28;;9823:27;;9851:5;;9857:15;;9873:18;;9892:11;;;;;;;;;;;9643:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9085:827;;;;;;;;;;;;;:::o;1207:132::-;1265:7;1294:1;1289;:6;;1281:15;;12:1:-1;9;2:12;1281:15:0;-1:-1:-1;1313:5:0;;;1207:132;;;;;:::o;1071:::-;1129:7;1157:1;1153;:5;1145:14;;12:1:-1;9;2:12;1145:14:0;1167:9;1181:1;1177;:5;;;;;;;1071:132;-1:-1:-1;;;;1071:132:0:o;888:179::-;946:7;966:6;962:37;;-1:-1:-1;990:1:0;983:8;;962:37;1015:5;;;1019:1;1015;:5;:1;1035:5;;;;;:10;1027:19;;12:1:-1;9;2:12;1027:19:0;1060:1;888:179;-1:-1:-1;;;888:179:0:o;1343:132::-;1401:7;1427:5;;;1447:6;;;;1439:15;;12:1:-1;9;2:12;36074:581:0;-1:-1:-1;;;;;36221:15:0;;36181:12;36221:15;;;:8;:15;;;;;;:27;;36241:6;36221:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;36205:15:0;;;;;;;:8;:15;;;;;:43;;;;36263:18;;36276:4;36263:18;36260:323;;;36309:4;36301:12;;;;36298:155;;;-1:-1:-1;;;;;36347:13:0;;;;;;:8;:13;;;;;;:24;;36365:5;36347:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;36333:13:0;;;;;;:8;:13;;;;;:38;36298:155;;;-1:-1:-1;;;;;36424:13:0;;;;:8;:13;;36298:155;36479:11;;:22;;36495:5;36479:22;:15;:22;:::i;:::-;36467:11;:34;36260:323;;;-1:-1:-1;;;;;36546:13:0;;;;;;:8;:13;;;;;;:25;;36564:6;36546:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;36532:13:0;;;;;;:8;:13;;;;;:39;36260:323;36613:3;-1:-1:-1;;;;;36598:26:0;36607:5;-1:-1:-1;;;;;36598:26:0;;36617:6;36598:26;;;;;;;;;;;;;;;;;;-1:-1:-1;36643:4:0;36074:581;;;;;;;;:::o;12708:542::-;12761:4;12756:9;;;;12753:490;;;12784:11;;;;12781:312;;12822:11;:16;;-1:-1:-1;;12822:16:0;12834:4;12822:16;;;12873:3;12857:15;:19;12781:312;;;12922:15;;12938:9;12922:25;12918:3;:29;12915:163;;;12977:5;;;12983:1;12977:7;12971:13;;13007:11;-1:-1:-1;13007:8:0;:11::i;:::-;13041;:17;;-1:-1:-1;;13041:17:0;;;12915:163;12753:490;;;13126:11;;;;:17;;:11;:17;13123:109;;;13163:11;:17;;-1:-1:-1;;13163:17:0;;;13175:5;13199:15;:17;13123:109;12708:542;:::o;12414:286::-;12475:13;:11;:13::i;:::-;12499;:19;;-1:-1:-1;;12499:19:0;;;;12547:20;;12529:17;:38;12581:20;;12578:73;;12617:22;12622:16;12617:4;:22::i;:::-;;12578:73;12661:31;12674:17;;12661:12;:31::i;13262:289::-;13324:1;13306:17;;:19;:41;;;;-1:-1:-1;13327:13:0;;;;:20;13306:41;:61;;;;-1:-1:-1;13349:11:0;;;;:18;13306:61;13303:241;;;13409:14;;13386:21;:37;13383:150;;13443:13;:18;;-1:-1:-1;;13443:18:0;13457:4;13443:18;;;;;;13480:12;13502:14;;13480:37;;-1:-1:-1;;;;;13480:12:0;;;;:37;;;;;13502:14;13443:13;13480:37;13443:13;13480:37;13502:14;13480:12;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;13383:150:0;13262:289::o;36788:194::-;36888:4;36831;36871:23;;;:8;:23;;;;;;:35;;36899:6;36871:35;:27;:35;:::i;:::-;36864:4;36847:23;;;;:8;:23;;;;;:59;;;;36929:11;:23;;36945:6;36929:23;:15;:23;:::i;:::-;36917:11;:35;-1:-1:-1;36970:4:0;36788:194;;;:::o;6197:2880::-;6262:17;:36;;;6332:1;6312:21;;6309:207;;;6378:2;6349:28;:31;;;6395:27;:30;6456:17;6440:15;:33;-1:-1:-1;6488:14:0;:16;6309:207;6529:18;6549:1;6529:21;6526:644;;;6583:15;;6566:16;:32;-1:-1:-1;6613:16:0;:18;6671:28;;6704:3;6700;6671:32;;:36;6646:24;:61;;;6671:28;6736:53;;;;;6722:13;:67;;;6804:13;:27;;;6875:24;;:38;6846:28;:67;;;6928:27;:56;;;7015:16;:45;6999:15;:61;;;7111:16;;7095:32;7075:19;:52;-1:-1:-1;7142:14:0;:16;6526:644;7202:1;7183:18;:20;7180:1701;;;7245:28;;7219:25;:54;;;7313:27;;;7288:24;:52;7368:15;;-1:-1:-1;7355:28:0;-1:-1:-1;7415:19:0;7398:16;:36;-1:-1:-1;7466:13:0;7449:16;:30;7522:24;;;7494:52;;;7612:3;7586:29;;;7561:54;;;;7659:3;-1:-1:-1;7630:126:0;;7738:2;7709:25;;7735:2;7709:28;:31;;;;;;7684:24;:56;7630:126;7798:3;7773:24;;:28;7770:206;;;7847:24;;;7872:5;7847:30;7822:55;;;;7958:2;;7948:5;;7923:30;7955:1;7922:34;7921:39;;;;;;7896:24;:64;7770:206;8029:25;;8004:24;;:50;7990:13;:64;;;8097:3;8083:17;8069:13;:31;;;8133:3;-1:-1:-1;8115:112:0;;8207:3;8189:13;;8203:3;8189:17;:21;;;;;8171:16;;8189:21;;;8171:40;8157:13;:54;8115:112;8258:3;8244:13;;:17;8241:213;;;8295:13;;;8309:5;8295:19;8281:33;;;;8373:2;;8363:5;;8349:19;8370:1;8348:23;8347:28;;;;;8408:16;;8347:28;;;8408:30;8333:13;8394:44;8241:213;8522:13;;;8497:24;;:38;8468:28;:67;;;8566:16;:45;;;8550:15;:61;;;8665:27;;8648:44;;;8626:21;:66;;;8743:16;;8727:32;;;:54;8707:19;:74;-1:-1:-1;8851:12:0;-1:-1:-1;;8851:14:0;:17;8828:21;;8811:16;;:38;:58;8796:14;:73;;;;7180:1701;8919:1;8891:27;:29;;;8931:19;:21;;;8984:3;8963:20;:24;9041:27;;9012:28;;9003:66;;9041:27;;9012:28;;9003:66;;8919:1;9003:66;6197:2880;:::o;1600:35747::-;;;;;;;;;;-1:-1:-1;;;;;1600:35747:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1600:35747:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://4d171d5c839471a59041e795d980fcf08ee0c20bbaf97788bf27de7be9ac9a57

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.