FTM Price: $0.704795 (+2.37%)
 

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo0 FTM

FTM Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Initial491891252022-10-15 0:36:10725 days ago1665794170IN
0x142b1231...432019D11
0 FTM0.000193282.5
Stake Stablecoin...491880172022-10-15 0:17:23725 days ago1665793043IN
0x142b1231...432019D11
0 FTM0.000466742.5
Withdraw Initial491872652022-10-15 0:02:25725 days ago1665792145IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial491447512022-10-14 9:48:16725 days ago1665740896IN
0x142b1231...432019D11
0 FTM0.000200032.50879355
Withdraw Divs491212182022-10-14 2:35:22726 days ago1665714922IN
0x142b1231...432019D11
0 FTM0.000240662.5
Stake Stablecoin...491170922022-10-14 1:07:14726 days ago1665709634IN
0x142b1231...432019D11
0 FTM0.005149919.43
Withdraw Initial490530422022-10-13 3:17:57727 days ago1665631077IN
0x142b1231...432019D11
0 FTM0.000110551.34562324
Withdraw Divs490386692022-10-12 22:39:32727 days ago1665614372IN
0x142b1231...432019D11
0 FTM0.000277012.5
Withdraw Initial490127142022-10-12 14:11:53727 days ago1665583913IN
0x142b1231...432019D11
0 FTM0.000193252.5
Withdraw Initial490126832022-10-12 14:11:19727 days ago1665583879IN
0x142b1231...432019D11
0 FTM0.0011791315.25108706
Withdraw Divs490126582022-10-12 14:10:27727 days ago1665583827IN
0x142b1231...432019D11
0 FTM0.000242642.5
Withdraw Ref Bon...490034042022-10-12 11:09:45727 days ago1665572985IN
0x142b1231...432019D11
0 FTM0.000073331.77898537
Withdraw Initial489265302022-10-11 10:43:35728 days ago1665485015IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489265052022-10-11 10:43:11728 days ago1665484991IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489264762022-10-11 10:42:44728 days ago1665484964IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489264402022-10-11 10:42:09728 days ago1665484929IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489264052022-10-11 10:41:34728 days ago1665484894IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489263402022-10-11 10:40:32728 days ago1665484832IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489263112022-10-11 10:40:04728 days ago1665484804IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489262772022-10-11 10:39:29728 days ago1665484769IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489262422022-10-11 10:38:49728 days ago1665484729IN
0x142b1231...432019D11
0 FTM0.000193282.5
Withdraw Initial489262202022-10-11 10:38:12728 days ago1665484692IN
0x142b1231...432019D11
0 FTM0.000195062.52301956
Withdraw Initial489261902022-10-11 10:37:42728 days ago1665484662IN
0x142b1231...432019D11
0 FTM0.000195062.52301956
Withdraw Initial489261582022-10-11 10:37:11728 days ago1665484631IN
0x142b1231...432019D11
0 FTM0.000195062.52301956
Withdraw Initial489261152022-10-11 10:36:30728 days ago1665484590IN
0x142b1231...432019D11
0 FTM0.000238182.52301956
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
420143322022-07-04 18:10:01827 days ago1656958201  Contract Creation0 FTM
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WealthMountainFTM

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at ftmscan.com on 2022-07-04
*/

pragma solidity ^0.8.13;


interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size; assembly {
            size := extcodesize(account)
        } return size > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target,bytes memory data,string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target,bytes memory data,uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target,bytes memory data,uint256 value,string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(address target,bytes memory data,string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(address target,bytes memory data,string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    function verifyCallResult(bool success,bytes memory returndata,string memory errorMessage) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
library SafeERC20 {
    using Address for address;
    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }
    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }
    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function safeIncreaseAllowance(IERC20 token,address spender,uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }
    function safeDecreaseAllowance(IERC20 token,address spender,uint256 value) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }
    function _callOptionalReturn(IERC20 token, bytes memory data) private {   
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }
}
//libraries
struct User {
    uint256 startDate;
    uint256 divs;
    uint256 refBonus;
    uint256 totalInits;
    uint256 totalWiths;
    uint256 totalAccrued;
    uint256 lastWith;
    uint256 timesCmpd;
    uint256 keyCounter;
    Depo [] depoList;
}
struct Depo {
    uint256 key;
    uint256 depoTime;
    uint256 amt;
    address reffy;
    bool initialWithdrawn;
}
struct Main {
    uint256 ovrTotalDeps;
    uint256 ovrTotalWiths;
    uint256 users;
    uint256 compounds;
}
struct DivPercs{
    uint256 daysInSeconds; // updated to be in seconds
    uint256 divsPercentage;
}
struct FeesPercs{
    uint256 daysInSeconds;
    uint256 feePercentage;
}
contract WealthMountainFTM {
    using SafeMath for uint256;
    uint256 constant launch = 1657296000;
  	uint256 constant hardDays = 86400;
    uint256 constant percentdiv = 1000;
    uint256 refPercentage = 30;
    uint256 devPercentage = 100;
    mapping (address => mapping(uint256 => Depo)) public DeposMap;
    mapping (address => User) public UsersKey;
    mapping (uint256 => DivPercs) public PercsKey;
    mapping (uint256 => FeesPercs) public FeesKey;
    mapping (uint256 => Main) public MainKey;
    using SafeERC20 for IERC20;
    IERC20 public USDC;
    address public owner;

    constructor() {
            owner = msg.sender;
            PercsKey[10] = DivPercs(864000, 10);
            PercsKey[20] = DivPercs(1728000, 20);
            PercsKey[30] = DivPercs(2592000, 30);
            PercsKey[40] = DivPercs(3456000, 40);
            PercsKey[50] = DivPercs(4320000, 50);
            FeesKey[10] = FeesPercs(864000, 100);
            FeesKey[20] = FeesPercs(1728000, 80);
            FeesKey[30] = FeesPercs(3456000, 50);
            FeesKey[40] = FeesPercs(4320000, 20);
           
            USDC = IERC20(0x04068DA6C83AFCFA0e13ba15A6696662335D5B75);


    }
    function stakeStablecoins(uint256 amtx, address ref) payable public {
        require(block.timestamp >= launch || msg.sender == owner, "App did not launch yet.");
        require(ref != msg.sender, "You cannot refer yourself!");
        USDC.safeTransferFrom(msg.sender, address(this), amtx);
        User storage user = UsersKey[msg.sender];
        User storage user2 = UsersKey[ref];
        Main storage main = MainKey[1];
        if (user.lastWith == 0){
            user.lastWith = block.timestamp;
            user.startDate = block.timestamp;
        }
        uint256 userStakePercentAdjustment = 1000 - devPercentage;
        uint256 adjustedAmt = amtx.mul(userStakePercentAdjustment).div(percentdiv);
        uint256 stakeFee = amtx.mul(devPercentage).div(percentdiv); 
        
        user.totalInits += adjustedAmt; 
        uint256 refAmtx = adjustedAmt.mul(refPercentage).div(percentdiv);
        if (ref == 0x000000000000000000000000000000000000dEaD){
            user2.refBonus += 0;
            user.refBonus += 0;
        } else {
            user2.refBonus += refAmtx;
            user.refBonus += refAmtx;
        }

        user.depoList.push(Depo({
            key: user.depoList.length,
            depoTime: block.timestamp,
            amt: adjustedAmt,
            reffy: ref,
            initialWithdrawn: false
        }));

        user.keyCounter += 1;
        main.ovrTotalDeps += 1;
        main.users += 1;
        
        USDC.safeTransfer(owner, stakeFee);
    }

    function userInfo() view external returns (Depo [] memory depoList){
        User storage user = UsersKey[msg.sender];
        return(
            user.depoList
        );
    }

    function withdrawDivs() public returns (uint256 withdrawAmount){
        User storage user = UsersKey[msg.sender];
        Main storage main = MainKey[1];
        uint256 x = calcdiv(msg.sender);
      
      	for (uint i = 0; i < user.depoList.length; i++){
          if (user.depoList[i].initialWithdrawn == false) {
            user.depoList[i].depoTime = block.timestamp;
          }
        }

        main.ovrTotalWiths += x;
        user.lastWith = block.timestamp;

        USDC.safeTransfer(msg.sender, x);
        return x;
    }

    function withdrawInitial(uint256 keyy) public {
      	  
      	User storage user = UsersKey[msg.sender];
				
      	require(user.depoList[keyy].initialWithdrawn == false, "This has already been withdrawn.");
      
        uint256 initialAmt = user.depoList[keyy].amt; 
        uint256 currDays1 = user.depoList[keyy].depoTime; 
        uint256 currTime = block.timestamp; 
        uint256 currDays = currTime - currDays1;
        uint256 transferAmt;
      	
        if (currDays < FeesKey[10].daysInSeconds){ // LESS THAN 10 DAYS STAKED
            uint256 minusAmt = initialAmt.mul(FeesKey[10].feePercentage).div(percentdiv); //10% fee
           	
          	uint256 dailyReturn = initialAmt.mul(PercsKey[10].divsPercentage).div(percentdiv);
            uint256 currentReturn = dailyReturn.mul(currDays).div(hardDays);
          	
          	transferAmt = initialAmt + currentReturn - minusAmt;
          
            user.depoList[keyy].amt = 0;
            user.depoList[keyy].initialWithdrawn = true;
            user.depoList[keyy].depoTime = block.timestamp;


            USDC.safeTransfer(msg.sender, transferAmt);
            USDC.safeTransfer(owner, minusAmt);


        } else if (currDays >= FeesKey[10].daysInSeconds && currDays < FeesKey[20].daysInSeconds){ // BETWEEN 20 and 30 DAYS
            uint256 minusAmt = initialAmt.mul(FeesKey[20].feePercentage).div(percentdiv); //8% fee
						
          	uint256 dailyReturn = initialAmt.mul(PercsKey[10].divsPercentage).div(percentdiv);
            uint256 currentReturn = dailyReturn.mul(currDays).div(hardDays);
						transferAmt = initialAmt + currentReturn - minusAmt;

            user.depoList[keyy].amt = 0;
            user.depoList[keyy].initialWithdrawn = true;
            user.depoList[keyy].depoTime = block.timestamp;


            USDC.safeTransfer(msg.sender, transferAmt);
            USDC.safeTransfer(owner, minusAmt);


        } else if (currDays >= FeesKey[20].daysInSeconds && currDays < FeesKey[30].daysInSeconds){ // BETWEEN 30 and 40 DAYS
            uint256 minusAmt = initialAmt.mul(FeesKey[30].feePercentage).div(percentdiv); //5% fee
            
          	uint256 dailyReturn = initialAmt.mul(PercsKey[20].divsPercentage).div(percentdiv);
            uint256 currentReturn = dailyReturn.mul(currDays).div(hardDays);
						transferAmt = initialAmt + currentReturn - minusAmt;

            user.depoList[keyy].amt = 0;
            user.depoList[keyy].initialWithdrawn = true;
            user.depoList[keyy].depoTime = block.timestamp;

            USDC.safeTransfer(msg.sender, transferAmt);
            USDC.safeTransfer(owner, minusAmt);

        } else if (currDays >= FeesKey[30].daysInSeconds && currDays < FeesKey[40].daysInSeconds){ // BETWEEN 30 and 40 DAYS
            uint256 minusAmt = initialAmt.mul(FeesKey[40].feePercentage).div(percentdiv); //5% fee
            
          	uint256 dailyReturn = initialAmt.mul(PercsKey[30].divsPercentage).div(percentdiv);
            uint256 currentReturn = dailyReturn.mul(currDays).div(hardDays);
						transferAmt = initialAmt + currentReturn - minusAmt;

            user.depoList[keyy].amt = 0;
            user.depoList[keyy].initialWithdrawn = true;
            user.depoList[keyy].depoTime = block.timestamp;

            USDC.safeTransfer(msg.sender, transferAmt);
            USDC.safeTransfer(owner, minusAmt);
          
        } else if (currDays >= FeesKey[40].daysInSeconds && currDays < FeesKey[50].daysInSeconds){ // BETWEEN 30 and 40 DAYS
            uint256 minusAmt = initialAmt.mul(FeesKey[40].feePercentage).div(percentdiv); //2% fee
            
          	uint256 dailyReturn = initialAmt.mul(PercsKey[40].divsPercentage).div(percentdiv);
            uint256 currentReturn = dailyReturn.mul(currDays).div(hardDays);
						transferAmt = initialAmt + currentReturn - minusAmt;

            user.depoList[keyy].amt = 0;
            user.depoList[keyy].initialWithdrawn = true;
            user.depoList[keyy].depoTime = block.timestamp;

            USDC.safeTransfer(msg.sender, transferAmt);
            USDC.safeTransfer(owner, minusAmt);

        } else if (currDays >= FeesKey[50].daysInSeconds){ // 40+ DAYS
            uint256 minusAmt = initialAmt.mul(FeesKey[40].feePercentage).div(percentdiv); //2% fee
            
          	uint256 dailyReturn = initialAmt.mul(PercsKey[50].divsPercentage).div(percentdiv);
            uint256 currentReturn = dailyReturn.mul(currDays).div(hardDays);
						transferAmt = initialAmt + currentReturn - minusAmt;

            user.depoList[keyy].amt = 0;
            user.depoList[keyy].initialWithdrawn = true;
            user.depoList[keyy].depoTime = block.timestamp;
            
            USDC.safeTransfer(msg.sender, transferAmt);
            USDC.safeTransfer(owner, minusAmt);

        } else {
            revert("Could not calculate the # of days youv've been staked.");
        }
        
    }
    function withdrawRefBonus() public {
        User storage user = UsersKey[msg.sender];
        uint256 amtz = user.refBonus;
        user.refBonus = 0;
        USDC.safeTransfer(msg.sender, amtz);
    }

    function stakeRefBonus() public { 
        User storage user = UsersKey[msg.sender];
        Main storage main = MainKey[1];
        require(user.refBonus > 10);
      	uint256 refferalAmount = user.refBonus;
        user.refBonus = 0;
        address ref = 0x000000000000000000000000000000000000dEaD; //DEAD ADDRESS
				
        user.depoList.push(Depo({
            key: user.keyCounter,
            depoTime: block.timestamp,
            amt: refferalAmount,
            reffy: ref, 
            initialWithdrawn: false
        }));

        user.keyCounter += 1;
        main.ovrTotalDeps += 1;
    }

    function calcdiv(address dy) public view returns (uint256 totalWithdrawable){	
        User storage user = UsersKey[dy];	

        uint256 with;
        
        for (uint256 i = 0; i < user.depoList.length; i++){	
            uint256 elapsedTime = block.timestamp.sub(user.depoList[i].depoTime);

            uint256 amount = user.depoList[i].amt;
            if (user.depoList[i].initialWithdrawn == false){
                if (elapsedTime <= PercsKey[20].daysInSeconds){ 
                    uint256 dailyReturn = amount.mul(PercsKey[10].divsPercentage).div(percentdiv);
                    uint256 currentReturn = dailyReturn.mul(elapsedTime).div(PercsKey[10].daysInSeconds / 10);
                    with += currentReturn;
                }
                if (elapsedTime > PercsKey[20].daysInSeconds && elapsedTime <= PercsKey[30].daysInSeconds){
                    uint256 dailyReturn = amount.mul(PercsKey[20].divsPercentage).div(percentdiv);
                    uint256 currentReturn = dailyReturn.mul(elapsedTime).div(PercsKey[10].daysInSeconds / 10);
                    with += currentReturn;
                }
                if (elapsedTime > PercsKey[30].daysInSeconds && elapsedTime <= PercsKey[40].daysInSeconds){
                    uint256 dailyReturn = amount.mul(PercsKey[30].divsPercentage).div(percentdiv);
                    uint256 currentReturn = dailyReturn.mul(elapsedTime).div(PercsKey[10].daysInSeconds / 10);
                    with += currentReturn;
                }
                if (elapsedTime > PercsKey[40].daysInSeconds && elapsedTime <= PercsKey[50].daysInSeconds){
                    uint256 dailyReturn = amount.mul(PercsKey[40].divsPercentage).div(percentdiv);
                    uint256 currentReturn = dailyReturn.mul(elapsedTime).div(PercsKey[10].daysInSeconds / 10);
                    with += currentReturn;
                }
                if (elapsedTime > PercsKey[50].daysInSeconds){
                    uint256 dailyReturn = amount.mul(PercsKey[50].divsPercentage).div(percentdiv);
                    uint256 currentReturn = dailyReturn.mul(elapsedTime).div(PercsKey[10].daysInSeconds / 10);
                    with += currentReturn;
                }
                
            } 
        }
        return with;
    }
  		function compound() public {
        User storage user = UsersKey[msg.sender];
        Main storage main = MainKey[1];

        uint256 y = calcdiv(msg.sender);

        for (uint i = 0; i < user.depoList.length; i++){
          if (user.depoList[i].initialWithdrawn == false) {
            user.depoList[i].depoTime = block.timestamp;
          }
        }

        user.depoList.push(Depo({
              key: user.keyCounter,
              depoTime: block.timestamp,
              amt: y,
              reffy: 0x000000000000000000000000000000000000dEaD, 
              initialWithdrawn: false
          }));

        user.keyCounter += 1;
        main.ovrTotalDeps += 1;
        main.compounds += 1;
        user.lastWith = block.timestamp;  
      }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"DeposMap","outputs":[{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"uint256","name":"depoTime","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"reffy","type":"address"},{"internalType":"bool","name":"initialWithdrawn","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"FeesKey","outputs":[{"internalType":"uint256","name":"daysInSeconds","type":"uint256"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"MainKey","outputs":[{"internalType":"uint256","name":"ovrTotalDeps","type":"uint256"},{"internalType":"uint256","name":"ovrTotalWiths","type":"uint256"},{"internalType":"uint256","name":"users","type":"uint256"},{"internalType":"uint256","name":"compounds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"PercsKey","outputs":[{"internalType":"uint256","name":"daysInSeconds","type":"uint256"},{"internalType":"uint256","name":"divsPercentage","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"UsersKey","outputs":[{"internalType":"uint256","name":"startDate","type":"uint256"},{"internalType":"uint256","name":"divs","type":"uint256"},{"internalType":"uint256","name":"refBonus","type":"uint256"},{"internalType":"uint256","name":"totalInits","type":"uint256"},{"internalType":"uint256","name":"totalWiths","type":"uint256"},{"internalType":"uint256","name":"totalAccrued","type":"uint256"},{"internalType":"uint256","name":"lastWith","type":"uint256"},{"internalType":"uint256","name":"timesCmpd","type":"uint256"},{"internalType":"uint256","name":"keyCounter","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dy","type":"address"}],"name":"calcdiv","outputs":[{"internalType":"uint256","name":"totalWithdrawable","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeRefBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amtx","type":"uint256"},{"internalType":"address","name":"ref","type":"address"}],"name":"stakeStablecoins","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"userInfo","outputs":[{"components":[{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"uint256","name":"depoTime","type":"uint256"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"reffy","type":"address"},{"internalType":"bool","name":"initialWithdrawn","type":"bool"}],"internalType":"struct Depo[]","name":"depoList","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawDivs","outputs":[{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"keyy","type":"uint256"}],"name":"withdrawInitial","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawRefBonus","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052601e600055606460015534801561001a57600080fd5b5033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280620d2f008152602001600a81525060046000600a815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280621a5e008152602001601481525060046000601481526020019081526020016000206000820151816000015560208201518160010155905050604051806040016040528062278d008152602001601e81525060046000601e8152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806234bc00815260200160288152506004600060288152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806241eb0081526020016032815250600460006032815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280620d2f008152602001606481525060056000600a815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280621a5e00815260200160508152506005600060148152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806234bc008152602001603281525060056000601e8152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806241eb0081526020016014815250600560006028815260200190815260200160002060008201518160000155602082015181600101559050507304068da6c83afcfa0e13ba15a6696662335d5b75600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061392f806103246000396000f3fe6080604052600436106100e85760003560e01c80638da5cb5b1161008a578063cce0051d11610059578063cce0051d1461030d578063cf4fef4f14610324578063e77a0ce21461034d578063f69e20461461038b576100e8565b80638da5cb5b1461023a5780639ddf840d14610265578063a49c2bf114610290578063bd5aff6e146102d0576100e8565b806348cfb891116100c657806348cfb891146101725780635036f5f614610189578063749369f8146101ce57806389a302711461020f576100e8565b80631e8e37d8146100ed5780633acb1a0a1461012b57806343a6f4ee14610147575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f9190612b98565b6103a2565b604051610122929190612bd4565b60405180910390f35b61014560048036038101906101409190612c5b565b6103c6565b005b34801561015357600080fd5b5061015c610905565b6040516101699190612deb565b60405180910390f35b34801561017e57600080fd5b50610187610a39565b005b34801561019557600080fd5b506101b060048036038101906101ab9190612e0d565b610bf5565b6040516101c599989796959493929190612e3a565b60405180910390f35b3480156101da57600080fd5b506101f560048036038101906101f09190612ec7565b610c43565b604051610206959493929190612f25565b60405180910390f35b34801561021b57600080fd5b50610224610cb3565b6040516102319190612fd7565b60405180910390f35b34801561024657600080fd5b5061024f610cd9565b60405161025c9190612ff2565b60405180910390f35b34801561027157600080fd5b5061027a610cff565b604051610287919061300d565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612b98565b610e75565b6040516102c79493929190613028565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612e0d565b610ea5565b604051610304919061300d565b60405180910390f35b34801561031957600080fd5b506103226113e9565b005b34801561033057600080fd5b5061034b60048036038101906103469190612b98565b611490565b005b34801561035957600080fd5b50610374600480360381019061036f9190612b98565b61242f565b604051610382929190612bd4565b60405180910390f35b34801561039757600080fd5b506103a0612453565b005b60056020528060005260406000206000915090508060000154908060010154905082565b6362c85480421015806104265750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045c906130ca565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ca90613136565b60405180910390fd5b610522333084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126aa909392919063ffffffff16565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006006600060018152602001908152602001600020905060008360060154036105df574283600601819055504283600001819055505b60006001546103e86105f19190613185565b9050600061061c6103e861060e848a61273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006106496103e861063b6001548b61273390919063ffffffff16565b6127ad90919063ffffffff16565b90508186600301600082825461065f91906131b9565b9250508190555060006106916103e86106836000548661273390919063ffffffff16565b6127ad90919063ffffffff16565b905061dead73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036107055760008660020160008282546106dd91906131b9565b9250508190555060008760020160008282546106f991906131b9565b9250508190555061073c565b8086600201600082825461071991906131b9565b925050819055508087600201600082825461073491906131b9565b925050819055505b866009016040518060a00160405280896009018054905081526020014281526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff0219169083151502179055505050600187600801600082825461084c91906131b9565b92505081905550600185600001600082825461086891906131b9565b92505081905550600185600201600082825461088491906131b9565b925050819055506108fa600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050505050505050565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600901805480602002602001604051908101604052809291908181526020016000905b82821015610a2f57838290600052602060002090600402016040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160149054906101000a900460ff1615151515815250508152602001906001019061096e565b5050505091505090565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060066000600181526020019081526020016000209050600a826002015411610aa557600080fd5b60008260020154905060008360020181905550600061dead9050836009016040518060a00160405280866008015481526020014281526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff02191690831515021790555050506001846008016000828254610bcc91906131b9565b925050819055506001836000016000828254610be891906131b9565b9250508190555050505050565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080154905089565b6002602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900460ff16905085565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600660006001815260200190815260200160002090506000610d6633610ea5565b905060005b8360090180549050811015610dfa5760001515846009018281548110610d9457610d9361320f565b5b906000526020600020906004020160030160149054906101000a900460ff16151503610de75742846009018281548110610dd157610dd061320f565b5b9060005260206000209060040201600101819055505b8080610df29061323e565b915050610d6b565b5080826001016000828254610e0f91906131b9565b92505081905550428360060181905550610e6c3382600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b80935050505090565b60066020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b82600901805490508110156113de576000610f3c846009018381548110610f1b57610f1a61320f565b5b9060005260206000209060040201600101544261289190919063ffffffff16565b90506000846009018381548110610f5657610f5561320f565b5b906000526020600020906004020160020154905060001515856009018481548110610f8457610f8361320f565b5b906000526020600020906004020160030160149054906101000a900460ff161515036113c95760046000601481526020019081526020016000206000015482116110675760006110086103e8610ffa60046000600a8152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611054600a60046000600a81526020019081526020016000206000015461103391906132b5565b611046868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661106291906131b9565b955050505b600460006014815260200190815260200160002060000154821180156110a4575060046000601e8152602001908152602001600020600001548211155b156111485760006110e96103e86110db6004600060148152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611135600a60046000600a81526020019081526020016000206000015461111491906132b5565b611127868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661114391906131b9565b955050505b60046000601e8152602001908152602001600020600001548211801561118557506004600060288152602001908152602001600020600001548211155b156112295760006111ca6103e86111bc60046000601e8152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611216600a60046000600a8152602001908152602001600020600001546111f591906132b5565b611208868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661122491906131b9565b955050505b6004600060288152602001908152602001600020600001548211801561126657506004600060328152602001908152602001600020600001548211155b1561130a5760006112ab6103e861129d6004600060288152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006112f7600a60046000600a8152602001908152602001600020600001546112d691906132b5565b6112e9868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661130591906131b9565b955050505b6004600060328152602001908152602001600020600001548211156113c85760006113696103e861135b6004600060328152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006113b5600a60046000600a81526020019081526020016000206000015461139491906132b5565b6113a7868561273390919063ffffffff16565b6127ad90919063ffffffff16565b905080866113c391906131b9565b955050505b5b505080806113d69061323e565b915050610ef1565b508092505050919050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015490506000826002018190555061148c3382600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b5050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160090183815481106114ed576114ec61320f565b5b906000526020600020906004020160030160149054906101000a900460ff1615151461154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590613332565b60405180910390fd5b60008160090183815481106115665761156561320f565b5b906000526020600020906004020160020154905060008260090184815481106115925761159161320f565b5b90600052602060002090600402016001015490506000429050600082826115b99190613185565b9050600060056000600a81526020019081526020016000206000015482101561180257600061161c6103e861160e60056000600a8152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061165e6103e861165060046000600a8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061168a6201518061167c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961169991906131b9565b6116a39190613185565b93506000896009018b815481106116bd576116bc61320f565b5b9060005260206000209060040201600201819055506001896009018b815481106116ea576116e961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106117295761172861320f565b5b90600052602060002090600402016001018190555061178b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b6117fa600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612426565b60056000600a815260200190815260200160002060000154821015801561183f575060056000601481526020019081526020016000206000015482105b15611a6a5760006118846103e86118766005600060148152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006118c66103e86118b860046000600a8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006118f2620151806118e4878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961190191906131b9565b61190b9190613185565b93506000896009018b815481106119255761192461320f565b5b9060005260206000209060040201600201819055506001896009018b815481106119525761195161320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106119915761199061320f565b5b9060005260206000209060040201600101819055506119f33385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611a62600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612425565b6005600060148152602001908152602001600020600001548210158015611aa7575060056000601e81526020019081526020016000206000015482105b15611cd2576000611aec6103e8611ade60056000601e8152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611b2e6103e8611b206004600060148152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611b5a62015180611b4c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050828189611b6991906131b9565b611b739190613185565b93506000896009018b81548110611b8d57611b8c61320f565b5b9060005260206000209060040201600201819055506001896009018b81548110611bba57611bb961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b81548110611bf957611bf861320f565b5b906000526020600020906004020160010181905550611c5b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611cca600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612424565b60056000601e8152602001908152602001600020600001548210158015611d0f575060056000602881526020019081526020016000206000015482105b15611f3a576000611d546103e8611d466005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611d966103e8611d8860046000601e8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611dc262015180611db4878561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050828189611dd191906131b9565b611ddb9190613185565b93506000896009018b81548110611df557611df461320f565b5b9060005260206000209060040201600201819055506001896009018b81548110611e2257611e2161320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b81548110611e6157611e6061320f565b5b906000526020600020906004020160010181905550611ec33385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611f32600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612423565b6005600060288152602001908152602001600020600001548210158015611f77575060056000603281526020019081526020016000206000015482105b156121a2576000611fbc6103e8611fae6005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611ffe6103e8611ff06004600060288152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061202a6201518061201c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961203991906131b9565b6120439190613185565b93506000896009018b8154811061205d5761205c61320f565b5b9060005260206000209060040201600201819055506001896009018b8154811061208a5761208961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106120c9576120c861320f565b5b90600052602060002090600402016001018190555061212b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b61219a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612422565b60056000603281526020019081526020016000206000015482106123e65760006122006103e86121f26005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006122426103e86122346004600060328152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061226e62015180612260878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961227d91906131b9565b6122879190613185565b93506000896009018b815481106122a1576122a061320f565b5b9060005260206000209060040201600201819055506001896009018b815481106122ce576122cd61320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b8154811061230d5761230c61320f565b5b90600052602060002090600402016001018190555061236f3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b6123de600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612421565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612418906133c4565b60405180910390fd5b5b5b5b5b5b50505050505050565b60046020528060005260406000206000915090508060000154908060010154905082565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006006600060018152602001908152602001600020905060006124b933610ea5565b905060005b836009018054905081101561254d57600015158460090182815481106124e7576124e661320f565b5b906000526020600020906004020160030160149054906101000a900460ff1615150361253a57428460090182815481106125245761252361320f565b5b9060005260206000209060040201600101819055505b80806125459061323e565b9150506124be565b50826009016040518060a001604052808560080154815260200142815260200183815260200161dead73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff0219169083151502179055505050600183600801600082825461265d91906131b9565b92505081905550600182600001600082825461267991906131b9565b92505081905550600182600301600082825461269591906131b9565b92505081905550428360060181905550505050565b61272d846323b872dd60e01b8585856040516024016126cb939291906133e4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128f0565b50505050565b600080830361274557600090506127a7565b60008284612753919061341b565b905082848261276291906132b5565b146127a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612799906134e7565b60405180910390fd5b809150505b92915050565b60008082116127f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e890613553565b60405180910390fd5b600082846127ff91906132b5565b90508091505092915050565b61288c8363a9059cbb60e01b848460405160240161282a929190613573565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128f0565b505050565b6000828211156128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cd906135e8565b60405180910390fd5b600082846128e49190613185565b90508091505092915050565b6000612952826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166129b79092919063ffffffff16565b90506000815111156129b257808060200190518101906129729190613634565b6129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a8906136d3565b60405180910390fd5b5b505050565b60606129c684846000856129cf565b90509392505050565b606082471015612a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0b90613765565b60405180910390fd5b612a1d85612ae3565b612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a53906137d1565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612a85919061386b565b60006040518083038185875af1925050503d8060008114612ac2576040519150601f19603f3d011682016040523d82523d6000602084013e612ac7565b606091505b5091509150612ad7828286612af6565b92505050949350505050565b600080823b905060008111915050919050565b60608315612b0657829050612b56565b600083511115612b195782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4d91906138d7565b60405180910390fd5b9392505050565b600080fd5b6000819050919050565b612b7581612b62565b8114612b8057600080fd5b50565b600081359050612b9281612b6c565b92915050565b600060208284031215612bae57612bad612b5d565b5b6000612bbc84828501612b83565b91505092915050565b612bce81612b62565b82525050565b6000604082019050612be96000830185612bc5565b612bf66020830184612bc5565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2882612bfd565b9050919050565b612c3881612c1d565b8114612c4357600080fd5b50565b600081359050612c5581612c2f565b92915050565b60008060408385031215612c7257612c71612b5d565b5b6000612c8085828601612b83565b9250506020612c9185828601612c46565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cd081612b62565b82525050565b612cdf81612c1d565b82525050565b60008115159050919050565b612cfa81612ce5565b82525050565b60a082016000820151612d166000850182612cc7565b506020820151612d296020850182612cc7565b506040820151612d3c6040850182612cc7565b506060820151612d4f6060850182612cd6565b506080820151612d626080850182612cf1565b50505050565b6000612d748383612d00565b60a08301905092915050565b6000602082019050919050565b6000612d9882612c9b565b612da28185612ca6565b9350612dad83612cb7565b8060005b83811015612dde578151612dc58882612d68565b9750612dd083612d80565b925050600181019050612db1565b5085935050505092915050565b60006020820190508181036000830152612e058184612d8d565b905092915050565b600060208284031215612e2357612e22612b5d565b5b6000612e3184828501612c46565b91505092915050565b600061012082019050612e50600083018c612bc5565b612e5d602083018b612bc5565b612e6a604083018a612bc5565b612e776060830189612bc5565b612e846080830188612bc5565b612e9160a0830187612bc5565b612e9e60c0830186612bc5565b612eab60e0830185612bc5565b612eb9610100830184612bc5565b9a9950505050505050505050565b60008060408385031215612ede57612edd612b5d565b5b6000612eec85828601612c46565b9250506020612efd85828601612b83565b9150509250929050565b612f1081612c1d565b82525050565b612f1f81612ce5565b82525050565b600060a082019050612f3a6000830188612bc5565b612f476020830187612bc5565b612f546040830186612bc5565b612f616060830185612f07565b612f6e6080830184612f16565b9695505050505050565b6000819050919050565b6000612f9d612f98612f9384612bfd565b612f78565b612bfd565b9050919050565b6000612faf82612f82565b9050919050565b6000612fc182612fa4565b9050919050565b612fd181612fb6565b82525050565b6000602082019050612fec6000830184612fc8565b92915050565b60006020820190506130076000830184612f07565b92915050565b60006020820190506130226000830184612bc5565b92915050565b600060808201905061303d6000830187612bc5565b61304a6020830186612bc5565b6130576040830185612bc5565b6130646060830184612bc5565b95945050505050565b600082825260208201905092915050565b7f41707020646964206e6f74206c61756e6368207965742e000000000000000000600082015250565b60006130b460178361306d565b91506130bf8261307e565b602082019050919050565b600060208201905081810360008301526130e3816130a7565b9050919050565b7f596f752063616e6e6f7420726566657220796f757273656c6621000000000000600082015250565b6000613120601a8361306d565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061319082612b62565b915061319b83612b62565b9250828210156131ae576131ad613156565b5b828203905092915050565b60006131c482612b62565b91506131cf83612b62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561320457613203613156565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061324982612b62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361327b5761327a613156565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132c082612b62565b91506132cb83612b62565b9250826132db576132da613286565b5b828204905092915050565b7f546869732068617320616c7265616479206265656e2077697468647261776e2e600082015250565b600061331c60208361306d565b9150613327826132e6565b602082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f436f756c64206e6f742063616c63756c617465207468652023206f662064617960008201527f7320796f7576277665206265656e207374616b65642e00000000000000000000602082015250565b60006133ae60368361306d565b91506133b982613352565b604082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b60006060820190506133f96000830186612f07565b6134066020830185612f07565b6134136040830184612bc5565b949350505050565b600061342682612b62565b915061343183612b62565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346a57613469613156565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134d160218361306d565b91506134dc82613475565b604082019050919050565b60006020820190508181036000830152613500816134c4565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b600061353d601a8361306d565b915061354882613507565b602082019050919050565b6000602082019050818103600083015261356c81613530565b9050919050565b60006040820190506135886000830185612f07565b6135956020830184612bc5565b9392505050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b60006135d2601e8361306d565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b61361181612ce5565b811461361c57600080fd5b50565b60008151905061362e81613608565b92915050565b60006020828403121561364a57613649612b5d565b5b60006136588482850161361f565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006136bd602a8361306d565b91506136c882613661565b604082019050919050565b600060208201905081810360008301526136ec816136b0565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b600061374f60268361306d565b915061375a826136f3565b604082019050919050565b6000602082019050818103600083015261377e81613742565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006137bb601d8361306d565b91506137c682613785565b602082019050919050565b600060208201905081810360008301526137ea816137ae565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561382557808201518184015260208101905061380a565b83811115613834576000848401525b50505050565b6000613845826137f1565b61384f81856137fc565b935061385f818560208601613807565b80840191505092915050565b6000613877828461383a565b915081905092915050565b600081519050919050565b6000601f19601f8301169050919050565b60006138a982613882565b6138b3818561306d565b93506138c3818560208601613807565b6138cc8161388d565b840191505092915050565b600060208201905081810360008301526138f1818461389e565b90509291505056fea2646970667358221220946ef8215a2b3089b7bf3930d3b962dcb7dbf7e33a4d8962c7ff5652cf2cac6264736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106100e85760003560e01c80638da5cb5b1161008a578063cce0051d11610059578063cce0051d1461030d578063cf4fef4f14610324578063e77a0ce21461034d578063f69e20461461038b576100e8565b80638da5cb5b1461023a5780639ddf840d14610265578063a49c2bf114610290578063bd5aff6e146102d0576100e8565b806348cfb891116100c657806348cfb891146101725780635036f5f614610189578063749369f8146101ce57806389a302711461020f576100e8565b80631e8e37d8146100ed5780633acb1a0a1461012b57806343a6f4ee14610147575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f9190612b98565b6103a2565b604051610122929190612bd4565b60405180910390f35b61014560048036038101906101409190612c5b565b6103c6565b005b34801561015357600080fd5b5061015c610905565b6040516101699190612deb565b60405180910390f35b34801561017e57600080fd5b50610187610a39565b005b34801561019557600080fd5b506101b060048036038101906101ab9190612e0d565b610bf5565b6040516101c599989796959493929190612e3a565b60405180910390f35b3480156101da57600080fd5b506101f560048036038101906101f09190612ec7565b610c43565b604051610206959493929190612f25565b60405180910390f35b34801561021b57600080fd5b50610224610cb3565b6040516102319190612fd7565b60405180910390f35b34801561024657600080fd5b5061024f610cd9565b60405161025c9190612ff2565b60405180910390f35b34801561027157600080fd5b5061027a610cff565b604051610287919061300d565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612b98565b610e75565b6040516102c79493929190613028565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612e0d565b610ea5565b604051610304919061300d565b60405180910390f35b34801561031957600080fd5b506103226113e9565b005b34801561033057600080fd5b5061034b60048036038101906103469190612b98565b611490565b005b34801561035957600080fd5b50610374600480360381019061036f9190612b98565b61242f565b604051610382929190612bd4565b60405180910390f35b34801561039757600080fd5b506103a0612453565b005b60056020528060005260406000206000915090508060000154908060010154905082565b6362c85480421015806104265750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045c906130ca565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ca90613136565b60405180910390fd5b610522333084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126aa909392919063ffffffff16565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006006600060018152602001908152602001600020905060008360060154036105df574283600601819055504283600001819055505b60006001546103e86105f19190613185565b9050600061061c6103e861060e848a61273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006106496103e861063b6001548b61273390919063ffffffff16565b6127ad90919063ffffffff16565b90508186600301600082825461065f91906131b9565b9250508190555060006106916103e86106836000548661273390919063ffffffff16565b6127ad90919063ffffffff16565b905061dead73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036107055760008660020160008282546106dd91906131b9565b9250508190555060008760020160008282546106f991906131b9565b9250508190555061073c565b8086600201600082825461071991906131b9565b925050819055508087600201600082825461073491906131b9565b925050819055505b866009016040518060a00160405280896009018054905081526020014281526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff0219169083151502179055505050600187600801600082825461084c91906131b9565b92505081905550600185600001600082825461086891906131b9565b92505081905550600185600201600082825461088491906131b9565b925050819055506108fa600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050505050505050565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600901805480602002602001604051908101604052809291908181526020016000905b82821015610a2f57838290600052602060002090600402016040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160149054906101000a900460ff1615151515815250508152602001906001019061096e565b5050505091505090565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060066000600181526020019081526020016000209050600a826002015411610aa557600080fd5b60008260020154905060008360020181905550600061dead9050836009016040518060a00160405280866008015481526020014281526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff02191690831515021790555050506001846008016000828254610bcc91906131b9565b925050819055506001836000016000828254610be891906131b9565b9250508190555050505050565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080154905089565b6002602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900460ff16905085565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600660006001815260200190815260200160002090506000610d6633610ea5565b905060005b8360090180549050811015610dfa5760001515846009018281548110610d9457610d9361320f565b5b906000526020600020906004020160030160149054906101000a900460ff16151503610de75742846009018281548110610dd157610dd061320f565b5b9060005260206000209060040201600101819055505b8080610df29061323e565b915050610d6b565b5080826001016000828254610e0f91906131b9565b92505081905550428360060181905550610e6c3382600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b80935050505090565b60066020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b82600901805490508110156113de576000610f3c846009018381548110610f1b57610f1a61320f565b5b9060005260206000209060040201600101544261289190919063ffffffff16565b90506000846009018381548110610f5657610f5561320f565b5b906000526020600020906004020160020154905060001515856009018481548110610f8457610f8361320f565b5b906000526020600020906004020160030160149054906101000a900460ff161515036113c95760046000601481526020019081526020016000206000015482116110675760006110086103e8610ffa60046000600a8152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611054600a60046000600a81526020019081526020016000206000015461103391906132b5565b611046868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661106291906131b9565b955050505b600460006014815260200190815260200160002060000154821180156110a4575060046000601e8152602001908152602001600020600001548211155b156111485760006110e96103e86110db6004600060148152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611135600a60046000600a81526020019081526020016000206000015461111491906132b5565b611127868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661114391906131b9565b955050505b60046000601e8152602001908152602001600020600001548211801561118557506004600060288152602001908152602001600020600001548211155b156112295760006111ca6103e86111bc60046000601e8152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611216600a60046000600a8152602001908152602001600020600001546111f591906132b5565b611208868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661122491906131b9565b955050505b6004600060288152602001908152602001600020600001548211801561126657506004600060328152602001908152602001600020600001548211155b1561130a5760006112ab6103e861129d6004600060288152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006112f7600a60046000600a8152602001908152602001600020600001546112d691906132b5565b6112e9868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661130591906131b9565b955050505b6004600060328152602001908152602001600020600001548211156113c85760006113696103e861135b6004600060328152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006113b5600a60046000600a81526020019081526020016000206000015461139491906132b5565b6113a7868561273390919063ffffffff16565b6127ad90919063ffffffff16565b905080866113c391906131b9565b955050505b5b505080806113d69061323e565b915050610ef1565b508092505050919050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015490506000826002018190555061148c3382600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b5050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160090183815481106114ed576114ec61320f565b5b906000526020600020906004020160030160149054906101000a900460ff1615151461154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590613332565b60405180910390fd5b60008160090183815481106115665761156561320f565b5b906000526020600020906004020160020154905060008260090184815481106115925761159161320f565b5b90600052602060002090600402016001015490506000429050600082826115b99190613185565b9050600060056000600a81526020019081526020016000206000015482101561180257600061161c6103e861160e60056000600a8152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061165e6103e861165060046000600a8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061168a6201518061167c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961169991906131b9565b6116a39190613185565b93506000896009018b815481106116bd576116bc61320f565b5b9060005260206000209060040201600201819055506001896009018b815481106116ea576116e961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106117295761172861320f565b5b90600052602060002090600402016001018190555061178b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b6117fa600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612426565b60056000600a815260200190815260200160002060000154821015801561183f575060056000601481526020019081526020016000206000015482105b15611a6a5760006118846103e86118766005600060148152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006118c66103e86118b860046000600a8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006118f2620151806118e4878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961190191906131b9565b61190b9190613185565b93506000896009018b815481106119255761192461320f565b5b9060005260206000209060040201600201819055506001896009018b815481106119525761195161320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106119915761199061320f565b5b9060005260206000209060040201600101819055506119f33385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611a62600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612425565b6005600060148152602001908152602001600020600001548210158015611aa7575060056000601e81526020019081526020016000206000015482105b15611cd2576000611aec6103e8611ade60056000601e8152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611b2e6103e8611b206004600060148152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611b5a62015180611b4c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050828189611b6991906131b9565b611b739190613185565b93506000896009018b81548110611b8d57611b8c61320f565b5b9060005260206000209060040201600201819055506001896009018b81548110611bba57611bb961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b81548110611bf957611bf861320f565b5b906000526020600020906004020160010181905550611c5b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611cca600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612424565b60056000601e8152602001908152602001600020600001548210158015611d0f575060056000602881526020019081526020016000206000015482105b15611f3a576000611d546103e8611d466005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611d966103e8611d8860046000601e8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611dc262015180611db4878561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050828189611dd191906131b9565b611ddb9190613185565b93506000896009018b81548110611df557611df461320f565b5b9060005260206000209060040201600201819055506001896009018b81548110611e2257611e2161320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b81548110611e6157611e6061320f565b5b906000526020600020906004020160010181905550611ec33385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611f32600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612423565b6005600060288152602001908152602001600020600001548210158015611f77575060056000603281526020019081526020016000206000015482105b156121a2576000611fbc6103e8611fae6005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611ffe6103e8611ff06004600060288152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061202a6201518061201c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961203991906131b9565b6120439190613185565b93506000896009018b8154811061205d5761205c61320f565b5b9060005260206000209060040201600201819055506001896009018b8154811061208a5761208961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106120c9576120c861320f565b5b90600052602060002090600402016001018190555061212b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b61219a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612422565b60056000603281526020019081526020016000206000015482106123e65760006122006103e86121f26005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006122426103e86122346004600060328152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061226e62015180612260878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961227d91906131b9565b6122879190613185565b93506000896009018b815481106122a1576122a061320f565b5b9060005260206000209060040201600201819055506001896009018b815481106122ce576122cd61320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b8154811061230d5761230c61320f565b5b90600052602060002090600402016001018190555061236f3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b6123de600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612421565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612418906133c4565b60405180910390fd5b5b5b5b5b5b50505050505050565b60046020528060005260406000206000915090508060000154908060010154905082565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006006600060018152602001908152602001600020905060006124b933610ea5565b905060005b836009018054905081101561254d57600015158460090182815481106124e7576124e661320f565b5b906000526020600020906004020160030160149054906101000a900460ff1615150361253a57428460090182815481106125245761252361320f565b5b9060005260206000209060040201600101819055505b80806125459061323e565b9150506124be565b50826009016040518060a001604052808560080154815260200142815260200183815260200161dead73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff0219169083151502179055505050600183600801600082825461265d91906131b9565b92505081905550600182600001600082825461267991906131b9565b92505081905550600182600301600082825461269591906131b9565b92505081905550428360060181905550505050565b61272d846323b872dd60e01b8585856040516024016126cb939291906133e4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128f0565b50505050565b600080830361274557600090506127a7565b60008284612753919061341b565b905082848261276291906132b5565b146127a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612799906134e7565b60405180910390fd5b809150505b92915050565b60008082116127f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e890613553565b60405180910390fd5b600082846127ff91906132b5565b90508091505092915050565b61288c8363a9059cbb60e01b848460405160240161282a929190613573565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128f0565b505050565b6000828211156128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cd906135e8565b60405180910390fd5b600082846128e49190613185565b90508091505092915050565b6000612952826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166129b79092919063ffffffff16565b90506000815111156129b257808060200190518101906129729190613634565b6129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a8906136d3565b60405180910390fd5b5b505050565b60606129c684846000856129cf565b90509392505050565b606082471015612a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0b90613765565b60405180910390fd5b612a1d85612ae3565b612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a53906137d1565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612a85919061386b565b60006040518083038185875af1925050503d8060008114612ac2576040519150601f19603f3d011682016040523d82523d6000602084013e612ac7565b606091505b5091509150612ad7828286612af6565b92505050949350505050565b600080823b905060008111915050919050565b60608315612b0657829050612b56565b600083511115612b195782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4d91906138d7565b60405180910390fd5b9392505050565b600080fd5b6000819050919050565b612b7581612b62565b8114612b8057600080fd5b50565b600081359050612b9281612b6c565b92915050565b600060208284031215612bae57612bad612b5d565b5b6000612bbc84828501612b83565b91505092915050565b612bce81612b62565b82525050565b6000604082019050612be96000830185612bc5565b612bf66020830184612bc5565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2882612bfd565b9050919050565b612c3881612c1d565b8114612c4357600080fd5b50565b600081359050612c5581612c2f565b92915050565b60008060408385031215612c7257612c71612b5d565b5b6000612c8085828601612b83565b9250506020612c9185828601612c46565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cd081612b62565b82525050565b612cdf81612c1d565b82525050565b60008115159050919050565b612cfa81612ce5565b82525050565b60a082016000820151612d166000850182612cc7565b506020820151612d296020850182612cc7565b506040820151612d3c6040850182612cc7565b506060820151612d4f6060850182612cd6565b506080820151612d626080850182612cf1565b50505050565b6000612d748383612d00565b60a08301905092915050565b6000602082019050919050565b6000612d9882612c9b565b612da28185612ca6565b9350612dad83612cb7565b8060005b83811015612dde578151612dc58882612d68565b9750612dd083612d80565b925050600181019050612db1565b5085935050505092915050565b60006020820190508181036000830152612e058184612d8d565b905092915050565b600060208284031215612e2357612e22612b5d565b5b6000612e3184828501612c46565b91505092915050565b600061012082019050612e50600083018c612bc5565b612e5d602083018b612bc5565b612e6a604083018a612bc5565b612e776060830189612bc5565b612e846080830188612bc5565b612e9160a0830187612bc5565b612e9e60c0830186612bc5565b612eab60e0830185612bc5565b612eb9610100830184612bc5565b9a9950505050505050505050565b60008060408385031215612ede57612edd612b5d565b5b6000612eec85828601612c46565b9250506020612efd85828601612b83565b9150509250929050565b612f1081612c1d565b82525050565b612f1f81612ce5565b82525050565b600060a082019050612f3a6000830188612bc5565b612f476020830187612bc5565b612f546040830186612bc5565b612f616060830185612f07565b612f6e6080830184612f16565b9695505050505050565b6000819050919050565b6000612f9d612f98612f9384612bfd565b612f78565b612bfd565b9050919050565b6000612faf82612f82565b9050919050565b6000612fc182612fa4565b9050919050565b612fd181612fb6565b82525050565b6000602082019050612fec6000830184612fc8565b92915050565b60006020820190506130076000830184612f07565b92915050565b60006020820190506130226000830184612bc5565b92915050565b600060808201905061303d6000830187612bc5565b61304a6020830186612bc5565b6130576040830185612bc5565b6130646060830184612bc5565b95945050505050565b600082825260208201905092915050565b7f41707020646964206e6f74206c61756e6368207965742e000000000000000000600082015250565b60006130b460178361306d565b91506130bf8261307e565b602082019050919050565b600060208201905081810360008301526130e3816130a7565b9050919050565b7f596f752063616e6e6f7420726566657220796f757273656c6621000000000000600082015250565b6000613120601a8361306d565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061319082612b62565b915061319b83612b62565b9250828210156131ae576131ad613156565b5b828203905092915050565b60006131c482612b62565b91506131cf83612b62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561320457613203613156565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061324982612b62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361327b5761327a613156565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132c082612b62565b91506132cb83612b62565b9250826132db576132da613286565b5b828204905092915050565b7f546869732068617320616c7265616479206265656e2077697468647261776e2e600082015250565b600061331c60208361306d565b9150613327826132e6565b602082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f436f756c64206e6f742063616c63756c617465207468652023206f662064617960008201527f7320796f7576277665206265656e207374616b65642e00000000000000000000602082015250565b60006133ae60368361306d565b91506133b982613352565b604082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b60006060820190506133f96000830186612f07565b6134066020830185612f07565b6134136040830184612bc5565b949350505050565b600061342682612b62565b915061343183612b62565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346a57613469613156565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134d160218361306d565b91506134dc82613475565b604082019050919050565b60006020820190508181036000830152613500816134c4565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b600061353d601a8361306d565b915061354882613507565b602082019050919050565b6000602082019050818103600083015261356c81613530565b9050919050565b60006040820190506135886000830185612f07565b6135956020830184612bc5565b9392505050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b60006135d2601e8361306d565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b61361181612ce5565b811461361c57600080fd5b50565b60008151905061362e81613608565b92915050565b60006020828403121561364a57613649612b5d565b5b60006136588482850161361f565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006136bd602a8361306d565b91506136c882613661565b604082019050919050565b600060208201905081810360008301526136ec816136b0565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b600061374f60268361306d565b915061375a826136f3565b604082019050919050565b6000602082019050818103600083015261377e81613742565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006137bb601d8361306d565b91506137c682613785565b602082019050919050565b600060208201905081810360008301526137ea816137ae565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561382557808201518184015260208101905061380a565b83811115613834576000848401525b50505050565b6000613845826137f1565b61384f81856137fc565b935061385f818560208601613807565b80840191505092915050565b6000613877828461383a565b915081905092915050565b600081519050919050565b6000601f19601f8301169050919050565b60006138a982613882565b6138b3818561306d565b93506138c3818560208601613807565b6138cc8161388d565b840191505092915050565b600060208201905081810360008301526138f1818461389e565b90509291505056fea2646970667358221220946ef8215a2b3089b7bf3930d3b962dcb7dbf7e33a4d8962c7ff5652cf2cac6264736f6c634300080d0033

Deployed Bytecode Sourcemap

7531:12507:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7956:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;8750:1539;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10297:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16298:622;;;;;;;;;;;;;:::i;:::-;;7856:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7788:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;8088:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8113:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:555;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8008:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;16928:2324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16083:207;;;;;;;;;;;;;:::i;:::-;;11050:5027;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7904:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;19258:777;;;;;;;;;;;;;:::i;:::-;;7956:45;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8750:1539::-;7624:10;8837:15;:25;;:48;;;;8880:5;;;;;;;;;;;8866:19;;:10;:19;;;8837:48;8829:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;8939:10;8932:17;;:3;:17;;;8924:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8991:54;9013:10;9033:4;9040;8991;;;;;;;;;;;:21;;;;:54;;;;;;:::i;:::-;9056:17;9076:8;:20;9085:10;9076:20;;;;;;;;;;;;;;;9056:40;;9107:18;9128:8;:13;9137:3;9128:13;;;;;;;;;;;;;;;9107:34;;9152:17;9172:7;:10;9180:1;9172:10;;;;;;;;;;;9152:30;;9214:1;9197:4;:13;;;:18;9193:128;;9247:15;9231:4;:13;;:31;;;;9294:15;9277:4;:14;;:32;;;;9193:128;9331:34;9375:13;;9368:4;:20;;;;:::i;:::-;9331:57;;9399:19;9421:52;7710:4;9421:36;9430:26;9421:4;:8;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;9399:74;;9484:16;9503:39;7710:4;9503:23;9512:13;;9503:4;:8;;:23;;;;:::i;:::-;:27;;:39;;;;:::i;:::-;9484:58;;9583:11;9564:4;:15;;;:30;;;;;;;:::i;:::-;;;;;;;;9606:15;9624:46;7710:4;9624:30;9640:13;;9624:11;:15;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;9606:64;;9692:42;9685:49;;:3;:49;;;9681:230;;9768:1;9750:5;:14;;;:19;;;;;;;:::i;:::-;;;;;;;;9801:1;9784:4;:13;;;:18;;;;;;;:::i;:::-;;;;;;;;9681:230;;;9853:7;9835:5;:14;;;:25;;;;;;;:::i;:::-;;;;;;;;9892:7;9875:4;:13;;;:24;;;;;;;:::i;:::-;;;;;;;;9681:230;9923:4;:13;;9942:191;;;;;;;;9967:4;:13;;:20;;;;9942:191;;;;10012:15;9942:191;;;;10047:11;9942:191;;;;10080:3;9942:191;;;;;;10116:5;9942:191;;;;;9923:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10166:1;10147:4;:15;;;:20;;;;;;;:::i;:::-;;;;;;;;10199:1;10178:4;:17;;;:22;;;;;;;:::i;:::-;;;;;;;;10225:1;10211:4;:10;;;:15;;;;;;;:::i;:::-;;;;;;;;10247:34;10265:5;;;;;;;;;;;10272:8;10247:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;8818:1471;;;;;;;8750:1539;;:::o;10297:182::-;10340:23;10375:17;10395:8;:20;10404:10;10395:20;;;;;;;;;;;;;;;10375:40;;10447:4;:13;;10426:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10297:182;:::o;16298:622::-;16342:17;16362:8;:20;16371:10;16362:20;;;;;;;;;;;;;;;16342:40;;16393:17;16413:7;:10;16421:1;16413:10;;;;;;;;;;;16393:30;;16458:2;16442:4;:13;;;:18;16434:27;;;;;;16471:22;16496:4;:13;;;16471:38;;16536:1;16520:4;:13;;:17;;;;16548:11;16562:42;16548:56;;16636:4;:13;;16655:190;;;;;;;;16680:4;:15;;;16655:190;;;;16720:15;16655:190;;;;16755:14;16655:190;;;;16791:3;16655:190;;;;;;16828:5;16655:190;;;;;16636:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16878:1;16859:4;:15;;;:20;;;;;;;:::i;:::-;;;;;;;;16911:1;16890:4;:17;;;:22;;;;;;;:::i;:::-;;;;;;;;16330:590;;;;16298:622::o;7856:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7788:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8088:18::-;;;;;;;;;;;;;:::o;8113:20::-;;;;;;;;;;;;;:::o;10487:555::-;10527:22;10561:17;10581:8;:20;10590:10;10581:20;;;;;;;;;;;;;;;10561:40;;10612:17;10632:7;:10;10640:1;10632:10;;;;;;;;;;;10612:30;;10653:9;10665:19;10673:10;10665:7;:19::i;:::-;10653:31;;10707:6;10702:191;10723:4;:13;;:20;;;;10719:1;:24;10702:191;;;10803:5;10766:42;;:4;:13;;10780:1;10766:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;;;;;;;;;;:42;;;10762:120;;10853:15;10825:4;:13;;10839:1;10825:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;:43;;;;10762:120;10745:3;;;;;:::i;:::-;;;;10702:191;;;;10927:1;10905:4;:18;;;:23;;;;;;;:::i;:::-;;;;;;;;10955:15;10939:4;:13;;:31;;;;10983:32;11001:10;11013:1;10983:4;;;;;;;;;;;:17;;;;:32;;;;;:::i;:::-;11033:1;11026:8;;;;;10487:555;:::o;8008:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16928:2324::-;16978:25;17016:17;17036:8;:12;17045:2;17036:12;;;;;;;;;;;;;;;17016:32;;17062:12;17100:9;17112:1;17100:13;;17095:2128;17119:4;:13;;:20;;;;17115:1;:24;17095:2128;;;17161:19;17183:46;17203:4;:13;;17217:1;17203:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;;17183:15;:19;;:46;;;;:::i;:::-;17161:68;;17246:14;17263:4;:13;;17277:1;17263:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:20;;;17246:37;;17339:5;17302:42;;:4;:13;;17316:1;17302:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;;;;;;;;;;:42;;;17298:1913;;17383:8;:12;17392:2;17383:12;;;;;;;;;;;:26;;;17368:11;:41;17364:323;;17434:19;17456:55;7710:4;17456:39;17467:8;:12;17476:2;17467:12;;;;;;;;;;;:27;;;17456:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;17434:77;;17534:21;17558:65;17620:2;17591:8;:12;17600:2;17591:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;17558:28;17574:11;17558;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;17534:89;;17654:13;17646:21;;;;;:::i;:::-;;;17410:277;;17364:323;17723:8;:12;17732:2;17723:12;;;;;;;;;;;:26;;;17709:11;:40;:85;;;;;17768:8;:12;17777:2;17768:12;;;;;;;;;;;:26;;;17753:11;:41;;17709:85;17705:366;;;17818:19;17840:55;7710:4;17840:39;17851:8;:12;17860:2;17851:12;;;;;;;;;;;:27;;;17840:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;17818:77;;17918:21;17942:65;18004:2;17975:8;:12;17984:2;17975:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;17942:28;17958:11;17942;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;17918:89;;18038:13;18030:21;;;;;:::i;:::-;;;17795:276;;17705:366;18107:8;:12;18116:2;18107:12;;;;;;;;;;;:26;;;18093:11;:40;:85;;;;;18152:8;:12;18161:2;18152:12;;;;;;;;;;;:26;;;18137:11;:41;;18093:85;18089:366;;;18202:19;18224:55;7710:4;18224:39;18235:8;:12;18244:2;18235:12;;;;;;;;;;;:27;;;18224:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;18202:77;;18302:21;18326:65;18388:2;18359:8;:12;18368:2;18359:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;18326:28;18342:11;18326;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;18302:89;;18422:13;18414:21;;;;;:::i;:::-;;;18179:276;;18089:366;18491:8;:12;18500:2;18491:12;;;;;;;;;;;:26;;;18477:11;:40;:85;;;;;18536:8;:12;18545:2;18536:12;;;;;;;;;;;:26;;;18521:11;:41;;18477:85;18473:366;;;18586:19;18608:55;7710:4;18608:39;18619:8;:12;18628:2;18619:12;;;;;;;;;;;:27;;;18608:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;18586:77;;18686:21;18710:65;18772:2;18743:8;:12;18752:2;18743:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;18710:28;18726:11;18710;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;18686:89;;18806:13;18798:21;;;;;:::i;:::-;;;18563:276;;18473:366;18875:8;:12;18884:2;18875:12;;;;;;;;;;;:26;;;18861:11;:40;18857:321;;;18925:19;18947:55;7710:4;18947:39;18958:8;:12;18967:2;18958:12;;;;;;;;;;;:27;;;18947:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;18925:77;;19025:21;19049:65;19111:2;19082:8;:12;19091:2;19082:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;19049:28;19065:11;19049;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;19025:89;;19145:13;19137:21;;;;;:::i;:::-;;;18902:276;;18857:321;17298:1913;17145:2078;;17141:3;;;;;:::i;:::-;;;;17095:2128;;;;19240:4;19233:11;;;;16928:2324;;;:::o;16083:207::-;16129:17;16149:8;:20;16158:10;16149:20;;;;;;;;;;;;;;;16129:40;;16180:12;16195:4;:13;;;16180:28;;16235:1;16219:4;:13;;:17;;;;16247:35;16265:10;16277:4;16247;;;;;;;;;;;:17;;;;:35;;;;;:::i;:::-;16118:172;;16083:207::o;11050:5027::-;11117:17;11137:8;:20;11146:10;11137:20;;;;;;;;;;;;;;;11117:40;;11221:5;11181:45;;:4;:13;;11195:4;11181:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;;;;;;;;;:45;;;11173:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;11282:18;11303:4;:13;;11317:4;11303:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;11282:44;;11338:17;11358:4;:13;;11372:4;11358:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;;11338:48;;11398:16;11417:15;11398:34;;11444:16;11474:9;11463:8;:20;;;;:::i;:::-;11444:39;;11494:19;11548:7;:11;11556:2;11548:11;;;;;;;;;;;:25;;;11537:8;:36;11533:4527;;;11617:16;11636:57;7710:4;11636:41;11651:7;:11;11659:2;11651:11;;;;;;;;;;;:25;;;11636:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;11617:76;;11731:19;11753:59;7710:4;11753:43;11768:8;:12;11777:2;11768:12;;;;;;;;;;;:27;;;11753:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;11731:81;;11827:21;11851:39;7668:5;11851:25;11867:8;11851:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;11827:63;;11960:8;11944:13;11931:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;11917:51;;12021:1;11995:4;:13;;12009:4;11995:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;12076:4;12037;:13;;12051:4;12037:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;12126:15;12095:4;:13;;12109:4;12095:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;12160:42;12178:10;12190:11;12160:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;12217:34;12235:5;;;;;;;;;;;12242:8;12217:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;11574:693;;;11533:4527;;;12289:7;:11;12297:2;12289:11;;;;;;;;;;;:25;;;12277:8;:37;;:77;;;;;12329:7;:11;12337:2;12329:11;;;;;;;;;;;:25;;;12318:8;:36;12277:77;12273:3787;;;12396:16;12415:57;7710:4;12415:41;12430:7;:11;12438:2;12430:11;;;;;;;;;;;:25;;;12415:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;12396:76;;12503:19;12525:59;7710:4;12525:43;12540:8;:12;12549:2;12540:12;;;;;;;;;;;:27;;;12525:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;12503:81;;12599:21;12623:39;7668:5;12623:25;12639:8;12623:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;12599:63;;12714:8;12698:13;12685:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;12671:51;;12765:1;12739:4;:13;;12753:4;12739:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;12820:4;12781;:13;;12795:4;12781:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;12870:15;12839:4;:13;;12853:4;12839:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;12904:42;12922:10;12934:11;12904:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;12961:34;12979:5;;;;;;;;;;;12986:8;12961:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;12355:656;;;12273:3787;;;13033:7;:11;13041:2;13033:11;;;;;;;;;;;:25;;;13021:8;:37;;:77;;;;;13073:7;:11;13081:2;13073:11;;;;;;;;;;;:25;;;13062:8;:36;13021:77;13017:3043;;;13140:16;13159:57;7710:4;13159:41;13174:7;:11;13182:2;13174:11;;;;;;;;;;;:25;;;13159:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;13140:76;;13253:19;13275:59;7710:4;13275:43;13290:8;:12;13299:2;13290:12;;;;;;;;;;;:27;;;13275:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;13253:81;;13349:21;13373:39;7668:5;13373:25;13389:8;13373:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;13349:63;;13464:8;13448:13;13435:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;13421:51;;13515:1;13489:4;:13;;13503:4;13489:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;13570:4;13531;:13;;13545:4;13531:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;13620:15;13589:4;:13;;13603:4;13589:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;13652:42;13670:10;13682:11;13652:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;13709:34;13727:5;;;;;;;;;;;13734:8;13709:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;13099:658;;;13017:3043;;;13779:7;:11;13787:2;13779:11;;;;;;;;;;;:25;;;13767:8;:37;;:77;;;;;13819:7;:11;13827:2;13819:11;;;;;;;;;;;:25;;;13808:8;:36;13767:77;13763:2297;;;13886:16;13905:57;7710:4;13905:41;13920:7;:11;13928:2;13920:11;;;;;;;;;;;:25;;;13905:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;13886:76;;13999:19;14021:59;7710:4;14021:43;14036:8;:12;14045:2;14036:12;;;;;;;;;;;:27;;;14021:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;13999:81;;14095:21;14119:39;7668:5;14119:25;14135:8;14119:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;14095:63;;14210:8;14194:13;14181:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;14167:51;;14261:1;14235:4;:13;;14249:4;14235:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;14316:4;14277;:13;;14291:4;14277:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;14366:15;14335:4;:13;;14349:4;14335:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;14398:42;14416:10;14428:11;14398:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;14455:34;14473:5;;;;;;;;;;;14480:8;14455:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;13845:668;;;13763:2297;;;14535:7;:11;14543:2;14535:11;;;;;;;;;;;:25;;;14523:8;:37;;:77;;;;;14575:7;:11;14583:2;14575:11;;;;;;;;;;;:25;;;14564:8;:36;14523:77;14519:1541;;;14642:16;14661:57;7710:4;14661:41;14676:7;:11;14684:2;14676:11;;;;;;;;;;;:25;;;14661:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;14642:76;;14755:19;14777:59;7710:4;14777:43;14792:8;:12;14801:2;14792:12;;;;;;;;;;;:27;;;14777:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;14755:81;;14851:21;14875:39;7668:5;14875:25;14891:8;14875:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;14851:63;;14966:8;14950:13;14937:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;14923:51;;15017:1;14991:4;:13;;15005:4;14991:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;15072:4;15033;:13;;15047:4;15033:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;15122:15;15091:4;:13;;15105:4;15091:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;15154:42;15172:10;15184:11;15154:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;15211:34;15229:5;;;;;;;;;;;15236:8;15211:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;14601:658;;;14519:1541;;;15281:7;:11;15289:2;15281:11;;;;;;;;;;;:25;;;15269:8;:37;15265:795;;15334:16;15353:57;7710:4;15353:41;15368:7;:11;15376:2;15368:11;;;;;;;;;;;:25;;;15353:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;15334:76;;15447:19;15469:59;7710:4;15469:43;15484:8;:12;15493:2;15484:12;;;;;;;;;;;:27;;;15469:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;15447:81;;15543:21;15567:39;7668:5;15567:25;15583:8;15567:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;15543:63;;15658:8;15642:13;15629:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;15615:51;;15709:1;15683:4;:13;;15697:4;15683:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;15764:4;15725;:13;;15739:4;15725:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;15814:15;15783:4;:13;;15797:4;15783:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;15858:42;15876:10;15888:11;15858:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;15915:34;15933:5;;;;;;;;;;;15940:8;15915:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;15307:656;;;15265:795;;;15984:64;;;;;;;;;;:::i;:::-;;;;;;;;15265:795;14519:1541;13763:2297;13017:3043;12273:3787;11533:4527;11096:4981;;;;;;11050:5027;:::o;7904:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19258:777::-;19296:17;19316:8;:20;19325:10;19316:20;;;;;;;;;;;;;;;19296:40;;19347:17;19367:7;:10;19375:1;19367:10;;;;;;;;;;;19347:30;;19390:9;19402:19;19410:10;19402:7;:19::i;:::-;19390:31;;19439:6;19434:191;19455:4;:13;;:20;;;;19451:1;:24;19434:191;;;19535:5;19498:42;;:4;:13;;19512:1;19498:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;;;;;;;;;;:42;;;19494:120;;19585:15;19557:4;:13;;19571:1;19557:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;:43;;;;19494:120;19477:3;;;;;:::i;:::-;;;;19434:191;;;;19637:4;:13;;19656:228;;;;;;;;19683:4;:15;;;19656:228;;;;19725:15;19656:228;;;;19762:1;19656:228;;;;19787:42;19656:228;;;;;;19865:5;19656:228;;;;;19637:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19917:1;19898:4;:15;;;:20;;;;;;;:::i;:::-;;;;;;;;19950:1;19929:4;:17;;;:22;;;;;;;:::i;:::-;;;;;;;;19980:1;19962:4;:14;;;:19;;;;;;;:::i;:::-;;;;;;;;20008:15;19992:4;:13;;:31;;;;19285:750;;;19258:777::o;4278:248::-;4422:96;4442:5;4472:27;;;4501:4;4507:2;4511:5;4449:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4422:19;:96::i;:::-;4278:248;;;;:::o;6402:246::-;6460:7;6489:1;6484;:6;6480:47;;6514:1;6507:8;;;;6480:47;6537:9;6553:1;6549;:5;;;;:::i;:::-;6537:17;;6582:1;6577;6573;:5;;;;:::i;:::-;:10;6565:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6639:1;6632:8;;;6402:246;;;;;:::o;6654:177::-;6712:7;6744:1;6740;:5;6732:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6787:9;6803:1;6799;:5;;;;:::i;:::-;6787:17;;6822:1;6815:8;;;6654:177;;;;:::o;4061:211::-;4178:86;4198:5;4228:23;;;4253:2;4257:5;4205:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4178:19;:86::i;:::-;4061:211;;;:::o;6214:182::-;6272:7;6305:1;6300;:6;;6292:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6352:9;6368:1;6364;:5;;;;:::i;:::-;6352:17;;6387:1;6380:8;;;6214:182;;;;:::o;5664:336::-;5748:23;5774:69;5802:4;5774:69;;;;;;;;;;;;;;;;;5782:5;5774:27;;;;:69;;;;;:::i;:::-;5748:95;;5878:1;5858:10;:17;:21;5854:139;;;5915:10;5904:30;;;;;;;;;;;;:::i;:::-;5896:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5854:139;5734:266;5664:336;;:::o;1450:193::-;1551:12;1583:52;1605:6;1613:4;1619:1;1622:12;1583:21;:52::i;:::-;1576:59;;1450:193;;;;;:::o;1879:462::-;2003:12;2061:5;2036:21;:30;;2028:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;2128:18;2139:6;2128:10;:18::i;:::-;2120:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2192:12;2206:23;2233:6;:11;;2252:5;2259:4;2233:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:73;;;;2282:51;2299:7;2308:10;2320:12;2282:16;:51::i;:::-;2275:58;;;;1879:462;;;;;;:::o;764:178::-;824:4;841:12;899:7;887:20;879:28;;933:1;926:4;:8;919:15;;;764:178;;;:::o;3485:514::-;3599:12;3628:7;3624:368;;;3659:10;3652:17;;;;3624:368;3726:1;3706:10;:17;:21;3702:279;;;3809:10;3803:17;3870:15;3857:10;3853:2;3849:19;3842:44;3702:279;3952:12;3945:20;;;;;;;;;;;:::i;:::-;;;;;;;;3485:514;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:332::-;1270:4;1308:2;1297:9;1293:18;1285:26;;1321:71;1389:1;1378:9;1374:17;1365:6;1321:71;:::i;:::-;1402:72;1470:2;1459:9;1455:18;1446:6;1402:72;:::i;:::-;1149:332;;;;;:::o;1487:126::-;1524:7;1564:42;1557:5;1553:54;1542:65;;1487:126;;;:::o;1619:96::-;1656:7;1685:24;1703:5;1685:24;:::i;:::-;1674:35;;1619:96;;;:::o;1721:122::-;1794:24;1812:5;1794:24;:::i;:::-;1787:5;1784:35;1774:63;;1833:1;1830;1823:12;1774:63;1721:122;:::o;1849:139::-;1895:5;1933:6;1920:20;1911:29;;1949:33;1976:5;1949:33;:::i;:::-;1849:139;;;;:::o;1994:474::-;2062:6;2070;2119:2;2107:9;2098:7;2094:23;2090:32;2087:119;;;2125:79;;:::i;:::-;2087:119;2245:1;2270:53;2315:7;2306:6;2295:9;2291:22;2270:53;:::i;:::-;2260:63;;2216:117;2372:2;2398:53;2443:7;2434:6;2423:9;2419:22;2398:53;:::i;:::-;2388:63;;2343:118;1994:474;;;;;:::o;2474:135::-;2562:6;2596:5;2590:12;2580:22;;2474:135;;;:::o;2615:205::-;2735:11;2769:6;2764:3;2757:19;2809:4;2804:3;2800:14;2785:29;;2615:205;;;;:::o;2826:153::-;2914:4;2937:3;2929:11;;2967:4;2962:3;2958:14;2950:22;;2826:153;;;:::o;2985:108::-;3062:24;3080:5;3062:24;:::i;:::-;3057:3;3050:37;2985:108;;:::o;3099:::-;3176:24;3194:5;3176:24;:::i;:::-;3171:3;3164:37;3099:108;;:::o;3213:90::-;3247:7;3290:5;3283:13;3276:21;3265:32;;3213:90;;;:::o;3309:99::-;3380:21;3395:5;3380:21;:::i;:::-;3375:3;3368:34;3309:99;;:::o;3448:1020::-;3577:4;3572:3;3568:14;3663:4;3656:5;3652:16;3646:23;3682:63;3739:4;3734:3;3730:14;3716:12;3682:63;:::i;:::-;3592:163;3841:4;3834:5;3830:16;3824:23;3860:63;3917:4;3912:3;3908:14;3894:12;3860:63;:::i;:::-;3765:168;4014:4;4007:5;4003:16;3997:23;4033:63;4090:4;4085:3;4081:14;4067:12;4033:63;:::i;:::-;3943:163;4189:4;4182:5;4178:16;4172:23;4208:63;4265:4;4260:3;4256:14;4242:12;4208:63;:::i;:::-;4116:165;4375:4;4368:5;4364:16;4358:23;4394:57;4445:4;4440:3;4436:14;4422:12;4394:57;:::i;:::-;4291:170;3546:922;3448:1020;;:::o;4474:263::-;4585:10;4606:88;4690:3;4682:6;4606:88;:::i;:::-;4726:4;4721:3;4717:14;4703:28;;4474:263;;;;:::o;4743:134::-;4834:4;4866;4861:3;4857:14;4849:22;;4743:134;;;:::o;4921:900::-;5082:3;5111:75;5180:5;5111:75;:::i;:::-;5202:107;5302:6;5297:3;5202:107;:::i;:::-;5195:114;;5333:77;5404:5;5333:77;:::i;:::-;5433:7;5464:1;5449:347;5474:6;5471:1;5468:13;5449:347;;;5550:6;5544:13;5577:105;5678:3;5663:13;5577:105;:::i;:::-;5570:112;;5705:81;5779:6;5705:81;:::i;:::-;5695:91;;5509:287;5496:1;5493;5489:9;5484:14;;5449:347;;;5453:14;5812:3;5805:10;;5087:734;;;4921:900;;;;:::o;5827:457::-;6012:4;6050:2;6039:9;6035:18;6027:26;;6099:9;6093:4;6089:20;6085:1;6074:9;6070:17;6063:47;6127:150;6272:4;6263:6;6127:150;:::i;:::-;6119:158;;5827:457;;;;:::o;6290:329::-;6349:6;6398:2;6386:9;6377:7;6373:23;6369:32;6366:119;;;6404:79;;:::i;:::-;6366:119;6524:1;6549:53;6594:7;6585:6;6574:9;6570:22;6549:53;:::i;:::-;6539:63;;6495:117;6290:329;;;;:::o;6625:1108::-;6942:4;6980:3;6969:9;6965:19;6957:27;;6994:71;7062:1;7051:9;7047:17;7038:6;6994:71;:::i;:::-;7075:72;7143:2;7132:9;7128:18;7119:6;7075:72;:::i;:::-;7157;7225:2;7214:9;7210:18;7201:6;7157:72;:::i;:::-;7239;7307:2;7296:9;7292:18;7283:6;7239:72;:::i;:::-;7321:73;7389:3;7378:9;7374:19;7365:6;7321:73;:::i;:::-;7404;7472:3;7461:9;7457:19;7448:6;7404:73;:::i;:::-;7487;7555:3;7544:9;7540:19;7531:6;7487:73;:::i;:::-;7570;7638:3;7627:9;7623:19;7614:6;7570:73;:::i;:::-;7653;7721:3;7710:9;7706:19;7697:6;7653:73;:::i;:::-;6625:1108;;;;;;;;;;;;:::o;7739:474::-;7807:6;7815;7864:2;7852:9;7843:7;7839:23;7835:32;7832:119;;;7870:79;;:::i;:::-;7832:119;7990:1;8015:53;8060:7;8051:6;8040:9;8036:22;8015:53;:::i;:::-;8005:63;;7961:117;8117:2;8143:53;8188:7;8179:6;8168:9;8164:22;8143:53;:::i;:::-;8133:63;;8088:118;7739:474;;;;;:::o;8219:118::-;8306:24;8324:5;8306:24;:::i;:::-;8301:3;8294:37;8219:118;;:::o;8343:109::-;8424:21;8439:5;8424:21;:::i;:::-;8419:3;8412:34;8343:109;;:::o;8458:652::-;8657:4;8695:3;8684:9;8680:19;8672:27;;8709:71;8777:1;8766:9;8762:17;8753:6;8709:71;:::i;:::-;8790:72;8858:2;8847:9;8843:18;8834:6;8790:72;:::i;:::-;8872;8940:2;8929:9;8925:18;8916:6;8872:72;:::i;:::-;8954;9022:2;9011:9;9007:18;8998:6;8954:72;:::i;:::-;9036:67;9098:3;9087:9;9083:19;9074:6;9036:67;:::i;:::-;8458:652;;;;;;;;:::o;9116:60::-;9144:3;9165:5;9158:12;;9116:60;;;:::o;9182:142::-;9232:9;9265:53;9283:34;9292:24;9310:5;9292:24;:::i;:::-;9283:34;:::i;:::-;9265:53;:::i;:::-;9252:66;;9182:142;;;:::o;9330:126::-;9380:9;9413:37;9444:5;9413:37;:::i;:::-;9400:50;;9330:126;;;:::o;9462:139::-;9525:9;9558:37;9589:5;9558:37;:::i;:::-;9545:50;;9462:139;;;:::o;9607:157::-;9707:50;9751:5;9707:50;:::i;:::-;9702:3;9695:63;9607:157;;:::o;9770:248::-;9876:4;9914:2;9903:9;9899:18;9891:26;;9927:84;10008:1;9997:9;9993:17;9984:6;9927:84;:::i;:::-;9770:248;;;;:::o;10024:222::-;10117:4;10155:2;10144:9;10140:18;10132:26;;10168:71;10236:1;10225:9;10221:17;10212:6;10168:71;:::i;:::-;10024:222;;;;:::o;10252:::-;10345:4;10383:2;10372:9;10368:18;10360:26;;10396:71;10464:1;10453:9;10449:17;10440:6;10396:71;:::i;:::-;10252:222;;;;:::o;10480:553::-;10657:4;10695:3;10684:9;10680:19;10672:27;;10709:71;10777:1;10766:9;10762:17;10753:6;10709:71;:::i;:::-;10790:72;10858:2;10847:9;10843:18;10834:6;10790:72;:::i;:::-;10872;10940:2;10929:9;10925:18;10916:6;10872:72;:::i;:::-;10954;11022:2;11011:9;11007:18;10998:6;10954:72;:::i;:::-;10480:553;;;;;;;:::o;11039:169::-;11123:11;11157:6;11152:3;11145:19;11197:4;11192:3;11188:14;11173:29;;11039:169;;;;:::o;11214:173::-;11354:25;11350:1;11342:6;11338:14;11331:49;11214:173;:::o;11393:366::-;11535:3;11556:67;11620:2;11615:3;11556:67;:::i;:::-;11549:74;;11632:93;11721:3;11632:93;:::i;:::-;11750:2;11745:3;11741:12;11734:19;;11393:366;;;:::o;11765:419::-;11931:4;11969:2;11958:9;11954:18;11946:26;;12018:9;12012:4;12008:20;12004:1;11993:9;11989:17;11982:47;12046:131;12172:4;12046:131;:::i;:::-;12038:139;;11765:419;;;:::o;12190:176::-;12330:28;12326:1;12318:6;12314:14;12307:52;12190:176;:::o;12372:366::-;12514:3;12535:67;12599:2;12594:3;12535:67;:::i;:::-;12528:74;;12611:93;12700:3;12611:93;:::i;:::-;12729:2;12724:3;12720:12;12713:19;;12372:366;;;:::o;12744:419::-;12910:4;12948:2;12937:9;12933:18;12925:26;;12997:9;12991:4;12987:20;12983:1;12972:9;12968:17;12961:47;13025:131;13151:4;13025:131;:::i;:::-;13017:139;;12744:419;;;:::o;13169:180::-;13217:77;13214:1;13207:88;13314:4;13311:1;13304:15;13338:4;13335:1;13328:15;13355:191;13395:4;13415:20;13433:1;13415:20;:::i;:::-;13410:25;;13449:20;13467:1;13449:20;:::i;:::-;13444:25;;13488:1;13485;13482:8;13479:34;;;13493:18;;:::i;:::-;13479:34;13538:1;13535;13531:9;13523:17;;13355:191;;;;:::o;13552:305::-;13592:3;13611:20;13629:1;13611:20;:::i;:::-;13606:25;;13645:20;13663:1;13645:20;:::i;:::-;13640:25;;13799:1;13731:66;13727:74;13724:1;13721:81;13718:107;;;13805:18;;:::i;:::-;13718:107;13849:1;13846;13842:9;13835:16;;13552:305;;;;:::o;13863:180::-;13911:77;13908:1;13901:88;14008:4;14005:1;13998:15;14032:4;14029:1;14022:15;14049:233;14088:3;14111:24;14129:5;14111:24;:::i;:::-;14102:33;;14157:66;14150:5;14147:77;14144:103;;14227:18;;:::i;:::-;14144:103;14274:1;14267:5;14263:13;14256:20;;14049:233;;;:::o;14288:180::-;14336:77;14333:1;14326:88;14433:4;14430:1;14423:15;14457:4;14454:1;14447:15;14474:185;14514:1;14531:20;14549:1;14531:20;:::i;:::-;14526:25;;14565:20;14583:1;14565:20;:::i;:::-;14560:25;;14604:1;14594:35;;14609:18;;:::i;:::-;14594:35;14651:1;14648;14644:9;14639:14;;14474:185;;;;:::o;14665:182::-;14805:34;14801:1;14793:6;14789:14;14782:58;14665:182;:::o;14853:366::-;14995:3;15016:67;15080:2;15075:3;15016:67;:::i;:::-;15009:74;;15092:93;15181:3;15092:93;:::i;:::-;15210:2;15205:3;15201:12;15194:19;;14853:366;;;:::o;15225:419::-;15391:4;15429:2;15418:9;15414:18;15406:26;;15478:9;15472:4;15468:20;15464:1;15453:9;15449:17;15442:47;15506:131;15632:4;15506:131;:::i;:::-;15498:139;;15225:419;;;:::o;15650:241::-;15790:34;15786:1;15778:6;15774:14;15767:58;15859:24;15854:2;15846:6;15842:15;15835:49;15650:241;:::o;15897:366::-;16039:3;16060:67;16124:2;16119:3;16060:67;:::i;:::-;16053:74;;16136:93;16225:3;16136:93;:::i;:::-;16254:2;16249:3;16245:12;16238:19;;15897:366;;;:::o;16269:419::-;16435:4;16473:2;16462:9;16458:18;16450:26;;16522:9;16516:4;16512:20;16508:1;16497:9;16493:17;16486:47;16550:131;16676:4;16550:131;:::i;:::-;16542:139;;16269:419;;;:::o;16694:442::-;16843:4;16881:2;16870:9;16866:18;16858:26;;16894:71;16962:1;16951:9;16947:17;16938:6;16894:71;:::i;:::-;16975:72;17043:2;17032:9;17028:18;17019:6;16975:72;:::i;:::-;17057;17125:2;17114:9;17110:18;17101:6;17057:72;:::i;:::-;16694:442;;;;;;:::o;17142:348::-;17182:7;17205:20;17223:1;17205:20;:::i;:::-;17200:25;;17239:20;17257:1;17239:20;:::i;:::-;17234:25;;17427:1;17359:66;17355:74;17352:1;17349:81;17344:1;17337:9;17330:17;17326:105;17323:131;;;17434:18;;:::i;:::-;17323:131;17482:1;17479;17475:9;17464:20;;17142:348;;;;:::o;17496:220::-;17636:34;17632:1;17624:6;17620:14;17613:58;17705:3;17700:2;17692:6;17688:15;17681:28;17496:220;:::o;17722:366::-;17864:3;17885:67;17949:2;17944:3;17885:67;:::i;:::-;17878:74;;17961:93;18050:3;17961:93;:::i;:::-;18079:2;18074:3;18070:12;18063:19;;17722:366;;;:::o;18094:419::-;18260:4;18298:2;18287:9;18283:18;18275:26;;18347:9;18341:4;18337:20;18333:1;18322:9;18318:17;18311:47;18375:131;18501:4;18375:131;:::i;:::-;18367:139;;18094:419;;;:::o;18519:176::-;18659:28;18655:1;18647:6;18643:14;18636:52;18519:176;:::o;18701:366::-;18843:3;18864:67;18928:2;18923:3;18864:67;:::i;:::-;18857:74;;18940:93;19029:3;18940:93;:::i;:::-;19058:2;19053:3;19049:12;19042:19;;18701:366;;;:::o;19073:419::-;19239:4;19277:2;19266:9;19262:18;19254:26;;19326:9;19320:4;19316:20;19312:1;19301:9;19297:17;19290:47;19354:131;19480:4;19354:131;:::i;:::-;19346:139;;19073:419;;;:::o;19498:332::-;19619:4;19657:2;19646:9;19642:18;19634:26;;19670:71;19738:1;19727:9;19723:17;19714:6;19670:71;:::i;:::-;19751:72;19819:2;19808:9;19804:18;19795:6;19751:72;:::i;:::-;19498:332;;;;;:::o;19836:180::-;19976:32;19972:1;19964:6;19960:14;19953:56;19836:180;:::o;20022:366::-;20164:3;20185:67;20249:2;20244:3;20185:67;:::i;:::-;20178:74;;20261:93;20350:3;20261:93;:::i;:::-;20379:2;20374:3;20370:12;20363:19;;20022:366;;;:::o;20394:419::-;20560:4;20598:2;20587:9;20583:18;20575:26;;20647:9;20641:4;20637:20;20633:1;20622:9;20618:17;20611:47;20675:131;20801:4;20675:131;:::i;:::-;20667:139;;20394:419;;;:::o;20819:116::-;20889:21;20904:5;20889:21;:::i;:::-;20882:5;20879:32;20869:60;;20925:1;20922;20915:12;20869:60;20819:116;:::o;20941:137::-;20995:5;21026:6;21020:13;21011:22;;21042:30;21066:5;21042:30;:::i;:::-;20941:137;;;;:::o;21084:345::-;21151:6;21200:2;21188:9;21179:7;21175:23;21171:32;21168:119;;;21206:79;;:::i;:::-;21168:119;21326:1;21351:61;21404:7;21395:6;21384:9;21380:22;21351:61;:::i;:::-;21341:71;;21297:125;21084:345;;;;:::o;21435:229::-;21575:34;21571:1;21563:6;21559:14;21552:58;21644:12;21639:2;21631:6;21627:15;21620:37;21435:229;:::o;21670:366::-;21812:3;21833:67;21897:2;21892:3;21833:67;:::i;:::-;21826:74;;21909:93;21998:3;21909:93;:::i;:::-;22027:2;22022:3;22018:12;22011:19;;21670:366;;;:::o;22042:419::-;22208:4;22246:2;22235:9;22231:18;22223:26;;22295:9;22289:4;22285:20;22281:1;22270:9;22266:17;22259:47;22323:131;22449:4;22323:131;:::i;:::-;22315:139;;22042:419;;;:::o;22467:225::-;22607:34;22603:1;22595:6;22591:14;22584:58;22676:8;22671:2;22663:6;22659:15;22652:33;22467:225;:::o;22698:366::-;22840:3;22861:67;22925:2;22920:3;22861:67;:::i;:::-;22854:74;;22937:93;23026:3;22937:93;:::i;:::-;23055:2;23050:3;23046:12;23039:19;;22698:366;;;:::o;23070:419::-;23236:4;23274:2;23263:9;23259:18;23251:26;;23323:9;23317:4;23313:20;23309:1;23298:9;23294:17;23287:47;23351:131;23477:4;23351:131;:::i;:::-;23343:139;;23070:419;;;:::o;23495:179::-;23635:31;23631:1;23623:6;23619:14;23612:55;23495:179;:::o;23680:366::-;23822:3;23843:67;23907:2;23902:3;23843:67;:::i;:::-;23836:74;;23919:93;24008:3;23919:93;:::i;:::-;24037:2;24032:3;24028:12;24021:19;;23680:366;;;:::o;24052:419::-;24218:4;24256:2;24245:9;24241:18;24233:26;;24305:9;24299:4;24295:20;24291:1;24280:9;24276:17;24269:47;24333:131;24459:4;24333:131;:::i;:::-;24325:139;;24052:419;;;:::o;24477:98::-;24528:6;24562:5;24556:12;24546:22;;24477:98;;;:::o;24581:147::-;24682:11;24719:3;24704:18;;24581:147;;;;:::o;24734:307::-;24802:1;24812:113;24826:6;24823:1;24820:13;24812:113;;;24911:1;24906:3;24902:11;24896:18;24892:1;24887:3;24883:11;24876:39;24848:2;24845:1;24841:10;24836:15;;24812:113;;;24943:6;24940:1;24937:13;24934:101;;;25023:1;25014:6;25009:3;25005:16;24998:27;24934:101;24783:258;24734:307;;;:::o;25047:373::-;25151:3;25179:38;25211:5;25179:38;:::i;:::-;25233:88;25314:6;25309:3;25233:88;:::i;:::-;25226:95;;25330:52;25375:6;25370:3;25363:4;25356:5;25352:16;25330:52;:::i;:::-;25407:6;25402:3;25398:16;25391:23;;25155:265;25047:373;;;;:::o;25426:271::-;25556:3;25578:93;25667:3;25658:6;25578:93;:::i;:::-;25571:100;;25688:3;25681:10;;25426:271;;;;:::o;25703:99::-;25755:6;25789:5;25783:12;25773:22;;25703:99;;;:::o;25808:102::-;25849:6;25900:2;25896:7;25891:2;25884:5;25880:14;25876:28;25866:38;;25808:102;;;:::o;25916:364::-;26004:3;26032:39;26065:5;26032:39;:::i;:::-;26087:71;26151:6;26146:3;26087:71;:::i;:::-;26080:78;;26167:52;26212:6;26207:3;26200:4;26193:5;26189:16;26167:52;:::i;:::-;26244:29;26266:6;26244:29;:::i;:::-;26239:3;26235:39;26228:46;;26008:272;25916:364;;;;:::o;26286:313::-;26399:4;26437:2;26426:9;26422:18;26414:26;;26486:9;26480:4;26476:20;26472:1;26461:9;26457:17;26450:47;26514:78;26587:4;26578:6;26514:78;:::i;:::-;26506:86;;26286:313;;;;:::o

Swarm Source

ipfs://946ef8215a2b3089b7bf3930d3b962dcb7dbf7e33a4d8962c7ff5652cf2cac62

Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.