Contract 0x142b123183f5ecb5ca00c3c47c09406432019d11 5

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x2bb396fffc4bbbb06970224a366351b678944f2ec87c37f1579d6f63ce6fde94Stake Ref Bonus345469652022-10-19 18:42:58106 days 22 hrs ago0x2e2c118d1164dc1a8159a4f40e70509f1968363f IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.019732656994 155.980752009
0x1c07ddad04edce791b0556c47c90eae87222c534d085df2dc7e5ae04c59eb8a1Compound342375162022-10-12 4:45:55114 days 12 hrs ago0xdd72754b15fa0cafd8bb9cc85f95f015c4e53df7 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.00632699863 30.070000003
0xfa1df92a65350ec142be1ff333e850365f1907aee7182342db142a018d93fb37Compound342219792022-10-11 19:45:05114 days 21 hrs ago0xefdc7dda71c2dcb96c7f24534e62605ede6100ff IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.005841888344 35.527901336
0xdc96f954c37e47ec05a0ebcf4014e6e2fdb3fd09f252432620c38bf8b52166fbCompound342063782022-10-11 10:46:07115 days 6 hrs ago0xf92d5cf7bad5923ff846875a965b2f439d8669c2 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.007603770012 30.000000049
0x2be81ee868e4f13af56593fedc133bfacc3c869c15d0b8145dae06b229fdf5ccCompound341726262022-10-10 15:07:54116 days 1 hr ago0x2bad87da2993b4a6f2e02bc44bbfc0edb8bd371a IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.005460380405 30.341852201
0xed90a6a1b1f9a8b508528ceed22cbe8da84d3a8df15c7d619573734b5ec45f24Compound341725432022-10-10 15:05:00116 days 1 hr ago0x90773772b9cc1f45b5ace406bb4ce379f4a0c3b4 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.008324273614 30.319258194
0xcfaebcdd4d5b31b447c2bd6fd80b27b2c4d8f2b38e8c44764ad56124c6438ebaStake Ref Bonus341725172022-10-10 15:04:08116 days 2 hrs ago0x90773772b9cc1f45b5ace406bb4ce379f4a0c3b4 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.003822027441 30.211983858
0xc7c79336d60ac1994bac7efbc7b3f805bdf674efe682aca5967659233b68ff7cCompound341643012022-10-10 10:21:29116 days 6 hrs ago0x1645b63babc2090f2dea3722b6d2301dc81d82e2 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.008670539004 48.500000027
0x01f399672cd6059c0e5e2f9b6257a6a8a97fc7ee4255b65330b569d22b3d204bCompound341575702022-10-10 6:23:08116 days 10 hrs ago0x86bc0692962cdb8a1ea69f5b6e49ecccee1bd48e IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.007155660003 30.000000013
0xcdde5fd550e57ecf74fc2206dba8da82b51672f52a91a381c43b7982f381931dCompound341499532022-10-10 2:01:12116 days 15 hrs ago0xf92d5cf7bad5923ff846875a965b2f439d8669c2 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.007288039715 30.555000022
0xabd0b1cff417b07739e8ddc07f3597a4a49383284c561a14f01a66da8dc1069bCompound341282232022-10-09 13:27:21117 days 3 hrs ago0xad128344e6a741cef88fbc3b2613e1affb2e0150 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.005889750759 30.069999996
0x683440b9a5ffff4cfcffc87dceb03f9933c6b87a1a26b615b7c55c6bcc42907eCompound341205582022-10-09 8:59:27117 days 8 hrs ago0x86bc0692962cdb8a1ea69f5b6e49ecccee1bd48e IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.006707550003 30.000000015
0x01ec88e1e5b916901494c4ce011e551816088e1411cb8cd102d5652a375ef8faCompound341195712022-10-09 8:25:33117 days 8 hrs ago0x4ae1d228796837c0bbb08ea09241bc2b2a3fc9e3 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.00682573531
0x1044cbd28b84a39ed98ab3d2a6ad59c9ffbc7b53a7b448dcff1f5d6ce6219f8cCompound341160552022-10-09 6:20:19117 days 10 hrs ago0xf92d5cf7bad5923ff846875a965b2f439d8669c2 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.006707550003 30.000000014
0x8010c96865e8c3b62ef623ff0d74d0b3424a523a4a203ee441b96e7239e22f3dCompound340798232022-10-08 9:07:51118 days 7 hrs ago0x86bc0692962cdb8a1ea69f5b6e49ecccee1bd48e IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.006259440004 30.000000022
0x3a7ce1bbcdee34c127a34ac82f279d24c0e77cddf2918d387ddef90644992f68Compound340766382022-10-08 7:16:07118 days 9 hrs ago0xb6ee38f04ad0b01525c8fae931ad4309a45e5c5d IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.013877310012 30.000000028
0xde68c1a088553895ad261290e6ce9cb865460f133480919722ea78fe7c416682Compound340750722022-10-08 6:20:08118 days 10 hrs ago0x23f379331d5b3e7c6a304c5a54f0848416393adc IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.004926990002 30.000000014
0xd21b7b8a8640528c1c3f2ede737ab8f0da4e0f3c88036aab77fbb4ac4a708600Withdraw Divs340647182022-10-08 0:15:30118 days 16 hrs ago0x475efa3cabf7c28cd3d084a1b1055b01ddcf1181 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.003684780003 30.000000025
0x3f19afdbf98d414e2ba232639c0f10d9fb0ab8929e9bf3d4f52ecbf912d0028dCompound340647132022-10-08 0:15:10118 days 16 hrs ago0x475efa3cabf7c28cd3d084a1b1055b01ddcf1181 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.005363220003 30.000000021
0xa0c9e9c7f56fe6a8ea4231da054ffe7bb236d0b719b12c25b881f2ac0651dfc1Compound340647102022-10-08 0:14:58118 days 16 hrs ago0x475efa3cabf7c28cd3d084a1b1055b01ddcf1181 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.005375734181 30.070000006
0x794606466b464b04d8cf231a2f5b954fb02baf5a9ce25cd5876a15b47addba0fWithdraw Divs340568322022-10-07 19:41:38118 days 21 hrs ago0x995a2d34e7aa0a77c18dd2806da4c0d4ab945739 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.003752948433 30.555000025
0x0b08498a89d09ad32430f14b30d3d40d0f050645a1ce1a29c9f7133a6cb02293Compound340565312022-10-07 19:31:16118 days 21 hrs ago0x995a2d34e7aa0a77c18dd2806da4c0d4ab945739 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.005398860002 30.000000015
0x8f22c173360831a7ea5695e2bdd6b25ceae737075478a6c66ddc21a6fb868819Compound340491672022-10-07 15:15:56119 days 1 hr ago0xf92d5cf7bad5923ff846875a965b2f439d8669c2 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.006259440005 30.000000028
0xbdfb08d29838f92a85e8249f0e5ae4e08afbfa708e0c8cf704a20c229de57edaCompound340485882022-10-07 14:56:00119 days 2 hrs ago0x6de1999daf1f6106f6f57a0721c2809e54596f5a IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.00755373001 30.000000041
0xf686ac4d66fce1b3ef62178bd580082e62e6467bfc63119242e2b4029ff7c621Withdraw Initial340436082022-10-07 12:04:40119 days 5 hrs ago0x4ae1d228796837c0bbb08ea09241bc2b2a3fc9e3 IN  0x142b123183f5ecb5ca00c3c47c09406432019d110 MATIC0.002751905522 30.555000025
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WealthMountainMATIC

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 polygonscan.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 WealthMountainMATIC {
    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(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174);


    }
    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;

            // payable(msg.sender).transfer(transferAmt);
            // payable(owner).transfer(minusAmt); 
            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"}]

6080604052601e600055606460015534801561001a57600080fd5b5033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280620d2f008152602001600a81525060046000600a815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280621a5e008152602001601481525060046000601481526020019081526020016000206000820151816000015560208201518160010155905050604051806040016040528062278d008152602001601e81525060046000601e8152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806234bc00815260200160288152506004600060288152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806241eb0081526020016032815250600460006032815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280620d2f008152602001606481525060056000600a815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280621a5e00815260200160508152506005600060148152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806234bc008152602001603281525060056000601e8152602001908152602001600020600082015181600001556020820151816001015590505060405180604001604052806241eb008152602001601481525060056000602881526020019081526020016000206000820151816000015560208201518160010155905050732791bca1f2de4661ed88a30c99a7a9449aa84174600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061392f806103246000396000f3fe6080604052600436106100e85760003560e01c80638da5cb5b1161008a578063cce0051d11610059578063cce0051d1461030d578063cf4fef4f14610324578063e77a0ce21461034d578063f69e20461461038b576100e8565b80638da5cb5b1461023a5780639ddf840d14610265578063a49c2bf114610290578063bd5aff6e146102d0576100e8565b806348cfb891116100c657806348cfb891146101725780635036f5f614610189578063749369f8146101ce57806389a302711461020f576100e8565b80631e8e37d8146100ed5780633acb1a0a1461012b57806343a6f4ee14610147575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f9190612b98565b6103a2565b604051610122929190612bd4565b60405180910390f35b61014560048036038101906101409190612c5b565b6103c6565b005b34801561015357600080fd5b5061015c610905565b6040516101699190612deb565b60405180910390f35b34801561017e57600080fd5b50610187610a39565b005b34801561019557600080fd5b506101b060048036038101906101ab9190612e0d565b610bf5565b6040516101c599989796959493929190612e3a565b60405180910390f35b3480156101da57600080fd5b506101f560048036038101906101f09190612ec7565b610c43565b604051610206959493929190612f25565b60405180910390f35b34801561021b57600080fd5b50610224610cb3565b6040516102319190612fd7565b60405180910390f35b34801561024657600080fd5b5061024f610cd9565b60405161025c9190612ff2565b60405180910390f35b34801561027157600080fd5b5061027a610cff565b604051610287919061300d565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612b98565b610e75565b6040516102c79493929190613028565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612e0d565b610ea5565b604051610304919061300d565b60405180910390f35b34801561031957600080fd5b506103226113e9565b005b34801561033057600080fd5b5061034b60048036038101906103469190612b98565b611490565b005b34801561035957600080fd5b50610374600480360381019061036f9190612b98565b61242f565b604051610382929190612bd4565b60405180910390f35b34801561039757600080fd5b506103a0612453565b005b60056020528060005260406000206000915090508060000154908060010154905082565b6362c85480421015806104265750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045c906130ca565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ca90613136565b60405180910390fd5b610522333084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126aa909392919063ffffffff16565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006006600060018152602001908152602001600020905060008360060154036105df574283600601819055504283600001819055505b60006001546103e86105f19190613185565b9050600061061c6103e861060e848a61273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006106496103e861063b6001548b61273390919063ffffffff16565b6127ad90919063ffffffff16565b90508186600301600082825461065f91906131b9565b9250508190555060006106916103e86106836000548661273390919063ffffffff16565b6127ad90919063ffffffff16565b905061dead73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036107055760008660020160008282546106dd91906131b9565b9250508190555060008760020160008282546106f991906131b9565b9250508190555061073c565b8086600201600082825461071991906131b9565b925050819055508087600201600082825461073491906131b9565b925050819055505b866009016040518060a00160405280896009018054905081526020014281526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff0219169083151502179055505050600187600801600082825461084c91906131b9565b92505081905550600185600001600082825461086891906131b9565b92505081905550600185600201600082825461088491906131b9565b925050819055506108fa600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050505050505050565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600901805480602002602001604051908101604052809291908181526020016000905b82821015610a2f57838290600052602060002090600402016040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160149054906101000a900460ff1615151515815250508152602001906001019061096e565b5050505091505090565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060066000600181526020019081526020016000209050600a826002015411610aa557600080fd5b60008260020154905060008360020181905550600061dead9050836009016040518060a00160405280866008015481526020014281526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff02191690831515021790555050506001846008016000828254610bcc91906131b9565b925050819055506001836000016000828254610be891906131b9565b9250508190555050505050565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080154905089565b6002602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900460ff16905085565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600660006001815260200190815260200160002090506000610d6633610ea5565b905060005b8360090180549050811015610dfa5760001515846009018281548110610d9457610d9361320f565b5b906000526020600020906004020160030160149054906101000a900460ff16151503610de75742846009018281548110610dd157610dd061320f565b5b9060005260206000209060040201600101819055505b8080610df29061323e565b915050610d6b565b5080826001016000828254610e0f91906131b9565b92505081905550428360060181905550610e6c3382600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b80935050505090565b60066020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b82600901805490508110156113de576000610f3c846009018381548110610f1b57610f1a61320f565b5b9060005260206000209060040201600101544261289190919063ffffffff16565b90506000846009018381548110610f5657610f5561320f565b5b906000526020600020906004020160020154905060001515856009018481548110610f8457610f8361320f565b5b906000526020600020906004020160030160149054906101000a900460ff161515036113c95760046000601481526020019081526020016000206000015482116110675760006110086103e8610ffa60046000600a8152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611054600a60046000600a81526020019081526020016000206000015461103391906132b5565b611046868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661106291906131b9565b955050505b600460006014815260200190815260200160002060000154821180156110a4575060046000601e8152602001908152602001600020600001548211155b156111485760006110e96103e86110db6004600060148152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611135600a60046000600a81526020019081526020016000206000015461111491906132b5565b611127868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661114391906131b9565b955050505b60046000601e8152602001908152602001600020600001548211801561118557506004600060288152602001908152602001600020600001548211155b156112295760006111ca6103e86111bc60046000601e8152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611216600a60046000600a8152602001908152602001600020600001546111f591906132b5565b611208868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661122491906131b9565b955050505b6004600060288152602001908152602001600020600001548211801561126657506004600060328152602001908152602001600020600001548211155b1561130a5760006112ab6103e861129d6004600060288152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006112f7600a60046000600a8152602001908152602001600020600001546112d691906132b5565b6112e9868561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050808661130591906131b9565b955050505b6004600060328152602001908152602001600020600001548211156113c85760006113696103e861135b6004600060328152602001908152602001600020600101548561273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006113b5600a60046000600a81526020019081526020016000206000015461139491906132b5565b6113a7868561273390919063ffffffff16565b6127ad90919063ffffffff16565b905080866113c391906131b9565b955050505b5b505080806113d69061323e565b915050610ef1565b508092505050919050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015490506000826002018190555061148c3382600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b5050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160090183815481106114ed576114ec61320f565b5b906000526020600020906004020160030160149054906101000a900460ff1615151461154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590613332565b60405180910390fd5b60008160090183815481106115665761156561320f565b5b906000526020600020906004020160020154905060008260090184815481106115925761159161320f565b5b90600052602060002090600402016001015490506000429050600082826115b99190613185565b9050600060056000600a81526020019081526020016000206000015482101561180257600061161c6103e861160e60056000600a8152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061165e6103e861165060046000600a8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061168a6201518061167c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961169991906131b9565b6116a39190613185565b93506000896009018b815481106116bd576116bc61320f565b5b9060005260206000209060040201600201819055506001896009018b815481106116ea576116e961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106117295761172861320f565b5b90600052602060002090600402016001018190555061178b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b6117fa600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612426565b60056000600a815260200190815260200160002060000154821015801561183f575060056000601481526020019081526020016000206000015482105b15611a6a5760006118846103e86118766005600060148152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006118c66103e86118b860046000600a8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006118f2620151806118e4878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961190191906131b9565b61190b9190613185565b93506000896009018b815481106119255761192461320f565b5b9060005260206000209060040201600201819055506001896009018b815481106119525761195161320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106119915761199061320f565b5b9060005260206000209060040201600101819055506119f33385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611a62600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612425565b6005600060148152602001908152602001600020600001548210158015611aa7575060056000601e81526020019081526020016000206000015482105b15611cd2576000611aec6103e8611ade60056000601e8152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611b2e6103e8611b206004600060148152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611b5a62015180611b4c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050828189611b6991906131b9565b611b739190613185565b93506000896009018b81548110611b8d57611b8c61320f565b5b9060005260206000209060040201600201819055506001896009018b81548110611bba57611bb961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b81548110611bf957611bf861320f565b5b906000526020600020906004020160010181905550611c5b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611cca600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612424565b60056000601e8152602001908152602001600020600001548210158015611d0f575060056000602881526020019081526020016000206000015482105b15611f3a576000611d546103e8611d466005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611d966103e8611d8860046000601e8152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611dc262015180611db4878561273390919063ffffffff16565b6127ad90919063ffffffff16565b9050828189611dd191906131b9565b611ddb9190613185565b93506000896009018b81548110611df557611df461320f565b5b9060005260206000209060040201600201819055506001896009018b81548110611e2257611e2161320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b81548110611e6157611e6061320f565b5b906000526020600020906004020160010181905550611ec33385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b611f32600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612423565b6005600060288152602001908152602001600020600001548210158015611f77575060056000603281526020019081526020016000206000015482105b156121a2576000611fbc6103e8611fae6005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b90506000611ffe6103e8611ff06004600060288152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061202a6201518061201c878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961203991906131b9565b6120439190613185565b93506000896009018b8154811061205d5761205c61320f565b5b9060005260206000209060040201600201819055506001896009018b8154811061208a5761208961320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b815481106120c9576120c861320f565b5b90600052602060002090600402016001018190555061212b3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b61219a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612422565b60056000603281526020019081526020016000206000015482106123e65760006122006103e86121f26005600060288152602001908152602001600020600101548961273390919063ffffffff16565b6127ad90919063ffffffff16565b905060006122426103e86122346004600060328152602001908152602001600020600101548a61273390919063ffffffff16565b6127ad90919063ffffffff16565b9050600061226e62015180612260878561273390919063ffffffff16565b6127ad90919063ffffffff16565b905082818961227d91906131b9565b6122879190613185565b93506000896009018b815481106122a1576122a061320f565b5b9060005260206000209060040201600201819055506001896009018b815481106122ce576122cd61320f565b5b906000526020600020906004020160030160146101000a81548160ff02191690831515021790555042896009018b8154811061230d5761230c61320f565b5b90600052602060002090600402016001018190555061236f3385600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b6123de600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661280b9092919063ffffffff16565b505050612421565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612418906133c4565b60405180910390fd5b5b5b5b5b5b50505050505050565b60046020528060005260406000206000915090508060000154908060010154905082565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006006600060018152602001908152602001600020905060006124b933610ea5565b905060005b836009018054905081101561254d57600015158460090182815481106124e7576124e661320f565b5b906000526020600020906004020160030160149054906101000a900460ff1615150361253a57428460090182815481106125245761252361320f565b5b9060005260206000209060040201600101819055505b80806125459061323e565b9150506124be565b50826009016040518060a001604052808560080154815260200142815260200183815260200161dead73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff0219169083151502179055505050600183600801600082825461265d91906131b9565b92505081905550600182600001600082825461267991906131b9565b92505081905550600182600301600082825461269591906131b9565b92505081905550428360060181905550505050565b61272d846323b872dd60e01b8585856040516024016126cb939291906133e4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128f0565b50505050565b600080830361274557600090506127a7565b60008284612753919061341b565b905082848261276291906132b5565b146127a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612799906134e7565b60405180910390fd5b809150505b92915050565b60008082116127f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e890613553565b60405180910390fd5b600082846127ff91906132b5565b90508091505092915050565b61288c8363a9059cbb60e01b848460405160240161282a929190613573565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506128f0565b505050565b6000828211156128d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cd906135e8565b60405180910390fd5b600082846128e49190613185565b90508091505092915050565b6000612952826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166129b79092919063ffffffff16565b90506000815111156129b257808060200190518101906129729190613634565b6129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a8906136d3565b60405180910390fd5b5b505050565b60606129c684846000856129cf565b90509392505050565b606082471015612a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0b90613765565b60405180910390fd5b612a1d85612ae3565b612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a53906137d1565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612a85919061386b565b60006040518083038185875af1925050503d8060008114612ac2576040519150601f19603f3d011682016040523d82523d6000602084013e612ac7565b606091505b5091509150612ad7828286612af6565b92505050949350505050565b600080823b905060008111915050919050565b60608315612b0657829050612b56565b600083511115612b195782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4d91906138d7565b60405180910390fd5b9392505050565b600080fd5b6000819050919050565b612b7581612b62565b8114612b8057600080fd5b50565b600081359050612b9281612b6c565b92915050565b600060208284031215612bae57612bad612b5d565b5b6000612bbc84828501612b83565b91505092915050565b612bce81612b62565b82525050565b6000604082019050612be96000830185612bc5565b612bf66020830184612bc5565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2882612bfd565b9050919050565b612c3881612c1d565b8114612c4357600080fd5b50565b600081359050612c5581612c2f565b92915050565b60008060408385031215612c7257612c71612b5d565b5b6000612c8085828601612b83565b9250506020612c9185828601612c46565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cd081612b62565b82525050565b612cdf81612c1d565b82525050565b60008115159050919050565b612cfa81612ce5565b82525050565b60a082016000820151612d166000850182612cc7565b506020820151612d296020850182612cc7565b506040820151612d3c6040850182612cc7565b506060820151612d4f6060850182612cd6565b506080820151612d626080850182612cf1565b50505050565b6000612d748383612d00565b60a08301905092915050565b6000602082019050919050565b6000612d9882612c9b565b612da28185612ca6565b9350612dad83612cb7565b8060005b83811015612dde578151612dc58882612d68565b9750612dd083612d80565b925050600181019050612db1565b5085935050505092915050565b60006020820190508181036000830152612e058184612d8d565b905092915050565b600060208284031215612e2357612e22612b5d565b5b6000612e3184828501612c46565b91505092915050565b600061012082019050612e50600083018c612bc5565b612e5d602083018b612bc5565b612e6a604083018a612bc5565b612e776060830189612bc5565b612e846080830188612bc5565b612e9160a0830187612bc5565b612e9e60c0830186612bc5565b612eab60e0830185612bc5565b612eb9610100830184612bc5565b9a9950505050505050505050565b60008060408385031215612ede57612edd612b5d565b5b6000612eec85828601612c46565b9250506020612efd85828601612b83565b9150509250929050565b612f1081612c1d565b82525050565b612f1f81612ce5565b82525050565b600060a082019050612f3a6000830188612bc5565b612f476020830187612bc5565b612f546040830186612bc5565b612f616060830185612f07565b612f6e6080830184612f16565b9695505050505050565b6000819050919050565b6000612f9d612f98612f9384612bfd565b612f78565b612bfd565b9050919050565b6000612faf82612f82565b9050919050565b6000612fc182612fa4565b9050919050565b612fd181612fb6565b82525050565b6000602082019050612fec6000830184612fc8565b92915050565b60006020820190506130076000830184612f07565b92915050565b60006020820190506130226000830184612bc5565b92915050565b600060808201905061303d6000830187612bc5565b61304a6020830186612bc5565b6130576040830185612bc5565b6130646060830184612bc5565b95945050505050565b600082825260208201905092915050565b7f41707020646964206e6f74206c61756e6368207965742e000000000000000000600082015250565b60006130b460178361306d565b91506130bf8261307e565b602082019050919050565b600060208201905081810360008301526130e3816130a7565b9050919050565b7f596f752063616e6e6f7420726566657220796f757273656c6621000000000000600082015250565b6000613120601a8361306d565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061319082612b62565b915061319b83612b62565b9250828210156131ae576131ad613156565b5b828203905092915050565b60006131c482612b62565b91506131cf83612b62565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561320457613203613156565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061324982612b62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361327b5761327a613156565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132c082612b62565b91506132cb83612b62565b9250826132db576132da613286565b5b828204905092915050565b7f546869732068617320616c7265616479206265656e2077697468647261776e2e600082015250565b600061331c60208361306d565b9150613327826132e6565b602082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f436f756c64206e6f742063616c63756c617465207468652023206f662064617960008201527f7320796f7576277665206265656e207374616b65642e00000000000000000000602082015250565b60006133ae60368361306d565b91506133b982613352565b604082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b60006060820190506133f96000830186612f07565b6134066020830185612f07565b6134136040830184612bc5565b949350505050565b600061342682612b62565b915061343183612b62565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561346a57613469613156565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134d160218361306d565b91506134dc82613475565b604082019050919050565b60006020820190508181036000830152613500816134c4565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b600061353d601a8361306d565b915061354882613507565b602082019050919050565b6000602082019050818103600083015261356c81613530565b9050919050565b60006040820190506135886000830185612f07565b6135956020830184612bc5565b9392505050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b60006135d2601e8361306d565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b61361181612ce5565b811461361c57600080fd5b50565b60008151905061362e81613608565b92915050565b60006020828403121561364a57613649612b5d565b5b60006136588482850161361f565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006136bd602a8361306d565b91506136c882613661565b604082019050919050565b600060208201905081810360008301526136ec816136b0565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b600061374f60268361306d565b915061375a826136f3565b604082019050919050565b6000602082019050818103600083015261377e81613742565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006137bb601d8361306d565b91506137c682613785565b602082019050919050565b600060208201905081810360008301526137ea816137ae565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561382557808201518184015260208101905061380a565b83811115613834576000848401525b50505050565b6000613845826137f1565b61384f81856137fc565b935061385f818560208601613807565b80840191505092915050565b6000613877828461383a565b915081905092915050565b600081519050919050565b6000601f19601f8301169050919050565b60006138a982613882565b6138b3818561306d565b93506138c3818560208601613807565b6138cc8161388d565b840191505092915050565b600060208201905081810360008301526138f1818461389e565b90509291505056fea26469706673582212209a560a5de07db34ab51fc16d85dff9dd88592f293fbe143d94dafc635fffa1ed64736f6c634300080d0033

Deployed ByteCode Sourcemap

7531:12619:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7958:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;8752:1542;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10302:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16410:622;;;;;;;;;;;;;:::i;:::-;;7858:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7790:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;8090:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8115:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10492:553;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8010:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;17040:2324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16193:209;;;;;;;;;;;;;:::i;:::-;;11053:5134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7906:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;19370:777;;;;;;;;;;;;;:::i;:::-;;7958:45;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8752:1542::-;7626:10;8839:15;:25;;:48;;;;8882:5;;;;;;;;;;;8868:19;;:10;:19;;;8839:48;8831:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;8941:10;8934:17;;:3;:17;;;8926:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8993:54;9015:10;9035:4;9042;8993;;;;;;;;;;;:21;;;;:54;;;;;;:::i;:::-;9058:17;9078:8;:20;9087:10;9078:20;;;;;;;;;;;;;;;9058:40;;9109:18;9130:8;:13;9139:3;9130:13;;;;;;;;;;;;;;;9109:34;;9154:17;9174:7;:10;9182:1;9174:10;;;;;;;;;;;9154:30;;9216:1;9199:4;:13;;;:18;9195:128;;9249:15;9233:4;:13;;:31;;;;9296:15;9279:4;:14;;:32;;;;9195:128;9333:34;9377:13;;9370:4;:20;;;;:::i;:::-;9333:57;;9401:19;9423:52;7712:4;9423:36;9432:26;9423:4;:8;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;9401:74;;9487:16;9506:39;7712:4;9506:23;9515:13;;9506:4;:8;;:23;;;;:::i;:::-;:27;;:39;;;;:::i;:::-;9487:58;;9586:11;9567:4;:15;;;:30;;;;;;;:::i;:::-;;;;;;;;9608:15;9626:46;7712:4;9626:30;9642:13;;9626:11;:15;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;9608:64;;9695:42;9688:49;;:3;:49;;;9684:230;;9771:1;9753:5;:14;;;:19;;;;;;;:::i;:::-;;;;;;;;9804:1;9787:4;:13;;;:18;;;;;;;:::i;:::-;;;;;;;;9684:230;;;9856:7;9838:5;:14;;;:25;;;;;;;:::i;:::-;;;;;;;;9895:7;9878:4;:13;;;:24;;;;;;;:::i;:::-;;;;;;;;9684:230;9926:4;:13;;9945:191;;;;;;;;9970:4;:13;;:20;;;;9945:191;;;;10015:15;9945:191;;;;10050:11;9945:191;;;;10083:3;9945:191;;;;;;10119:5;9945:191;;;;;9926:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10169:1;10150:4;:15;;;:20;;;;;;;:::i;:::-;;;;;;;;10202:1;10181:4;:17;;;:22;;;;;;;:::i;:::-;;;;;;;;10228:1;10214:4;:10;;;:15;;;;;;;:::i;:::-;;;;;;;;10252:34;10270:5;;;;;;;;;;;10277:8;10252:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;8820:1474;;;;;;;8752:1542;;:::o;10302:182::-;10345:23;10380:17;10400:8;:20;10409:10;10400:20;;;;;;;;;;;;;;;10380:40;;10452:4;:13;;10431:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10302:182;:::o;16410:622::-;16454:17;16474:8;:20;16483:10;16474:20;;;;;;;;;;;;;;;16454:40;;16505:17;16525:7;:10;16533:1;16525:10;;;;;;;;;;;16505:30;;16570:2;16554:4;:13;;;:18;16546:27;;;;;;16583:22;16608:4;:13;;;16583:38;;16648:1;16632:4;:13;;:17;;;;16660:11;16674:42;16660:56;;16748:4;:13;;16767:190;;;;;;;;16792:4;:15;;;16767:190;;;;16832:15;16767:190;;;;16867:14;16767:190;;;;16903:3;16767:190;;;;;;16940:5;16767:190;;;;;16748:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16990:1;16971:4;:15;;;:20;;;;;;;:::i;:::-;;;;;;;;17023:1;17002:4;:17;;;:22;;;;;;;:::i;:::-;;;;;;;;16442:590;;;;16410:622::o;7858:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7790:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8090:18::-;;;;;;;;;;;;;:::o;8115:20::-;;;;;;;;;;;;;:::o;10492:553::-;10532:22;10566:17;10586:8;:20;10595:10;10586:20;;;;;;;;;;;;;;;10566:40;;10617:17;10637:7;:10;10645:1;10637:10;;;;;;;;;;;10617:30;;10658:9;10670:19;10678:10;10670:7;:19::i;:::-;10658:31;;10712:6;10707:191;10728:4;:13;;:20;;;;10724:1;:24;10707:191;;;10808:5;10771:42;;:4;:13;;10785:1;10771:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;;;;;;;;;;:42;;;10767:120;;10858:15;10830:4;:13;;10844:1;10830:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;:43;;;;10767:120;10750:3;;;;;:::i;:::-;;;;10707:191;;;;10930:1;10908:4;:18;;;:23;;;;;;;:::i;:::-;;;;;;;;10958:15;10942:4;:13;;:31;;;;10986:32;11004:10;11016:1;10986:4;;;;;;;;;;;:17;;;;:32;;;;;:::i;:::-;11036:1;11029:8;;;;;10492:553;:::o;8010:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17040:2324::-;17090:25;17128:17;17148:8;:12;17157:2;17148:12;;;;;;;;;;;;;;;17128:32;;17174:12;17212:9;17224:1;17212:13;;17207:2128;17231:4;:13;;:20;;;;17227:1;:24;17207:2128;;;17273:19;17295:46;17315:4;:13;;17329:1;17315:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;;17295:15;:19;;:46;;;;:::i;:::-;17273:68;;17358:14;17375:4;:13;;17389:1;17375:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:20;;;17358:37;;17451:5;17414:42;;:4;:13;;17428:1;17414:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;;;;;;;;;;:42;;;17410:1913;;17495:8;:12;17504:2;17495:12;;;;;;;;;;;:26;;;17480:11;:41;17476:323;;17546:19;17568:55;7712:4;17568:39;17579:8;:12;17588:2;17579:12;;;;;;;;;;;:27;;;17568:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;17546:77;;17646:21;17670:65;17732:2;17703:8;:12;17712:2;17703:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;17670:28;17686:11;17670;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;17646:89;;17766:13;17758:21;;;;;:::i;:::-;;;17522:277;;17476:323;17835:8;:12;17844:2;17835:12;;;;;;;;;;;:26;;;17821:11;:40;:85;;;;;17880:8;:12;17889:2;17880:12;;;;;;;;;;;:26;;;17865:11;:41;;17821:85;17817:366;;;17930:19;17952:55;7712:4;17952:39;17963:8;:12;17972:2;17963:12;;;;;;;;;;;:27;;;17952:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;17930:77;;18030:21;18054:65;18116:2;18087:8;:12;18096:2;18087:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;18054:28;18070:11;18054;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;18030:89;;18150:13;18142:21;;;;;:::i;:::-;;;17907:276;;17817:366;18219:8;:12;18228:2;18219:12;;;;;;;;;;;:26;;;18205:11;:40;:85;;;;;18264:8;:12;18273:2;18264:12;;;;;;;;;;;:26;;;18249:11;:41;;18205:85;18201:366;;;18314:19;18336:55;7712:4;18336:39;18347:8;:12;18356:2;18347:12;;;;;;;;;;;:27;;;18336:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;18314:77;;18414:21;18438:65;18500:2;18471:8;:12;18480:2;18471:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;18438:28;18454:11;18438;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;18414:89;;18534:13;18526:21;;;;;:::i;:::-;;;18291:276;;18201:366;18603:8;:12;18612:2;18603:12;;;;;;;;;;;:26;;;18589:11;:40;:85;;;;;18648:8;:12;18657:2;18648:12;;;;;;;;;;;:26;;;18633:11;:41;;18589:85;18585:366;;;18698:19;18720:55;7712:4;18720:39;18731:8;:12;18740:2;18731:12;;;;;;;;;;;:27;;;18720:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;18698:77;;18798:21;18822:65;18884:2;18855:8;:12;18864:2;18855:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;18822:28;18838:11;18822;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;18798:89;;18918:13;18910:21;;;;;:::i;:::-;;;18675:276;;18585:366;18987:8;:12;18996:2;18987:12;;;;;;;;;;;:26;;;18973:11;:40;18969:321;;;19037:19;19059:55;7712:4;19059:39;19070:8;:12;19079:2;19070:12;;;;;;;;;;;:27;;;19059:6;:10;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;19037:77;;19137:21;19161:65;19223:2;19194:8;:12;19203:2;19194:12;;;;;;;;;;;:26;;;:31;;;;:::i;:::-;19161:28;19177:11;19161;:15;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;19137:89;;19257:13;19249:21;;;;;:::i;:::-;;;19014:276;;18969:321;17410:1913;17257:2078;;17253:3;;;;;:::i;:::-;;;;17207:2128;;;;19352:4;19345:11;;;;17040:2324;;;:::o;16193:209::-;16239:17;16259:8;:20;16268:10;16259:20;;;;;;;;;;;;;;;16239:40;;16290:12;16305:4;:13;;;16290:28;;16345:1;16329:4;:13;;:17;;;;16359:35;16377:10;16389:4;16359;;;;;;;;;;;:17;;;;:35;;;;;:::i;:::-;16228:174;;16193:209::o;11053:5134::-;11120:17;11140:8;:20;11149:10;11140:20;;;;;;;;;;;;;;;11120:40;;11224:5;11184:45;;:4;:13;;11198:4;11184:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;;;;;;;;;:45;;;11176:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;11285:18;11306:4;:13;;11320:4;11306:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;11285:44;;11341:17;11361:4;:13;;11375:4;11361:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;;11341:48;;11401:16;11420:15;11401:34;;11447:16;11477:9;11466:8;:20;;;;:::i;:::-;11447:39;;11497:19;11551:7;:11;11559:2;11551:11;;;;;;;;;;;:25;;;11540:8;:36;11536:4634;;;11620:16;11639:57;7712:4;11639:41;11654:7;:11;11662:2;11654:11;;;;;;;;;;;:25;;;11639:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;11620:76;;11734:19;11756:59;7712:4;11756:43;11771:8;:12;11780:2;11771:12;;;;;;;;;;;:27;;;11756:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;11734:81;;11830:21;11854:39;7670:5;11854:25;11870:8;11854:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;11830:63;;11963:8;11947:13;11934:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;11920:51;;12024:1;11998:4;:13;;12012:4;11998:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;12079:4;12040;:13;;12054:4;12040:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;12129:15;12098:4;:13;;12112:4;12098:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;12161:42;12179:10;12191:11;12161:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;12218:34;12236:5;;;;;;;;;;;12243:8;12218:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;11577:691;;;11536:4634;;;12290:7;:11;12298:2;12290:11;;;;;;;;;;;:25;;;12278:8;:37;;:77;;;;;12330:7;:11;12338:2;12330:11;;;;;;;;;;;:25;;;12319:8;:36;12278:77;12274:3896;;;12397:16;12416:57;7712:4;12416:41;12431:7;:11;12439:2;12431:11;;;;;;;;;;;:25;;;12416:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;12397:76;;12504:19;12526:59;7712:4;12526:43;12541:8;:12;12550:2;12541:12;;;;;;;;;;;:27;;;12526:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;12504:81;;12600:21;12624:39;7670:5;12624:25;12640:8;12624:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;12600:63;;12715:8;12699:13;12686:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;12672:51;;12766:1;12740:4;:13;;12754:4;12740:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;12821:4;12782;:13;;12796:4;12782:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;12871:15;12840:4;:13;;12854:4;12840:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;12903:42;12921:10;12933:11;12903:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;12960:34;12978:5;;;;;;;;;;;12985:8;12960:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;12356:654;;;12274:3896;;;13032:7;:11;13040:2;13032:11;;;;;;;;;;;:25;;;13020:8;:37;;:77;;;;;13072:7;:11;13080:2;13072:11;;;;;;;;;;;:25;;;13061:8;:36;13020:77;13016:3154;;;13139:16;13158:57;7712:4;13158:41;13173:7;:11;13181:2;13173:11;;;;;;;;;;;:25;;;13158:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;13139:76;;13252:19;13274:59;7712:4;13274:43;13289:8;:12;13298:2;13289:12;;;;;;;;;;;:27;;;13274:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;13252:81;;13348:21;13372:39;7670:5;13372:25;13388:8;13372:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;13348:63;;13463:8;13447:13;13434:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;13420:51;;13514:1;13488:4;:13;;13502:4;13488:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;13569:4;13530;:13;;13544:4;13530:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;13619:15;13588:4;:13;;13602:4;13588:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;13762:42;13780:10;13792:11;13762:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;13819:34;13837:5;;;;;;;;;;;13844:8;13819:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;13098:769;;;13016:3154;;;13889:7;:11;13897:2;13889:11;;;;;;;;;;;:25;;;13877:8;:37;;:77;;;;;13929:7;:11;13937:2;13929:11;;;;;;;;;;;:25;;;13918:8;:36;13877:77;13873:2297;;;13996:16;14015:57;7712:4;14015:41;14030:7;:11;14038:2;14030:11;;;;;;;;;;;:25;;;14015:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;13996:76;;14109:19;14131:59;7712:4;14131:43;14146:8;:12;14155:2;14146:12;;;;;;;;;;;:27;;;14131:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;14109:81;;14205:21;14229:39;7670:5;14229:25;14245:8;14229:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;14205:63;;14320:8;14304:13;14291:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;14277:51;;14371:1;14345:4;:13;;14359:4;14345:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;14426:4;14387;:13;;14401:4;14387:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;14476:15;14445:4;:13;;14459:4;14445:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;14508:42;14526:10;14538:11;14508:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;14565:34;14583:5;;;;;;;;;;;14590:8;14565:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;13955:668;;;13873:2297;;;14645:7;:11;14653:2;14645:11;;;;;;;;;;;:25;;;14633:8;:37;;:77;;;;;14685:7;:11;14693:2;14685:11;;;;;;;;;;;:25;;;14674:8;:36;14633:77;14629:1541;;;14752:16;14771:57;7712:4;14771:41;14786:7;:11;14794:2;14786:11;;;;;;;;;;;:25;;;14771:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;14752:76;;14865:19;14887:59;7712:4;14887:43;14902:8;:12;14911:2;14902:12;;;;;;;;;;;:27;;;14887:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;14865:81;;14961:21;14985:39;7670:5;14985:25;15001:8;14985:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;14961:63;;15076:8;15060:13;15047:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;15033:51;;15127:1;15101:4;:13;;15115:4;15101:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;15182:4;15143;:13;;15157:4;15143:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;15232:15;15201:4;:13;;15215:4;15201:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;15264:42;15282:10;15294:11;15264:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;15321:34;15339:5;;;;;;;;;;;15346:8;15321:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;14711:658;;;14629:1541;;;15391:7;:11;15399:2;15391:11;;;;;;;;;;;:25;;;15379:8;:37;15375:795;;15444:16;15463:57;7712:4;15463:41;15478:7;:11;15486:2;15478:11;;;;;;;;;;;:25;;;15463:10;:14;;:41;;;;:::i;:::-;:45;;:57;;;;:::i;:::-;15444:76;;15557:19;15579:59;7712:4;15579:43;15594:8;:12;15603:2;15594:12;;;;;;;;;;;:27;;;15579:10;:14;;:43;;;;:::i;:::-;:47;;:59;;;;:::i;:::-;15557:81;;15653:21;15677:39;7670:5;15677:25;15693:8;15677:11;:15;;:25;;;;:::i;:::-;:29;;:39;;;;:::i;:::-;15653:63;;15768:8;15752:13;15739:10;:26;;;;:::i;:::-;:37;;;;:::i;:::-;15725:51;;15819:1;15793:4;:13;;15807:4;15793:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;:27;;;;15874:4;15835;:13;;15849:4;15835:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;15924:15;15893:4;:13;;15907:4;15893:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;:46;;;;15968:42;15986:10;15998:11;15968:4;;;;;;;;;;;:17;;;;:42;;;;;:::i;:::-;16025:34;16043:5;;;;;;;;;;;16050:8;16025:4;;;;;;;;;;;:17;;;;:34;;;;;:::i;:::-;15417:656;;;15375:795;;;16094:64;;;;;;;;;;:::i;:::-;;;;;;;;15375:795;14629:1541;13873:2297;13016:3154;12274:3896;11536:4634;11099:5088;;;;;;11053:5134;:::o;7906:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19370:777::-;19408:17;19428:8;:20;19437:10;19428:20;;;;;;;;;;;;;;;19408:40;;19459:17;19479:7;:10;19487:1;19479:10;;;;;;;;;;;19459:30;;19502:9;19514:19;19522:10;19514:7;:19::i;:::-;19502:31;;19551:6;19546:191;19567:4;:13;;:20;;;;19563:1;:24;19546:191;;;19647:5;19610:42;;:4;:13;;19624:1;19610:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;;;;;;;;;;:42;;;19606:120;;19697:15;19669:4;:13;;19683:1;19669:16;;;;;;;;:::i;:::-;;;;;;;;;;;;:25;;:43;;;;19606:120;19589:3;;;;;:::i;:::-;;;;19546:191;;;;19749:4;:13;;19768:228;;;;;;;;19795:4;:15;;;19768:228;;;;19837:15;19768:228;;;;19874:1;19768:228;;;;19899:42;19768:228;;;;;;19977:5;19768:228;;;;;19749:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20029:1;20010:4;:15;;;:20;;;;;;;:::i;:::-;;;;;;;;20062:1;20041:4;:17;;;:22;;;;;;;:::i;:::-;;;;;;;;20092:1;20074:4;:14;;;:19;;;;;;;:::i;:::-;;;;;;;;20120:15;20104:4;:13;;:31;;;;19397:750;;;19370: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://9a560a5de07db34ab51fc16d85dff9dd88592f293fbe143d94dafc635fffa1ed
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.