ETH Price: $2,726.99 (+1.19%)

Contract

0xe40e1531a4B56fB65571AD2ca43Dc0048a316a2D
 

Overview

ETH Balance

106.885874732250422736 ETH

Eth Value

$291,476.31 (@ $2,726.99/ETH)

Token Holdings

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Claim Divs217284302025-01-29 6:35:1121 days ago1738132511IN
0xe40e1531...48a316a2D
0 ETH0.00063982.11100826
Payback Eth With...212673052024-11-25 20:59:1185 days ago1732568351IN
0xe40e1531...48a316a2D
0 ETH0.0035842713.51670154
Cashout206986042024-09-07 12:04:35164 days ago1725710675IN
0xe40e1531...48a316a2D
0 ETH0.001129022.3347306
Cashout180279122023-08-30 14:08:47538 days ago1693404527IN
0xe40e1531...48a316a2D
0 ETH0.0100754224.97305348
Payback Eth180279092023-08-30 14:08:11538 days ago1693404491IN
0xe40e1531...48a316a2D
1.969 ETH0.0037711324.89560805
Claim Divs180278922023-08-30 14:04:47538 days ago1693404287IN
0xe40e1531...48a316a2D
0 ETH0.007056426.87283587
Cashout179946932023-08-25 22:29:47543 days ago1693002587IN
0xe40e1531...48a316a2D
0 ETH0.0061753115.30620258
Payback Eth179946892023-08-25 22:28:59543 days ago1693002539IN
0xe40e1531...48a316a2D
8 ETH0.0038701413.54100755
Cashout172541052023-05-13 22:48:59647 days ago1684018139IN
0xe40e1531...48a316a2D
0 ETH0.0161374637.45285375
Payback Eth172540962023-05-13 22:47:11647 days ago1684018031IN
0xe40e1531...48a316a2D
0.33030006 ETH0.0062621633.5188641
Payback Eth With...172518632023-05-13 15:12:59647 days ago1683990779IN
0xe40e1531...48a316a2D
0 ETH0.0101841939.16635478
Claim Divs169504512023-03-31 23:28:47690 days ago1680305327IN
0xe40e1531...48a316a2D
0 ETH0.0064591323
Cashout167965472023-03-10 8:25:47712 days ago1678436747IN
0xe40e1531...48a316a2D
0 ETH0.0094303921.88665659
Claim Divs167965392023-03-10 8:24:11712 days ago1678436651IN
0xe40e1531...48a316a2D
0 ETH0.0065038822.36917214
Claim Divs164915982023-01-26 14:30:35754 days ago1674743435IN
0xe40e1531...48a316a2D
0 ETH0.004781318.20860577
Claim Divs164884972023-01-26 4:07:11755 days ago1674706031IN
0xe40e1531...48a316a2D
0 ETH0.0042094616.03085726
Cashout164776262023-01-24 15:40:59756 days ago1674574859IN
0xe40e1531...48a316a2D
0 ETH0.018186242.20771605
Payback Eth164776242023-01-24 15:40:35756 days ago1674574835IN
0xe40e1531...48a316a2D
0.153 ETH0.0069826741.83121284
Claim Divs164776222023-01-24 15:40:11756 days ago1674574811IN
0xe40e1531...48a316a2D
0 ETH0.0110685139.66683208
Cashout164776072023-01-24 15:36:59756 days ago1674574619IN
0xe40e1531...48a316a2D
0 ETH0.0166711438.22202116
Payback Eth164776032023-01-24 15:36:11756 days ago1674574571IN
0xe40e1531...48a316a2D
36.7229 ETH0.0121765940.04722547
Deposit164582842023-01-21 22:52:23759 days ago1674341543IN
0xe40e1531...48a316a2D
0.21 ETH0.0093235414.61442212
Deposit164582532023-01-21 22:46:11759 days ago1674341171IN
0xe40e1531...48a316a2D
0.1 ETH0.0003806416.37381709
Deposit164582492023-01-21 22:45:23759 days ago1674341123IN
0xe40e1531...48a316a2D
0 ETH0.0003890316.73501685
Claim Divs162776972022-12-27 17:52:59784 days ago1672163579IN
0xe40e1531...48a316a2D
0 ETH0.0028916115.39134857
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
217284302025-01-29 6:35:1121 days ago1738132511
0xe40e1531...48a316a2D
0.32634985 ETH
217284302025-01-29 6:35:1121 days ago1738132511
0xe40e1531...48a316a2D
0.00215592 ETH
212673052024-11-25 20:59:1185 days ago1732568351
0xe40e1531...48a316a2D
0.00241118 ETH
206986042024-09-07 12:04:35164 days ago1725710675
0xe40e1531...48a316a2D
0.08625192 ETH
206986042024-09-07 12:04:35164 days ago1725710675
0xe40e1531...48a316a2D
0.0000146 ETH
206986042024-09-07 12:04:35164 days ago1725710675
0xe40e1531...48a316a2D
0.00048097 ETH
180279122023-08-30 14:08:47538 days ago1693404527
0xe40e1531...48a316a2D
3.55299957 ETH
180279122023-08-30 14:08:47538 days ago1693404527
0xe40e1531...48a316a2D
0.00084083 ETH
180279122023-08-30 14:08:47538 days ago1693404527
0xe40e1531...48a316a2D
0.00776073 ETH
180278922023-08-30 14:04:47538 days ago1693404287
0xe40e1531...48a316a2D
0.05511987 ETH
180278922023-08-30 14:04:47538 days ago1693404287
0xe40e1531...48a316a2D
0.0006266 ETH
179946932023-08-25 22:29:47543 days ago1693002587
0xe40e1531...48a316a2D
14.68476888 ETH
179946932023-08-25 22:29:47543 days ago1693002587
0xe40e1531...48a316a2D
0.00294966 ETH
179946932023-08-25 22:29:47543 days ago1693002587
0xe40e1531...48a316a2D
0.02709672 ETH
179946892023-08-25 22:28:59543 days ago1693002539
0xe40e1531...48a316a2D
0.01775006 ETH
179946892023-08-25 22:28:59543 days ago1693002539
0xe40e1531...48a316a2D
0.00218014 ETH
172541052023-05-13 22:48:59647 days ago1684018139
0xe40e1531...48a316a2D
1.17285852 ETH
172541052023-05-13 22:48:59647 days ago1684018139
0xe40e1531...48a316a2D
0.00006214 ETH
172541052023-05-13 22:48:59647 days ago1684018139
0xe40e1531...48a316a2D
0.01429631 ETH
172518632023-05-13 15:12:59647 days ago1683990779
0xe40e1531...48a316a2D
0.00634542 ETH
169504512023-03-31 23:28:47690 days ago1680305327
0xe40e1531...48a316a2D
0.10458562 ETH
169504512023-03-31 23:28:47690 days ago1680305327
0xe40e1531...48a316a2D
0.00152465 ETH
167965472023-03-10 8:25:47712 days ago1678436747
0xe40e1531...48a316a2D
0.12399555 ETH
167965472023-03-10 8:25:47712 days ago1678436747
0xe40e1531...48a316a2D
0.00003358 ETH
167965472023-03-10 8:25:47712 days ago1678436747
0xe40e1531...48a316a2D
0.0003532 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthPrime

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-06-23
*/

pragma solidity ^0.5.8;


/**
 * EthPrime - ethprime.io
 * 
 * A defi dapp ecosystem which simplifies and automates the process of playing eth dapps/games by bundling them into a "portfolio/fund"
 * 
 */


contract EthPrime {
    
    LoyaltyScheme loyalty = LoyaltyScheme(0x0);
    UniswapPriceGuard uniswapPriceGuard = UniswapPriceGuard(0x0);

    Subscription[] public activeSubscriptions;
    mapping(address => bool) public subscriptionLoanable;
    
    mapping(address => address payable[]) public userSubscriptionsList;
    mapping(address => mapping(address => bool)) public userSubscriptions;
    mapping(address => Streak) public reinvestStreaks;
    mapping(address => Approval) public pendingDapps;
    mapping(address => uint256) public ethLoaned;
    
    FundPaymentHandler paymentHandler = FundPaymentHandler(0x4f50cAAEA490A5B939ad291d0567093E89649872);
    
    uint256 totalWeighting = 0; // Updates every time subscription is added/removed
    address payable owner = msg.sender;
    
    uint256 fundFee = 10; // 1% on launch, reducing over time
    uint256 loansFee = 50; // 5% (of earnt divs)
    uint256 public newDappDelay;
    
    uint256 platformFees;
    uint256 loanDivs;
    
    struct Subscription {
        address payable dapp;
        uint128 weighting;
        bool requiresFunds;
    }
    
    struct Approval {
        address payable dapp;
        uint128 weighting;
        uint128 delayTimestamp;
        bool requiresFunds;
        bool loanable;
    }
    
    struct Streak {
        uint128 currentStreak;
        uint128 lastReinvestWeek;
    }
    
    event Deposit(address player, address ref, uint256 tron);
    event Cashout(address player, address ref, uint256 tron);
    event Reinvest(address player, address ref, uint256 tron);
    event Withdraw(address player, uint256 tron);
    event Borrow(address player, uint256 tron);
    event Payback(address player, uint256 tron);
    
    function() external payable { }
    
    function reduceFundFee(uint256 newFundFee) external {
        require(msg.sender == owner);
        require(newFundFee < fundFee);
        fundFee = newFundFee;
    }
    
    function withdrawPlatformFees(uint256 amount) external {
        require(msg.sender == owner);
        require(amount <= platformFees);
        platformFees -= amount;
        owner.transfer(amount);
    }
    
    function withdrawLoanDivs(uint256 amount) external {
        require(msg.sender == owner);
        require(amount <= loanDivs);
        loanDivs -= amount;
        owner.transfer(amount);
    }
    
    function updateDappDelay(uint256 newDelay) external {
        require(msg.sender == owner);
        require(newDelay >= 3 days);
        newDappDelay = newDelay;
    }
    
    function updateLoansFee(uint256 newLoansFee) external {
        require(msg.sender == owner);
        require(newLoansFee <= 200); // 20%
        loansFee = newLoansFee;
    }
    
    function updateLoyaltyContract(address loyaltyAddress) external {
        require(msg.sender == owner);
        loyalty = LoyaltyScheme(loyaltyAddress);
    }
    
    function updateUniswapPriceGuard(address guardAddress) external {
        require(msg.sender == owner);
        uniswapPriceGuard = UniswapPriceGuard(guardAddress);
    }
    
    function updateLoanable(address dapp, bool loanable) external {
        require(msg.sender == owner);
        subscriptionLoanable[dapp] = loanable;
    }
    
    function addSubscription(address dappAddress, uint128 dappWeighting, bool requiresFunds, bool loanable) external {
        require(msg.sender == owner); 
        require(dappWeighting > 0);
        require(dappWeighting < 1000);
        
        // If existing then update subscription weighting
        for (uint256 i = 0; i < activeSubscriptions.length; i++) {
            Subscription storage existing = activeSubscriptions[i];
            if (existing.dapp == dappAddress) {
                if (dappWeighting > existing.weighting) {
                    totalWeighting += (dappWeighting - existing.weighting);
                } else if (dappWeighting < existing.weighting) {
                    totalWeighting -= (existing.weighting - dappWeighting);
                }
                existing.weighting = dappWeighting;
                return;
            }
        }

        // Otherwise add new subscription after newDappDelay
        pendingDapps[dappAddress] = Approval(address(uint160(dappAddress)), dappWeighting, uint128(now + newDappDelay), requiresFunds, loanable);
    }
    
    function addPendingSubscription(address dappAddress) external {
        require(msg.sender == owner);
        Approval memory approval = pendingDapps[dappAddress];
        require(now > approval.delayTimestamp);
        activeSubscriptions.push(Subscription(approval.dapp, approval.weighting, approval.requiresFunds));
        subscriptionLoanable[approval.dapp] = approval.loanable;
        totalWeighting += approval.weighting;
        delete pendingDapps[dappAddress];
    }
    
    function removeSubscription(address dappAddress) external {
        require(msg.sender == owner);
        
        for (uint256 i = 0; i < activeSubscriptions.length; i++) {
            Subscription memory existing = activeSubscriptions[i];
            if (existing.dapp == dappAddress) {
                totalWeighting -= existing.weighting;
                
                // Remove subscription (and shift all subscriptions left one position) 
                uint256 length = activeSubscriptions.length - 1;
                for (uint j = i; j < length; j++){
                    activeSubscriptions[j] = activeSubscriptions[j+1]; 
                }
                activeSubscriptions.length--;
                return;
            }
        }
    }
    
    function deposit(address referrer, address[] calldata pathPairs, uint256[] calldata minOuts) external payable {
        require(msg.value > 0.199 ether);
        require(uniswapPriceGuard.overPriceFloorValue(pathPairs, minOuts));
        depositInternal(msg.value, msg.sender, referrer, false);
        emit Deposit(msg.sender, referrer, msg.value);
    }
    
    function depositFor(address player, address referrer, address[] calldata pathPairs, uint256[] calldata minOuts) external payable {
        require(msg.value > 0.199 ether);
        require(uniswapPriceGuard.overPriceFloorValue(pathPairs, minOuts));
        depositInternal(msg.value, player, referrer, false);
        emit Deposit(player, referrer, msg.value);
    }
    
    function depositInternal(uint256 ethDeposit, address player, address referrer, bool alreadyClaimedDivs) internal {
        if (now < 1592866800) {
            player = owner; // Before launch time no-one can deposit
        } else if (now < 1592867100) {
            require(ethDeposit <= 50 ether && tx.gasprice <= 0.1 szabo); // For first 5 mins max buy is 50 eth & 100 gwei
        }
        
        if (fundFee > 0) {
            uint256 fee = (ethDeposit * fundFee) / 1000;
            ethDeposit -= fee;
            platformFees += fee;
        }
        
        uint256 subscriptions = activeSubscriptions.length;
        uint256 remainingWeighting = totalWeighting;
        for (uint256 i = 0; i < subscriptions; i++) {
            if (remainingWeighting == 0) {
                break;
            }
            
            Subscription memory subscription = activeSubscriptions[i];
            SubscriptionDapp dapp = SubscriptionDapp(subscription.dapp);
            uint256 maxDeposit = (ethDeposit * subscription.weighting) / remainingWeighting;
            
            uint256 deposited;
            if (subscription.requiresFunds) {
                deposited = maxDeposit;
            }
            (bool success, bytes memory returnData) = address(dapp).call.value(deposited)(abi.encodePacked(dapp.deposit.selector, abi.encode(player, maxDeposit, referrer, alreadyClaimedDivs)));
            
            if (success) {
                deposited = abi.decode(returnData, (uint256));
            }
            
            require(deposited <= maxDeposit);
            if (deposited > 0) {
                ethDeposit -= deposited;
                if (!userSubscriptions[player][subscription.dapp]) {
                    userSubscriptions[player][subscription.dapp] = true;
                    userSubscriptionsList[player].push(subscription.dapp);
                }
            }
            remainingWeighting -= subscription.weighting;
        }
    }
    
    function cashout(address referrer, uint256 percent, address[] calldata pathPairs, uint256[] calldata minOuts) external {
        require(percent > 0 && percent < 101);
        require(uniswapPriceGuard.overPriceFloorValue(pathPairs, minOuts));
        require(ethLoaned[msg.sender] == 0);
        
        uint256 ethGained;
        uint256 length = userSubscriptionsList[msg.sender].length;
        for (uint256 i = 0; i < length; i++) {
            SubscriptionDapp dapp = SubscriptionDapp(userSubscriptionsList[msg.sender][i]);
            (bool success, bytes memory returnData) = address(dapp).call(abi.encodePacked(dapp.cashout.selector, abi.encode(msg.sender, referrer, percent)));
            if (success) {
                ethGained += abi.decode(returnData, (uint256));
            }
            
        }
        paymentHandler.cashout.value(ethGained)(msg.sender);
        reinvestStreaks[msg.sender] = Streak(0, weeksSinceEpoch());
        
        emit Cashout(msg.sender, referrer, ethGained);
    }
    
    function claimDivs() public {
        uint256 ethGained = claimDivsInternal(msg.sender);
        paymentHandler.cashout.value(ethGained)(msg.sender);
        reinvestStreaks[msg.sender] = Streak(0, weeksSinceEpoch());
        emit Withdraw(msg.sender, ethGained);
    }
    
    function claimDivsInternal(address player) internal returns (uint256) {
        uint256 ethGained;
        uint256 length = userSubscriptionsList[player].length;
        for (uint256 i = 0; i < length; i++) {
            SubscriptionDapp dapp = SubscriptionDapp(userSubscriptionsList[player][i]);
            (bool success, bytes memory returnData) = address(dapp).call(abi.encodePacked(dapp.claimDivs.selector, abi.encode(player)));
            if (success) {
                ethGained += abi.decode(returnData, (uint256));
            }
        }
        
        if (ethLoaned[player] > 0) {
            uint256 fee = ethGained * loansFee / 1000;
            ethGained -= fee;
            loanDivs += fee;
        }
        
        return ethGained;
    }
    
    function reinvest(address referrer, address[] calldata pathPairs, uint256[] calldata minOuts) external {
        require(uniswapPriceGuard.overPriceFloorValue(pathPairs, minOuts));
        reinvestInternal(msg.sender, referrer, 100);
    }
    
    function reinvestInternal(address player, address referrer, uint256 percent) internal {
        uint256 ethGained = claimDivsInternal(player);
        uint256 reinvestPortion = (ethGained * percent) / 100;
        if (percent < 100) {
            paymentHandler.cashout.value(ethGained - reinvestPortion)(player);
            emit Withdraw(player, ethGained - reinvestPortion);
        }
        paymentHandler.reinvest.value(reinvestPortion)(address(this));
        depositInternal(reinvestPortion, player, referrer, true);
        
        // Streak stuff
        Streak memory streak = reinvestStreaks[player];
        uint128 epochWeek = weeksSinceEpoch();
        if (streak.lastReinvestWeek + 1 == epochWeek) {
            streak.currentStreak++;
        } else if (streak.lastReinvestWeek < epochWeek || streak.currentStreak == 0) {
            streak.currentStreak = 1;
        }

        streak.lastReinvestWeek = epochWeek;
        reinvestStreaks[player] = streak;
        
        emit Reinvest(player, referrer, reinvestPortion);
    }
    
    function drawEth(uint256 amount) external {
        uint256 ethValue = loanableValueInternal(msg.sender);
        uint256 maxLoanPercent = loyalty.getLoanPercentMax(msg.sender);
        require(maxLoanPercent < 80);
        uint256 maxLoan = (ethValue * maxLoanPercent) / 100;
        require(amount <= maxLoan);
        require(ethLoaned[msg.sender] + amount <= maxLoan);
        ethLoaned[msg.sender] += amount;
        msg.sender.transfer(amount);
        emit Borrow(msg.sender, amount);
    }
    
    function cashoutPayLoan(address referrer, uint256 percent, address[] calldata pathPairs, uint256[] calldata minOuts) external {
        uint256 existing = ethLoaned[msg.sender];
        require(existing > 0);
        require(percent > 0 && percent < 101);
        require(uniswapPriceGuard.overPriceFloorValue(pathPairs, minOuts));
        
        uint256 ethGained;
        uint256 length = userSubscriptionsList[msg.sender].length;
        for (uint256 i = 0; i < length; i++) {
            SubscriptionDapp dapp = SubscriptionDapp(userSubscriptionsList[msg.sender][i]);
            (bool success, bytes memory returnData) = address(dapp).call(abi.encodePacked(dapp.cashout.selector, abi.encode(msg.sender, referrer, percent)));
            if (success) {
                ethGained += abi.decode(returnData, (uint256));
            }
            
        }
        
        emit Cashout(msg.sender, referrer, ethGained);
        
        if (ethGained > existing) {
            msg.sender.transfer(ethGained - existing);
            ethGained = existing;
        }
        ethLoaned[msg.sender] -= ethGained;
        reinvestStreaks[msg.sender] = Streak(0, weeksSinceEpoch());
    }
    
    function paybackEthWithDivs() public {
        uint256 existing = ethLoaned[msg.sender];
        require(existing > 0);
        
        uint256 ethGained = claimDivsInternal(msg.sender);
        emit Payback(msg.sender, ethGained);
        
        if (ethGained > existing) {
            msg.sender.transfer(ethGained - existing);
            ethGained = existing;
        }
        ethLoaned[msg.sender] -= ethGained;
    }
    
    function paybackEth() external payable {
        claimDivs();
        uint256 amount = msg.value;
        uint256 existing = ethLoaned[msg.sender];
        if (amount > existing) {
            msg.sender.transfer(amount - existing);
            amount = existing;
        }
        ethLoaned[msg.sender] -= amount;
        emit Payback(msg.sender, amount);
    }
    
    function weeksSinceEpoch() public view returns(uint128) {
        return uint128((now - 259200) / 604800);
    }
    
    function totalDivsInternal(address player) internal returns (uint256) {
        uint256 length = userSubscriptionsList[player].length;
        
        uint256 ethDivs;
        for (uint256 i = 0; i < length; i++) {
            SubscriptionDapp dapp = SubscriptionDapp(userSubscriptionsList[player][i]);
            (bool success, bytes memory returnData) = address(dapp).call(abi.encodePacked(dapp.currentDivs.selector, abi.encode(player)));
            if (success) {
                ethDivs += abi.decode(returnData, (uint256));
            }
        }
        
        return ethDivs;
    }
    
    function totalDivs(address player) external view returns (uint256) {
        uint256 length = userSubscriptionsList[player].length;
        
        uint256 ethDivs;
        for (uint256 i = 0; i < length; i++) {
            ethDivs += SubscriptionDapp(userSubscriptionsList[player][i]).currentDivs(player);
        }
        
        return ethDivs;
    }
    
    function accountValue(address player, bool includeFees) external view returns(uint256) {
        uint256 length = userSubscriptionsList[player].length;
        
        uint256 ethValue;
        for (uint256 i = 0; i < length; i++) {
            ethValue += SubscriptionDapp(userSubscriptionsList[player][i]).currentValue(player, includeFees);
        }
        
        return ethValue;
    }
    
    function loanableValueInternal(address player) internal returns(uint256) {
        uint256 length = userSubscriptionsList[player].length;
        
        uint256 ethValue;
        for (uint256 i = 0; i < length; i++) {
            if (subscriptionLoanable[userSubscriptionsList[player][i]]) { // If whitelisted
                SubscriptionDapp dapp = SubscriptionDapp(userSubscriptionsList[player][i]);
                (bool success, bytes memory returnData) = address(dapp).call(abi.encodePacked(dapp.currentValue.selector, abi.encode(player, false)));
                if (success) {
                    ethValue += abi.decode(returnData, (uint256));
                }
            }
        }
        return ethValue;
    }
    
    function loanableValue(address player) external view returns(uint256) {
        uint256 length = userSubscriptionsList[player].length;
        
        uint256 ethValue;
        for (uint256 i = 0; i < length; i++) {
            if (subscriptionLoanable[userSubscriptionsList[player][i]]) { // If whitelisted
                ethValue += SubscriptionDapp(userSubscriptionsList[player][i]).currentValue(player, false);
            }
        }
        return ethValue;
    }
    
    function accountSubscriptions(address player) external view returns (uint256) {
        return userSubscriptionsList[player].length;
    }
}








interface SubscriptionDapp {
    function deposit(address player, uint256 amount, address referrer, bool alreadyClaimedDivs) external payable returns (uint256);
    function cashout(address player, address referrer, uint256 percent) external returns (uint256);
    function claimDivs(address player) external returns (uint256);
    function currentValue(address player, bool removeFees) external view returns(uint256);
    function currentDivs(address player) external view returns(uint256);
    function() external payable;
}


interface FundPaymentHandler {
    function cashout(address player) external payable;
    function reinvest(address player) external payable;
}


interface UniswapPriceGuard {
    function overPriceFloorValue(address[] calldata pathPairs, uint256[] calldata minOuts) external returns(bool);
}


interface LoyaltyScheme {
    function getLoanPercentMax(address player) external view returns (uint256);
}



library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"tron","type":"uint256"}],"name":"Borrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"address","name":"ref","type":"address"},{"indexed":false,"internalType":"uint256","name":"tron","type":"uint256"}],"name":"Cashout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"address","name":"ref","type":"address"},{"indexed":false,"internalType":"uint256","name":"tron","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"tron","type":"uint256"}],"name":"Payback","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"address","name":"ref","type":"address"},{"indexed":false,"internalType":"uint256","name":"tron","type":"uint256"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"tron","type":"uint256"}],"name":"Withdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"accountSubscriptions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"bool","name":"includeFees","type":"bool"}],"name":"accountValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"activeSubscriptions","outputs":[{"internalType":"address payable","name":"dapp","type":"address"},{"internalType":"uint128","name":"weighting","type":"uint128"},{"internalType":"bool","name":"requiresFunds","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dappAddress","type":"address"}],"name":"addPendingSubscription","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dappAddress","type":"address"},{"internalType":"uint128","name":"dappWeighting","type":"uint128"},{"internalType":"bool","name":"requiresFunds","type":"bool"},{"internalType":"bool","name":"loanable","type":"bool"}],"name":"addSubscription","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"address[]","name":"pathPairs","type":"address[]"},{"internalType":"uint256[]","name":"minOuts","type":"uint256[]"}],"name":"cashout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"address[]","name":"pathPairs","type":"address[]"},{"internalType":"uint256[]","name":"minOuts","type":"uint256[]"}],"name":"cashoutPayLoan","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimDivs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"address[]","name":"pathPairs","type":"address[]"},{"internalType":"uint256[]","name":"minOuts","type":"uint256[]"}],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"address[]","name":"pathPairs","type":"address[]"},{"internalType":"uint256[]","name":"minOuts","type":"uint256[]"}],"name":"depositFor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"drawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ethLoaned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"loanableValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newDappDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"paybackEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"paybackEthWithDivs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingDapps","outputs":[{"internalType":"address payable","name":"dapp","type":"address"},{"internalType":"uint128","name":"weighting","type":"uint128"},{"internalType":"uint128","name":"delayTimestamp","type":"uint128"},{"internalType":"bool","name":"requiresFunds","type":"bool"},{"internalType":"bool","name":"loanable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newFundFee","type":"uint256"}],"name":"reduceFundFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"address[]","name":"pathPairs","type":"address[]"},{"internalType":"uint256[]","name":"minOuts","type":"uint256[]"}],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"reinvestStreaks","outputs":[{"internalType":"uint128","name":"currentStreak","type":"uint128"},{"internalType":"uint128","name":"lastReinvestWeek","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dappAddress","type":"address"}],"name":"removeSubscription","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"subscriptionLoanable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"totalDivs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"updateDappDelay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dapp","type":"address"},{"internalType":"bool","name":"loanable","type":"bool"}],"name":"updateLoanable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newLoansFee","type":"uint256"}],"name":"updateLoansFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"loyaltyAddress","type":"address"}],"name":"updateLoyaltyContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guardAddress","type":"address"}],"name":"updateUniswapPriceGuard","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"userSubscriptions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userSubscriptionsList","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weeksSinceEpoch","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawLoanDivs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawPlatformFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052600080546001600160a01b031990811682556001805482169055600980548216734f50caaea490a5b939ad291d0567093e89649872179055600a918255600b805490911633179055600c556032600d5534801561006057600080fd5b50613322806100706000396000f3fe6080604052600436106101ee5760003560e01c80637176c6661161010d578063b2b77125116100a0578063d43987dc1161006f578063d43987dc14610a8b578063e20c8bcf14610ac6578063f0ceaad314610adb578063f39a035f14610b05578063fbf8410614610be5576101ee565b8063b2b77125146109f3578063b2ba0f5814610a26578063b3eb5d5f14610a2e578063c07f64d614610a58576101ee565b8063924341e0116100dc578063924341e0146108f657806392623bdb1461094f57806393ed1e6414610979578063a211c16f146109c0576101ee565b80637176c666146107c45780637d1065a51461083a5780637ea8710c1461088c57806391980204146108a1576101ee565b80634d143757116101855780635c39098f116101545780635c39098f146106d85780635d2052a81461070b578063644453101461073e5780636aa214161461079a576101ee565b80634d143757146104bc57806351710d951461059c578063520ebc68146105d7578063562fa0df1461060a576101ee565b8063220dfc11116101c1578063220dfc111461033b57806331f2b43d146103805780633ef624c4146103aa578063452384f9146103e5576101ee565b806304d73c2b146101f057806319aa70e71461021a5780631ac8430b1461022f578063206bba061461030a575b005b3480156101fc57600080fd5b506101ee6004803603602081101561021357600080fd5b5035610c18565b34801561022657600080fd5b506101ee610c44565b34801561023b57600080fd5b506101ee6004803603606081101561025257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561027c57600080fd5b82018360208201111561028e57600080fd5b803590602001918460208302840111600160201b831117156102af57600080fd5b919390929091602081019035600160201b8111156102cc57600080fd5b8201836020820111156102de57600080fd5b803590602001918460208302840111600160201b831117156102ff57600080fd5b509092509050610d63565b34801561031657600080fd5b5061031f610e58565b604080516001600160801b039092168252519081900360200190f35b34801561034757600080fd5b5061036e6004803603602081101561035e57600080fd5b50356001600160a01b0316610e68565b60408051918252519081900360200190f35b34801561038c57600080fd5b506101ee600480360360208110156103a357600080fd5b5035610e83565b3480156103b657600080fd5b5061036e600480360360408110156103cd57600080fd5b506001600160a01b0381351690602001351515610ead565b6101ee600480360360808110156103fb57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561042e57600080fd5b82018360208201111561044057600080fd5b803590602001918460208302840111600160201b8311171561046157600080fd5b919390929091602081019035600160201b81111561047e57600080fd5b82018360208201111561049057600080fd5b803590602001918460208302840111600160201b831117156104b157600080fd5b509092509050610f92565b3480156104c857600080fd5b506101ee600480360360808110156104df57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561050e57600080fd5b82018360208201111561052057600080fd5b803590602001918460208302840111600160201b8311171561054157600080fd5b919390929091602081019035600160201b81111561055e57600080fd5b82018360208201111561057057600080fd5b803590602001918460208302840111600160201b8311171561059157600080fd5b5090925090506110e6565b3480156105a857600080fd5b506101ee600480360360408110156105bf57600080fd5b506001600160a01b0381351690602001351515611517565b3480156105e357600080fd5b506101ee600480360360208110156105fa57600080fd5b50356001600160a01b0316611559565b6101ee6004803603606081101561062057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561064a57600080fd5b82018360208201111561065c57600080fd5b803590602001918460208302840111600160201b8311171561067d57600080fd5b919390929091602081019035600160201b81111561069a57600080fd5b8201836020820111156106ac57600080fd5b803590602001918460208302840111600160201b831117156106cd57600080fd5b50909250905061172d565b3480156106e457600080fd5b5061036e600480360360208110156106fb57600080fd5b50356001600160a01b031661187e565b34801561071757600080fd5b506101ee6004803603602081101561072e57600080fd5b50356001600160a01b0316611890565b34801561074a57600080fd5b506107686004803603602081101561076157600080fd5b5035611a28565b604080516001600160a01b0390941684526001600160801b039092166020840152151582820152519081900360600190f35b3480156107a657600080fd5b506101ee600480360360208110156107bd57600080fd5b5035611a72565b3480156107d057600080fd5b506107f7600480360360208110156107e757600080fd5b50356001600160a01b0316611adb565b604080516001600160a01b0390961686526001600160801b0394851660208701529290931684830152151560608401529015156080830152519081900360a00190f35b34801561084657600080fd5b506101ee6004803603608081101561085d57600080fd5b506001600160a01b03813516906001600160801b03602082013516906040810135151590606001351515611b27565b34801561089857600080fd5b5061036e611d1f565b3480156108ad57600080fd5b506108da600480360360408110156108c457600080fd5b506001600160a01b038135169060200135611d25565b604080516001600160a01b039092168252519081900360200190f35b34801561090257600080fd5b506109296004803603602081101561091957600080fd5b50356001600160a01b0316611d5a565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b34801561095b57600080fd5b506101ee6004803603602081101561097257600080fd5b5035611d80565b34801561098557600080fd5b506109ac6004803603602081101561099c57600080fd5b50356001600160a01b0316611daa565b604080519115158252519081900360200190f35b3480156109cc57600080fd5b506101ee600480360360208110156109e357600080fd5b50356001600160a01b0316611dbf565b3480156109ff57600080fd5b5061036e60048036036020811015610a1657600080fd5b50356001600160a01b0316611df8565b6101ee611f36565b348015610a3a57600080fd5b506101ee60048036036020811015610a5157600080fd5b5035611fdf565b348015610a6457600080fd5b506101ee60048036036020811015610a7b57600080fd5b50356001600160a01b0316612048565b348015610a9757600080fd5b506109ac60048036036040811015610aae57600080fd5b506001600160a01b0381358116916020013516612081565b348015610ad257600080fd5b506101ee6120a1565b348015610ae757600080fd5b506101ee60048036036020811015610afe57600080fd5b5035612159565b348015610b1157600080fd5b506101ee60048036036080811015610b2857600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115610b5757600080fd5b820183602082011115610b6957600080fd5b803590602001918460208302840111600160201b83111715610b8a57600080fd5b919390929091602081019035600160201b811115610ba757600080fd5b820183602082011115610bb957600080fd5b803590602001918460208302840111600160201b83111715610bda57600080fd5b5090925090506122a0565b348015610bf157600080fd5b5061036e60048036036020811015610c0857600080fd5b50356001600160a01b03166126f3565b600b546001600160a01b03163314610c2f57600080fd5b6203f480811015610c3f57600080fd5b600e55565b6000610c4f336127c7565b600954604080516324237fbf60e11b815233600482015290519293506001600160a01b0390911691634846ff7e918491602480830192600092919082900301818588803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b5050505050604051806040016040528060006001600160801b03168152602001610cdb610e58565b6001600160801b039081169091523360008181526006602090815260409182902085518154968301518616600160801b029086166001600160801b03199097169690961790941694909417909255815190815291820183905280517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649281900390910190a150565b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610e1057600080fd5b505af1158015610e24573d6000803e3d6000fd5b505050506040513d6020811015610e3a57600080fd5b5051610e4557600080fd5b610e51338660646129d5565b5050505050565b62093a80426203f47f1901045b90565b6001600160a01b031660009081526004602052604090205490565b600b546001600160a01b03163314610e9a57600080fd5b60c8811115610ea857600080fd5b600d55565b6001600160a01b03821660009081526004602052604081205481805b82811015610f89576001600160a01b0386166000908152600460205260409020805482908110610ef557fe5b6000918252602091829020015460408051632a32be5160e21b81526001600160a01b038a8116600483015289151560248301529151919092169263a8caf9449260448082019391829003018186803b158015610f5057600080fd5b505afa158015610f64573d6000803e3d6000fd5b505050506040513d6020811015610f7a57600080fd5b50519190910190600101610ec9565b50949350505050565b6702c2fd72164d80003411610fa657600080fd5b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b505050506040513d602081101561107d57600080fd5b505161108857600080fd5b6110953487876000612c76565b604080516001600160a01b03808916825287166020820152348183015290517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629181900360600190a1505050505050565b336000908152600860205260409020548061110057600080fd5b6000861180156111105750606586105b61111957600080fd5b6001546040805163ee69091760e01b815260048101918252604481018790526001600160a01b039092169163ee6909179188918891889188919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b505050506040513d60208110156111f057600080fd5b50516111fb57600080fd5b33600090815260046020526040812054815b818110156114105733600090815260046020526040812080548390811061123057fe5b9060005260206000200160009054906101000a90046001600160a01b0316905060006060826001600160a01b0316836001600160a01b031663d126dac4905060e01b338f8f60405160200180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405160208183030381529060405260405160200180836001600160e01b0319166001600160e01b031916815260040182805190602001908083835b602083106113125780518252601f1990920191602091820191016112f3565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106113765780518252601f199092019160209182019101611357565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146113d8576040519150601f19603f3d011682016040523d82523d6000602084013e6113dd565b606091505b50915091508115611405578080602001905160208110156113fd57600080fd5b505195909501945b50505060010161120d565b50604080513381526001600160a01b038b16602082015280820184905290517fe9ff3fa323c4b413ef75cda9211a44bd6b80aa62d316cffeb266927fcd5f3bb69181900360600190a18282111561149457604051339084840380156108fc02916000818181858888f1935050505015801561148f573d6000803e3d6000fd5b508291505b33600090815260086020908152604080832080548690039055805180820190915291825281016114c2610e58565b6001600160801b039081169091523360009081526006602090815260409091208351815494909201518316600160801b029183166001600160801b031990941693909317909116179055505050505050505050565b600b546001600160a01b0316331461152e57600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b600b546001600160a01b0316331461157057600080fd5b611578613213565b506001600160a01b03808216600090815260076020908152604091829020825160a0810184528154909416845260018101546001600160801b0380821693860193909352600160801b90049091169183018290526002015460ff80821615156060850152610100909104161515608083015242116115f557600080fd5b604080516060808201835283516001600160a01b039081168352602080860180516001600160801b039081168387019081529488015115158688019081526002805460018181018355600083815299519183027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace81018054938a166001600160a01b031994851617905598517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf909901805494511515600160801b0260ff60801b199a87166001600160801b031990961695909517999099169390931790975560808a01519951861688526003855288882080549a151560ff19909b169a909a179099559151600a80549190921601905596909116835260079052918120805490921682559281019290925501805461ffff19169055565b6702c2fd72164d8000341161174157600080fd5b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156117ee57600080fd5b505af1158015611802573d6000803e3d6000fd5b505050506040513d602081101561181857600080fd5b505161182357600080fd5b6118303433876000612c76565b604080513381526001600160a01b0387166020820152348183015290517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629181900360600190a15050505050565b60086020526000908152604090205481565b600b546001600160a01b031633146118a757600080fd5b60005b600254811015611a23576118bc613241565b600282815481106118c957fe5b60009182526020918290206040805160608101825260029390930290910180546001600160a01b039081168085526001909201546001600160801b03811695850195909552600160801b90940460ff161515918301919091529092509084161415611a1a576020810151600a80546001600160801b03909216909103905560025460001901825b818110156119fd576002816001018154811061196857fe5b90600052602060002090600202016002828154811061198357fe5b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b039092169190911781556001918201805491830180546001600160801b0319166001600160801b0390931692909217808355905460ff600160801b918290041615150260ff60801b1990911617905501611950565b506002805490611a11906000198301613261565b50505050611a25565b506001016118aa565b505b50565b60028181548110611a3557fe5b6000918252602090912060029091020180546001909101546001600160a01b0390911691506001600160801b03811690600160801b900460ff1683565b600b546001600160a01b03163314611a8957600080fd5b600f54811115611a9857600080fd5b600f80548290039055600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a23573d6000803e3d6000fd5b6007602052600090815260409020805460018201546002909201546001600160a01b03909116916001600160801b0380821692600160801b909204169060ff8082169161010090041685565b600b546001600160a01b03163314611b3e57600080fd5b6000836001600160801b031611611b5457600080fd5b6103e8836001600160801b031610611b6b57600080fd5b60005b600254811015611c4f57600060028281548110611b8757fe5b6000918252602090912060029091020180549091506001600160a01b0387811691161415611c465760018101546001600160801b039081169086161115611beb576001810154600a80546001600160801b0392831688039092169091019055611c24565b60018101546001600160801b039081169086161015611c24576001810154600a80546001600160801b0392831688900390921690910390555b60010180546001600160801b0319166001600160801b03861617905550611d19565b50600101611b6e565b506040805160a0810182526001600160a01b038087168083526001600160801b038088166020808601918252600e5442018316868801908152891515606088019081528915156080890190815260009687526007909352979094209551865495166001600160a01b03199095169490941785555160018501805493518316600160801b029183166001600160801b031990941693909317909116179055915160029091018054925115156101000261ff001992151560ff1990941693909317919091169190911790555b50505050565b600e5481565b60046020528160005260406000208181548110611d3e57fe5b6000918252602090912001546001600160a01b03169150829050565b6006602052600090815260409020546001600160801b0380821691600160801b90041682565b600b546001600160a01b03163314611d9757600080fd5b600c548110611da557600080fd5b600c55565b60036020526000908152604090205460ff1681565b600b546001600160a01b03163314611dd657600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526004602052604081205481805b82811015611f2e576001600160a01b03851660009081526004602052604081208054600392919084908110611e4557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615611f26576001600160a01b0385166000908152600460205260409020805482908110611e9657fe5b600091825260208083209091015460408051632a32be5160e21b81526001600160a01b038a8116600483015260248201959095529051939091169263a8caf94492604480840193919291829003018186803b158015611ef457600080fd5b505afa158015611f08573d6000803e3d6000fd5b505050506040513d6020811015611f1e57600080fd5b505191909101905b600101611e14565b509392505050565b611f3e610c44565b33600090815260086020526040902054349080821115611f8b57604051339082840380156108fc02916000818181858888f19350505050158015611f86573d6000803e3d6000fd5b508091505b33600081815260086020908152604091829020805486900390558151928352820184905280517f8c9cdf934f136ab5b80fe11dfd56363fa7544ecb56d4c440c0d8a14d04bfff4a9281900390910190a15050565b600b546001600160a01b03163314611ff657600080fd5b60105481111561200557600080fd5b601080548290039055600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a23573d6000803e3d6000fd5b600b546001600160a01b0316331461205f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600560209081526000928352604080842090915290825290205460ff1681565b33600090815260086020526040902054806120bb57600080fd5b60006120c6336127c7565b604080513381526020810183905281519293507f8c9cdf934f136ab5b80fe11dfd56363fa7544ecb56d4c440c0d8a14d04bfff4a929081900390910190a18181111561213f57604051339083830380156108fc02916000818181858888f1935050505015801561213a573d6000803e3d6000fd5b508190505b336000908152600860205260409020805491909103905550565b600061216433612ff2565b600080546040805163111e721b60e21b8152336004820152905193945091926001600160a01b0390911691634479c86c916024808301926020929190829003018186803b1580156121b457600080fd5b505afa1580156121c8573d6000803e3d6000fd5b505050506040513d60208110156121de57600080fd5b50519050605081106121ef57600080fd5b6064818302048084111561220257600080fd5b33600090815260086020526040902054840181101561222057600080fd5b336000818152600860205260408082208054880190555186156108fc0291879190818181858888f1935050505015801561225e573d6000803e3d6000fd5b50604080513381526020810186905281517fcbc04eca7e9da35cb1393a6135a199ca52e450d5e9251cbd99f7847d33a36750929181900390910190a150505050565b6000851180156122b05750606585105b6122b957600080fd5b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050506040513d602081101561239057600080fd5b505161239b57600080fd5b33600090815260086020526040902054156123b557600080fd5b33600090815260046020526040812054815b818110156125ca573360009081526004602052604081208054839081106123ea57fe5b9060005260206000200160009054906101000a90046001600160a01b0316905060006060826001600160a01b0316836001600160a01b031663d126dac4905060e01b338e8e60405160200180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405160208183030381529060405260405160200180836001600160e01b0319166001600160e01b031916815260040182805190602001908083835b602083106124cc5780518252601f1990920191602091820191016124ad565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106125305780518252601f199092019160209182019101612511565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612592576040519150601f19603f3d011682016040523d82523d6000602084013e612597565b606091505b509150915081156125bf578080602001905160208110156125b757600080fd5b505195909501945b5050506001016123c7565b50600954604080516324237fbf60e11b815233600482015290516001600160a01b0390921691634846ff7e918591602480830192600092919082900301818588803b15801561261857600080fd5b505af115801561262c573d6000803e3d6000fd5b5050505050604051806040016040528060006001600160801b03168152602001612654610e58565b6001600160801b039081169091523360008181526006602090815260409182902085518154968301518616600160801b029086166001600160801b0319909716969096179094169490941790925581519081526001600160a01b038b1692810192909252818101849052517fe9ff3fa323c4b413ef75cda9211a44bd6b80aa62d316cffeb266927fcd5f3bb69181900360600190a15050505050505050565b6001600160a01b03811660009081526004602052604081205481805b82811015611f2e576001600160a01b038516600090815260046020526040902080548290811061273b57fe5b600091825260209182902001546040805163f1e6c66360e01b81526001600160a01b0389811660048301529151919092169263f1e6c6639260248082019391829003018186803b15801561278e57600080fd5b505afa1580156127a2573d6000803e3d6000fd5b505050506040513d60208110156127b857600080fd5b5051919091019060010161270f565b6001600160a01b0381166000908152600460205260408120548190815b8181101561298b576001600160a01b038516600090815260046020526040812080548390811061281057fe5b6000918252602080832090910154604080516001600160a01b038b8116828601528251808303860181528284019093526307d7bed760e21b606083810182815285519390961698509588959194939192606490920191908401908083835b6020831061288d5780518252601f19909201916020918201910161286e565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106128f15780518252601f1990920191602091820191016128d2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612953576040519150601f19603f3d011682016040523d82523d6000602084013e612958565b606091505b509150915081156129805780806020019051602081101561297857600080fd5b505195909501945b5050506001016127e4565b506001600160a01b038416600090815260086020526040902054156129ce5760006103e8600d548402816129bb57fe5b6010805492909104918201905590920391505b5092915050565b60006129e0846127c7565b9050606482820281900490831015612aa557600954604080516324237fbf60e11b81526001600160a01b03888116600483015291519190921691634846ff7e918486039160248082019260009290919082900301818588803b158015612a4557600080fd5b505af1158015612a59573d6000803e3d6000fd5b5050604080516001600160a01b038a168152858703602082015281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436495509081900390910192509050a15b6009546040805163b8872fb760e01b815230600482015290516001600160a01b039092169163b8872fb7918491602480830192600092919082900301818588803b158015612af257600080fd5b505af1158015612b06573d6000803e3d6000fd5b5050505050612b188186866001612c76565b612b20613292565b506001600160a01b03851660009081526006602090815260408083208151808301909252546001600160801b038082168352600160801b909104169181019190915290612b6b610e58565b9050806001600160801b031682602001516001016001600160801b03161415612ba35781516001016001600160801b03168252612bd9565b806001600160801b031682602001516001600160801b03161080612bcf575081516001600160801b0316155b15612bd957600182525b6001600160801b0380821660208085019182526001600160a01b03808b166000818152600684526040908190208851815496518816600160801b029088166001600160801b031990971696909617909616949094179094558251938452891690830152818101859052517fbd9e9ae6b441954a5a0075d31ec14eb7b0a728bacae5086a81b88e1d00dacbd79181900360600190a150505050505050565b635ef137f0421015612c9557600b546001600160a01b03169250612cc8565b635ef1391c421015612cc8576802b5e3af16b18800008411158015612cbf575064174876e8003a11155b612cc857600080fd5b600c5415612cf45760006103e8600c54860281612ce157fe5b600f805492909104918201905590940393505b600254600a5460005b82811015612fe95781612d0f57612fe9565b612d17613241565b60028281548110612d2457fe5b6000918252602080832060408051606081018252600290940290910180546001600160a01b03168085526001909101546001600160801b03811693850184905260ff600160801b9091041615159184019190915291935090919085908b0281612d8957fe5b0490506000836040015115612d9b5750805b604080516001600160a01b038c81166020808401919091528284018690528c82166060848101919091528c15156080808601919091528551808603909101815260a0850190955263718ba6fb60e01b60c0850181815286516000979396958b1695899593949360c490910191908401908083835b60208310612e2e5780518252601f199092019160209182019101612e0f565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b60208310612e925780518252601f199092019160209182019101612e73565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612ef4576040519150601f19603f3d011682016040523d82523d6000602084013e612ef9565b606091505b50915091508115612f1e57808060200190516020811015612f1957600080fd5b505192505b83831115612f2b57600080fd5b8215612fc9576001600160a01b03808d1660009081526005602090815260408083208a51909416835292905220549c8390039c60ff16612fc9576001600160a01b038c811660008181526005602090815260408083208b518616845282528083208054600160ff1990911681179091559383526004825282208a5181549485018255908352912090910180546001600160a01b031916919092161790555b5050506020909201516001600160801b0316909303925050600101612cfd565b50505050505050565b6001600160a01b03811660009081526004602052604081205481805b82811015611f2e576001600160a01b0385166000908152600460205260408120805460039291908490811061303f57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161561320b576001600160a01b038516600090815260046020526040812080548390811061309057fe5b6000918252602080832090910154604080516001600160a01b038b8116828601528183018690528251808303840181526060838101909452632a32be5160e21b6080840181815282519390961698509395889591939192608490920191908401908083835b602083106131145780518252601f1990920191602091820191016130f5565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106131785780518252601f199092019160209182019101613159565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146131da576040519150601f19603f3d011682016040523d82523d6000602084013e6131df565b606091505b50915091508115613207578080602001905160208110156131ff57600080fd5b505194909401935b5050505b60010161300e565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080516060810182526000808252602082018190529181019190915290565b81548183558181111561328d5760020281600202836000526020600020918201910161328d91906132a9565b505050565b604080518082019091526000808252602082015290565b610e6591905b808211156132e95780546001600160a01b031916815560018101805470ffffffffffffffffffffffffffffffffff191690556002016132af565b509056fea265627a7a72315820181679c82289a629261bd9dd454d6843b581f65f7164b396a345f214b005dec964736f6c634300050d0032

Deployed Bytecode

0x6080604052600436106101ee5760003560e01c80637176c6661161010d578063b2b77125116100a0578063d43987dc1161006f578063d43987dc14610a8b578063e20c8bcf14610ac6578063f0ceaad314610adb578063f39a035f14610b05578063fbf8410614610be5576101ee565b8063b2b77125146109f3578063b2ba0f5814610a26578063b3eb5d5f14610a2e578063c07f64d614610a58576101ee565b8063924341e0116100dc578063924341e0146108f657806392623bdb1461094f57806393ed1e6414610979578063a211c16f146109c0576101ee565b80637176c666146107c45780637d1065a51461083a5780637ea8710c1461088c57806391980204146108a1576101ee565b80634d143757116101855780635c39098f116101545780635c39098f146106d85780635d2052a81461070b578063644453101461073e5780636aa214161461079a576101ee565b80634d143757146104bc57806351710d951461059c578063520ebc68146105d7578063562fa0df1461060a576101ee565b8063220dfc11116101c1578063220dfc111461033b57806331f2b43d146103805780633ef624c4146103aa578063452384f9146103e5576101ee565b806304d73c2b146101f057806319aa70e71461021a5780631ac8430b1461022f578063206bba061461030a575b005b3480156101fc57600080fd5b506101ee6004803603602081101561021357600080fd5b5035610c18565b34801561022657600080fd5b506101ee610c44565b34801561023b57600080fd5b506101ee6004803603606081101561025257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561027c57600080fd5b82018360208201111561028e57600080fd5b803590602001918460208302840111600160201b831117156102af57600080fd5b919390929091602081019035600160201b8111156102cc57600080fd5b8201836020820111156102de57600080fd5b803590602001918460208302840111600160201b831117156102ff57600080fd5b509092509050610d63565b34801561031657600080fd5b5061031f610e58565b604080516001600160801b039092168252519081900360200190f35b34801561034757600080fd5b5061036e6004803603602081101561035e57600080fd5b50356001600160a01b0316610e68565b60408051918252519081900360200190f35b34801561038c57600080fd5b506101ee600480360360208110156103a357600080fd5b5035610e83565b3480156103b657600080fd5b5061036e600480360360408110156103cd57600080fd5b506001600160a01b0381351690602001351515610ead565b6101ee600480360360808110156103fb57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561042e57600080fd5b82018360208201111561044057600080fd5b803590602001918460208302840111600160201b8311171561046157600080fd5b919390929091602081019035600160201b81111561047e57600080fd5b82018360208201111561049057600080fd5b803590602001918460208302840111600160201b831117156104b157600080fd5b509092509050610f92565b3480156104c857600080fd5b506101ee600480360360808110156104df57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561050e57600080fd5b82018360208201111561052057600080fd5b803590602001918460208302840111600160201b8311171561054157600080fd5b919390929091602081019035600160201b81111561055e57600080fd5b82018360208201111561057057600080fd5b803590602001918460208302840111600160201b8311171561059157600080fd5b5090925090506110e6565b3480156105a857600080fd5b506101ee600480360360408110156105bf57600080fd5b506001600160a01b0381351690602001351515611517565b3480156105e357600080fd5b506101ee600480360360208110156105fa57600080fd5b50356001600160a01b0316611559565b6101ee6004803603606081101561062057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561064a57600080fd5b82018360208201111561065c57600080fd5b803590602001918460208302840111600160201b8311171561067d57600080fd5b919390929091602081019035600160201b81111561069a57600080fd5b8201836020820111156106ac57600080fd5b803590602001918460208302840111600160201b831117156106cd57600080fd5b50909250905061172d565b3480156106e457600080fd5b5061036e600480360360208110156106fb57600080fd5b50356001600160a01b031661187e565b34801561071757600080fd5b506101ee6004803603602081101561072e57600080fd5b50356001600160a01b0316611890565b34801561074a57600080fd5b506107686004803603602081101561076157600080fd5b5035611a28565b604080516001600160a01b0390941684526001600160801b039092166020840152151582820152519081900360600190f35b3480156107a657600080fd5b506101ee600480360360208110156107bd57600080fd5b5035611a72565b3480156107d057600080fd5b506107f7600480360360208110156107e757600080fd5b50356001600160a01b0316611adb565b604080516001600160a01b0390961686526001600160801b0394851660208701529290931684830152151560608401529015156080830152519081900360a00190f35b34801561084657600080fd5b506101ee6004803603608081101561085d57600080fd5b506001600160a01b03813516906001600160801b03602082013516906040810135151590606001351515611b27565b34801561089857600080fd5b5061036e611d1f565b3480156108ad57600080fd5b506108da600480360360408110156108c457600080fd5b506001600160a01b038135169060200135611d25565b604080516001600160a01b039092168252519081900360200190f35b34801561090257600080fd5b506109296004803603602081101561091957600080fd5b50356001600160a01b0316611d5a565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b34801561095b57600080fd5b506101ee6004803603602081101561097257600080fd5b5035611d80565b34801561098557600080fd5b506109ac6004803603602081101561099c57600080fd5b50356001600160a01b0316611daa565b604080519115158252519081900360200190f35b3480156109cc57600080fd5b506101ee600480360360208110156109e357600080fd5b50356001600160a01b0316611dbf565b3480156109ff57600080fd5b5061036e60048036036020811015610a1657600080fd5b50356001600160a01b0316611df8565b6101ee611f36565b348015610a3a57600080fd5b506101ee60048036036020811015610a5157600080fd5b5035611fdf565b348015610a6457600080fd5b506101ee60048036036020811015610a7b57600080fd5b50356001600160a01b0316612048565b348015610a9757600080fd5b506109ac60048036036040811015610aae57600080fd5b506001600160a01b0381358116916020013516612081565b348015610ad257600080fd5b506101ee6120a1565b348015610ae757600080fd5b506101ee60048036036020811015610afe57600080fd5b5035612159565b348015610b1157600080fd5b506101ee60048036036080811015610b2857600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115610b5757600080fd5b820183602082011115610b6957600080fd5b803590602001918460208302840111600160201b83111715610b8a57600080fd5b919390929091602081019035600160201b811115610ba757600080fd5b820183602082011115610bb957600080fd5b803590602001918460208302840111600160201b83111715610bda57600080fd5b5090925090506122a0565b348015610bf157600080fd5b5061036e60048036036020811015610c0857600080fd5b50356001600160a01b03166126f3565b600b546001600160a01b03163314610c2f57600080fd5b6203f480811015610c3f57600080fd5b600e55565b6000610c4f336127c7565b600954604080516324237fbf60e11b815233600482015290519293506001600160a01b0390911691634846ff7e918491602480830192600092919082900301818588803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b5050505050604051806040016040528060006001600160801b03168152602001610cdb610e58565b6001600160801b039081169091523360008181526006602090815260409182902085518154968301518616600160801b029086166001600160801b03199097169690961790941694909417909255815190815291820183905280517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649281900390910190a150565b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015610e1057600080fd5b505af1158015610e24573d6000803e3d6000fd5b505050506040513d6020811015610e3a57600080fd5b5051610e4557600080fd5b610e51338660646129d5565b5050505050565b62093a80426203f47f1901045b90565b6001600160a01b031660009081526004602052604090205490565b600b546001600160a01b03163314610e9a57600080fd5b60c8811115610ea857600080fd5b600d55565b6001600160a01b03821660009081526004602052604081205481805b82811015610f89576001600160a01b0386166000908152600460205260409020805482908110610ef557fe5b6000918252602091829020015460408051632a32be5160e21b81526001600160a01b038a8116600483015289151560248301529151919092169263a8caf9449260448082019391829003018186803b158015610f5057600080fd5b505afa158015610f64573d6000803e3d6000fd5b505050506040513d6020811015610f7a57600080fd5b50519190910190600101610ec9565b50949350505050565b6702c2fd72164d80003411610fa657600080fd5b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b505050506040513d602081101561107d57600080fd5b505161108857600080fd5b6110953487876000612c76565b604080516001600160a01b03808916825287166020820152348183015290517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629181900360600190a1505050505050565b336000908152600860205260409020548061110057600080fd5b6000861180156111105750606586105b61111957600080fd5b6001546040805163ee69091760e01b815260048101918252604481018790526001600160a01b039092169163ee6909179188918891889188919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b505050506040513d60208110156111f057600080fd5b50516111fb57600080fd5b33600090815260046020526040812054815b818110156114105733600090815260046020526040812080548390811061123057fe5b9060005260206000200160009054906101000a90046001600160a01b0316905060006060826001600160a01b0316836001600160a01b031663d126dac4905060e01b338f8f60405160200180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405160208183030381529060405260405160200180836001600160e01b0319166001600160e01b031916815260040182805190602001908083835b602083106113125780518252601f1990920191602091820191016112f3565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106113765780518252601f199092019160209182019101611357565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146113d8576040519150601f19603f3d011682016040523d82523d6000602084013e6113dd565b606091505b50915091508115611405578080602001905160208110156113fd57600080fd5b505195909501945b50505060010161120d565b50604080513381526001600160a01b038b16602082015280820184905290517fe9ff3fa323c4b413ef75cda9211a44bd6b80aa62d316cffeb266927fcd5f3bb69181900360600190a18282111561149457604051339084840380156108fc02916000818181858888f1935050505015801561148f573d6000803e3d6000fd5b508291505b33600090815260086020908152604080832080548690039055805180820190915291825281016114c2610e58565b6001600160801b039081169091523360009081526006602090815260409091208351815494909201518316600160801b029183166001600160801b031990941693909317909116179055505050505050505050565b600b546001600160a01b0316331461152e57600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b600b546001600160a01b0316331461157057600080fd5b611578613213565b506001600160a01b03808216600090815260076020908152604091829020825160a0810184528154909416845260018101546001600160801b0380821693860193909352600160801b90049091169183018290526002015460ff80821615156060850152610100909104161515608083015242116115f557600080fd5b604080516060808201835283516001600160a01b039081168352602080860180516001600160801b039081168387019081529488015115158688019081526002805460018181018355600083815299519183027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace81018054938a166001600160a01b031994851617905598517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf909901805494511515600160801b0260ff60801b199a87166001600160801b031990961695909517999099169390931790975560808a01519951861688526003855288882080549a151560ff19909b169a909a179099559151600a80549190921601905596909116835260079052918120805490921682559281019290925501805461ffff19169055565b6702c2fd72164d8000341161174157600080fd5b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156117ee57600080fd5b505af1158015611802573d6000803e3d6000fd5b505050506040513d602081101561181857600080fd5b505161182357600080fd5b6118303433876000612c76565b604080513381526001600160a01b0387166020820152348183015290517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629181900360600190a15050505050565b60086020526000908152604090205481565b600b546001600160a01b031633146118a757600080fd5b60005b600254811015611a23576118bc613241565b600282815481106118c957fe5b60009182526020918290206040805160608101825260029390930290910180546001600160a01b039081168085526001909201546001600160801b03811695850195909552600160801b90940460ff161515918301919091529092509084161415611a1a576020810151600a80546001600160801b03909216909103905560025460001901825b818110156119fd576002816001018154811061196857fe5b90600052602060002090600202016002828154811061198357fe5b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b039092169190911781556001918201805491830180546001600160801b0319166001600160801b0390931692909217808355905460ff600160801b918290041615150260ff60801b1990911617905501611950565b506002805490611a11906000198301613261565b50505050611a25565b506001016118aa565b505b50565b60028181548110611a3557fe5b6000918252602090912060029091020180546001909101546001600160a01b0390911691506001600160801b03811690600160801b900460ff1683565b600b546001600160a01b03163314611a8957600080fd5b600f54811115611a9857600080fd5b600f80548290039055600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a23573d6000803e3d6000fd5b6007602052600090815260409020805460018201546002909201546001600160a01b03909116916001600160801b0380821692600160801b909204169060ff8082169161010090041685565b600b546001600160a01b03163314611b3e57600080fd5b6000836001600160801b031611611b5457600080fd5b6103e8836001600160801b031610611b6b57600080fd5b60005b600254811015611c4f57600060028281548110611b8757fe5b6000918252602090912060029091020180549091506001600160a01b0387811691161415611c465760018101546001600160801b039081169086161115611beb576001810154600a80546001600160801b0392831688039092169091019055611c24565b60018101546001600160801b039081169086161015611c24576001810154600a80546001600160801b0392831688900390921690910390555b60010180546001600160801b0319166001600160801b03861617905550611d19565b50600101611b6e565b506040805160a0810182526001600160a01b038087168083526001600160801b038088166020808601918252600e5442018316868801908152891515606088019081528915156080890190815260009687526007909352979094209551865495166001600160a01b03199095169490941785555160018501805493518316600160801b029183166001600160801b031990941693909317909116179055915160029091018054925115156101000261ff001992151560ff1990941693909317919091169190911790555b50505050565b600e5481565b60046020528160005260406000208181548110611d3e57fe5b6000918252602090912001546001600160a01b03169150829050565b6006602052600090815260409020546001600160801b0380821691600160801b90041682565b600b546001600160a01b03163314611d9757600080fd5b600c548110611da557600080fd5b600c55565b60036020526000908152604090205460ff1681565b600b546001600160a01b03163314611dd657600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526004602052604081205481805b82811015611f2e576001600160a01b03851660009081526004602052604081208054600392919084908110611e4557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615611f26576001600160a01b0385166000908152600460205260409020805482908110611e9657fe5b600091825260208083209091015460408051632a32be5160e21b81526001600160a01b038a8116600483015260248201959095529051939091169263a8caf94492604480840193919291829003018186803b158015611ef457600080fd5b505afa158015611f08573d6000803e3d6000fd5b505050506040513d6020811015611f1e57600080fd5b505191909101905b600101611e14565b509392505050565b611f3e610c44565b33600090815260086020526040902054349080821115611f8b57604051339082840380156108fc02916000818181858888f19350505050158015611f86573d6000803e3d6000fd5b508091505b33600081815260086020908152604091829020805486900390558151928352820184905280517f8c9cdf934f136ab5b80fe11dfd56363fa7544ecb56d4c440c0d8a14d04bfff4a9281900390910190a15050565b600b546001600160a01b03163314611ff657600080fd5b60105481111561200557600080fd5b601080548290039055600b546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a23573d6000803e3d6000fd5b600b546001600160a01b0316331461205f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600560209081526000928352604080842090915290825290205460ff1681565b33600090815260086020526040902054806120bb57600080fd5b60006120c6336127c7565b604080513381526020810183905281519293507f8c9cdf934f136ab5b80fe11dfd56363fa7544ecb56d4c440c0d8a14d04bfff4a929081900390910190a18181111561213f57604051339083830380156108fc02916000818181858888f1935050505015801561213a573d6000803e3d6000fd5b508190505b336000908152600860205260409020805491909103905550565b600061216433612ff2565b600080546040805163111e721b60e21b8152336004820152905193945091926001600160a01b0390911691634479c86c916024808301926020929190829003018186803b1580156121b457600080fd5b505afa1580156121c8573d6000803e3d6000fd5b505050506040513d60208110156121de57600080fd5b50519050605081106121ef57600080fd5b6064818302048084111561220257600080fd5b33600090815260086020526040902054840181101561222057600080fd5b336000818152600860205260408082208054880190555186156108fc0291879190818181858888f1935050505015801561225e573d6000803e3d6000fd5b50604080513381526020810186905281517fcbc04eca7e9da35cb1393a6135a199ca52e450d5e9251cbd99f7847d33a36750929181900390910190a150505050565b6000851180156122b05750606585105b6122b957600080fd5b6001546040805163ee69091760e01b815260048101918252604481018690526001600160a01b039092169163ee6909179187918791879187919081906024810190606401876020880280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050506040513d602081101561239057600080fd5b505161239b57600080fd5b33600090815260086020526040902054156123b557600080fd5b33600090815260046020526040812054815b818110156125ca573360009081526004602052604081208054839081106123ea57fe5b9060005260206000200160009054906101000a90046001600160a01b0316905060006060826001600160a01b0316836001600160a01b031663d126dac4905060e01b338e8e60405160200180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405160208183030381529060405260405160200180836001600160e01b0319166001600160e01b031916815260040182805190602001908083835b602083106124cc5780518252601f1990920191602091820191016124ad565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106125305780518252601f199092019160209182019101612511565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612592576040519150601f19603f3d011682016040523d82523d6000602084013e612597565b606091505b509150915081156125bf578080602001905160208110156125b757600080fd5b505195909501945b5050506001016123c7565b50600954604080516324237fbf60e11b815233600482015290516001600160a01b0390921691634846ff7e918591602480830192600092919082900301818588803b15801561261857600080fd5b505af115801561262c573d6000803e3d6000fd5b5050505050604051806040016040528060006001600160801b03168152602001612654610e58565b6001600160801b039081169091523360008181526006602090815260409182902085518154968301518616600160801b029086166001600160801b0319909716969096179094169490941790925581519081526001600160a01b038b1692810192909252818101849052517fe9ff3fa323c4b413ef75cda9211a44bd6b80aa62d316cffeb266927fcd5f3bb69181900360600190a15050505050505050565b6001600160a01b03811660009081526004602052604081205481805b82811015611f2e576001600160a01b038516600090815260046020526040902080548290811061273b57fe5b600091825260209182902001546040805163f1e6c66360e01b81526001600160a01b0389811660048301529151919092169263f1e6c6639260248082019391829003018186803b15801561278e57600080fd5b505afa1580156127a2573d6000803e3d6000fd5b505050506040513d60208110156127b857600080fd5b5051919091019060010161270f565b6001600160a01b0381166000908152600460205260408120548190815b8181101561298b576001600160a01b038516600090815260046020526040812080548390811061281057fe5b6000918252602080832090910154604080516001600160a01b038b8116828601528251808303860181528284019093526307d7bed760e21b606083810182815285519390961698509588959194939192606490920191908401908083835b6020831061288d5780518252601f19909201916020918201910161286e565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106128f15780518252601f1990920191602091820191016128d2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612953576040519150601f19603f3d011682016040523d82523d6000602084013e612958565b606091505b509150915081156129805780806020019051602081101561297857600080fd5b505195909501945b5050506001016127e4565b506001600160a01b038416600090815260086020526040902054156129ce5760006103e8600d548402816129bb57fe5b6010805492909104918201905590920391505b5092915050565b60006129e0846127c7565b9050606482820281900490831015612aa557600954604080516324237fbf60e11b81526001600160a01b03888116600483015291519190921691634846ff7e918486039160248082019260009290919082900301818588803b158015612a4557600080fd5b505af1158015612a59573d6000803e3d6000fd5b5050604080516001600160a01b038a168152858703602082015281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436495509081900390910192509050a15b6009546040805163b8872fb760e01b815230600482015290516001600160a01b039092169163b8872fb7918491602480830192600092919082900301818588803b158015612af257600080fd5b505af1158015612b06573d6000803e3d6000fd5b5050505050612b188186866001612c76565b612b20613292565b506001600160a01b03851660009081526006602090815260408083208151808301909252546001600160801b038082168352600160801b909104169181019190915290612b6b610e58565b9050806001600160801b031682602001516001016001600160801b03161415612ba35781516001016001600160801b03168252612bd9565b806001600160801b031682602001516001600160801b03161080612bcf575081516001600160801b0316155b15612bd957600182525b6001600160801b0380821660208085019182526001600160a01b03808b166000818152600684526040908190208851815496518816600160801b029088166001600160801b031990971696909617909616949094179094558251938452891690830152818101859052517fbd9e9ae6b441954a5a0075d31ec14eb7b0a728bacae5086a81b88e1d00dacbd79181900360600190a150505050505050565b635ef137f0421015612c9557600b546001600160a01b03169250612cc8565b635ef1391c421015612cc8576802b5e3af16b18800008411158015612cbf575064174876e8003a11155b612cc857600080fd5b600c5415612cf45760006103e8600c54860281612ce157fe5b600f805492909104918201905590940393505b600254600a5460005b82811015612fe95781612d0f57612fe9565b612d17613241565b60028281548110612d2457fe5b6000918252602080832060408051606081018252600290940290910180546001600160a01b03168085526001909101546001600160801b03811693850184905260ff600160801b9091041615159184019190915291935090919085908b0281612d8957fe5b0490506000836040015115612d9b5750805b604080516001600160a01b038c81166020808401919091528284018690528c82166060848101919091528c15156080808601919091528551808603909101815260a0850190955263718ba6fb60e01b60c0850181815286516000979396958b1695899593949360c490910191908401908083835b60208310612e2e5780518252601f199092019160209182019101612e0f565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b60208310612e925780518252601f199092019160209182019101612e73565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612ef4576040519150601f19603f3d011682016040523d82523d6000602084013e612ef9565b606091505b50915091508115612f1e57808060200190516020811015612f1957600080fd5b505192505b83831115612f2b57600080fd5b8215612fc9576001600160a01b03808d1660009081526005602090815260408083208a51909416835292905220549c8390039c60ff16612fc9576001600160a01b038c811660008181526005602090815260408083208b518616845282528083208054600160ff1990911681179091559383526004825282208a5181549485018255908352912090910180546001600160a01b031916919092161790555b5050506020909201516001600160801b0316909303925050600101612cfd565b50505050505050565b6001600160a01b03811660009081526004602052604081205481805b82811015611f2e576001600160a01b0385166000908152600460205260408120805460039291908490811061303f57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161561320b576001600160a01b038516600090815260046020526040812080548390811061309057fe5b6000918252602080832090910154604080516001600160a01b038b8116828601528183018690528251808303840181526060838101909452632a32be5160e21b6080840181815282519390961698509395889591939192608490920191908401908083835b602083106131145780518252601f1990920191602091820191016130f5565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106131785780518252601f199092019160209182019101613159565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146131da576040519150601f19603f3d011682016040523d82523d6000602084013e6131df565b606091505b50915091508115613207578080602001905160208110156131ff57600080fd5b505194909401935b5050505b60010161300e565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b604080516060810182526000808252602082018190529181019190915290565b81548183558181111561328d5760020281600202836000526020600020918201910161328d91906132a9565b505050565b604080518082019091526000808252602082015290565b610e6591905b808211156132e95780546001600160a01b031916815560018101805470ffffffffffffffffffffffffffffffffff191690556002016132af565b509056fea265627a7a72315820181679c82289a629261bd9dd454d6843b581f65f7164b396a345f214b005dec964736f6c634300050d0032

Deployed Bytecode Sourcemap

217:17479:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2661:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2661:171:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2661:171:0;;:::i;9786:274::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9786:274:0;;;:::i;10861:242::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10861:242:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;10861:242:0;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;10861:242:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10861:242:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10861:242:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;10861:242:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10861:242:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;10861:242:0;;-1:-1:-1;10861:242:0;-1:-1:-1;10861:242:0;:::i;14773:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14773:114:0;;;:::i;:::-;;;;-1:-1:-1;;;;;14773:114:0;;;;;;;;;;;;;;17553:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17553:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17553:140:0;-1:-1:-1;;;;;17553:140:0;;:::i;:::-;;;;;;;;;;;;;;;;2844:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2844:179:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2844:179:0;;:::i;15895:402::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15895:402:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15895:402:0;;;;;;;;;;:::i;6331:371::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;6331:371:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6331:371:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6331:371:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6331:371:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6331:371:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6331:371:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;6331:371:0;;-1:-1:-1;6331:371:0;-1:-1:-1;6331:371:0;:::i;12717:1210::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12717:1210:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;12717:1210:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;12717:1210:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12717:1210:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;12717:1210:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;12717:1210:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12717:1210:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;12717:1210:0;;-1:-1:-1;12717:1210:0;-1:-1:-1;12717:1210:0;:::i;3393:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3393:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3393:157:0;;;;;;;;;;:::i;4680:485::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4680:485:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4680:485:0;-1:-1:-1;;;;;4680:485:0;;:::i;5959:360::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;5959:360:0;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5959:360:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5959:360:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5959:360:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5959:360:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5959:360:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;5959:360:0;;-1:-1:-1;5959:360:0;-1:-1:-1;5959:360:0;:::i;739:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;739:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;739:44:0;-1:-1:-1;;;;;739:44:0;;:::i;5177:770::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5177:770:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5177:770:0;-1:-1:-1;;;;;5177:770:0;;:::i;366:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;366:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;366:41:0;;:::i;:::-;;;;-1:-1:-1;;;;;366:41:0;;;;;-1:-1:-1;;;;;366:41:0;;;;;;;;;;;;;;;;;;;;;;2229:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2229:210:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2229:210:0;;:::i;684:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;684:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;684:48:0;-1:-1:-1;;;;;684:48:0;;:::i;:::-;;;;-1:-1:-1;;;;;684:48:0;;;;;-1:-1:-1;;;;;684:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3562:1106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3562:1106:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;3562:1106:0;;;;-1:-1:-1;;;;;3562:1106:0;;;;;;;;;;;;;;;;;;;:::i;1152:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1152:27:0;;;:::i;479:66::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;479:66:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;479:66:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;479:66:0;;;;;;;;;;;;;;628:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;628:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;628:49:0;-1:-1:-1;;;;;628:49:0;;:::i;:::-;;;;-1:-1:-1;;;;;628:49:0;;;;;;;;;;;;;;;;;;;;;;;;2047:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2047:170:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2047:170:0;;:::i;414:52::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;414:52:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;414:52:0;-1:-1:-1;;;;;414:52:0;;:::i;:::-;;;;;;;;;;;;;;;;;;3035:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3035:161:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3035:161:0;-1:-1:-1;;;;;3035:161:0;;:::i;17060:481::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17060:481:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17060:481:0;-1:-1:-1;;;;;17060:481:0;;:::i;14389:372::-;;;:::i;2451:198::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2451:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2451:198:0;;:::i;3208:173::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3208:173:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3208:173:0;-1:-1:-1;;;;;3208:173:0;;:::i;552:69::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;552:69:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;552:69:0;;;;;;;;;;:::i;13939:438::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13939:438:0;;;:::i;12198:507::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12198:507:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12198:507:0;;:::i;8740:1034::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8740:1034:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;8740:1034:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;8740:1034:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8740:1034:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8740:1034:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;8740:1034:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8740:1034:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8740:1034:0;;-1:-1:-1;8740:1034:0;-1:-1:-1;8740:1034:0;:::i;15518:365::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15518:365:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15518:365:0;-1:-1:-1;;;;;15518:365:0;;:::i;2661:171::-;2746:5;;-1:-1:-1;;;;;2746:5:0;2732:10;:19;2724:28;;;;;;2783:6;2771:8;:18;;2763:27;;;;;;2801:12;:23;2661:171::o;9786:274::-;9825:17;9845:29;9863:10;9845:17;:29::i;:::-;9885:14;;:51;;;-1:-1:-1;;;9885:51:0;;9925:10;9885:51;;;;;;9825:49;;-1:-1:-1;;;;;;9885:14:0;;;;:22;;9825:49;;9885:51;;;;;:14;;:51;;;;;;;9825:49;9885:14;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;9885:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9885:51:0;;;;;9977:28;;;;;;;;9984:1;-1:-1:-1;;;;;9977:28:0;;;;;9987:17;:15;:17::i;:::-;-1:-1:-1;;;;;9977:28:0;;;;;;9963:10;9947:27;;;;:15;:27;;;;;;;;;:58;;;;;;;;;;-1:-1:-1;;;9947:58:0;;;;-1:-1:-1;;;;;;9947:58:0;;;;;;;;;;;;;;;;;10021:31;;;;;;;;;;;;;;;;;;;;;;;9786:274;:::o;10861:242::-;10983:17;;:57;;;-1:-1:-1;;;10983:57:0;;;;;;;;;;;;;;-1:-1:-1;;;;;10983:17:0;;;;:37;;11021:9;;;;11032:7;;;;10983:57;;;;;;;;;11021:9;10983:57;;;;11021:9;10983:57;1:33:-1;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;10983:57:0;;;;;;;;;;;;;-1:-1:-1;10983:57:0;;;;;;;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10983:57:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10983:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10983:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10983:57:0;10975:66;;;;;;11052:43;11069:10;11081:8;11091:3;11052:16;:43::i;:::-;10861:242;;;;;:::o;14773:114::-;14872:6;14856:3;-1:-1:-1;;14856:12:0;14855:23;14773:114;;:::o;17553:140::-;-1:-1:-1;;;;;17649:29:0;17622:7;17649:29;;;:21;:29;;;;;:36;;17553:140::o;2844:179::-;2931:5;;-1:-1:-1;;;;;2931:5:0;2917:10;:19;2909:28;;;;;;2971:3;2956:11;:18;;2948:27;;;;;;2993:8;:22;2844:179::o;15895:402::-;-1:-1:-1;;;;;16010:29:0;;15973:7;16010:29;;;:21;:29;;;;;:36;15973:7;;16094:160;16118:6;16114:1;:10;16094:160;;;-1:-1:-1;;;;;16175:29:0;;;;;;:21;:29;;;;;:32;;16205:1;;16175:32;;;;;;;;;;;;;;;;;16158:84;;;-1:-1:-1;;;16158:84:0;;-1:-1:-1;;;;;16158:84:0;;;;;;;;;;;;;;;;16175:32;;;;;16158:63;;:84;;;;;;;;;;;16175:32;16158:84;;;5:2:-1;;;;30:1;27;20:12;5:2;16158:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16158:84:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16158:84:0;16146:96;;;;;16126:3;;16094:160;;;-1:-1:-1;16281:8:0;15895:402;-1:-1:-1;;;;15895:402:0:o;6331:371::-;6491:11;6479:9;:23;6471:32;;;;;;6522:17;;:57;;;-1:-1:-1;;;6522:57:0;;;;;;;;;;;;;;-1:-1:-1;;;;;6522:17:0;;;;:37;;6560:9;;;;6571:7;;;;6522:57;;;;;;;;;6560:9;6522:57;;;;6560:9;6522:57;1:33:-1;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;6522:57:0;;;;;;;;;;;;;-1:-1:-1;6522:57:0;;;;;;;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6522:57:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6522:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6522:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6522:57:0;6514:66;;;;;;6591:51;6607:9;6618:6;6626:8;6636:5;6591:15;:51::i;:::-;6658:36;;;-1:-1:-1;;;;;6658:36:0;;;;;;;;;;;6684:9;6658:36;;;;;;;;;;;;;;;6331:371;;;;;;:::o;12717:1210::-;12883:10;12854:16;12873:21;;;:9;:21;;;;;;12913:12;12905:21;;;;;;12955:1;12945:7;:11;:28;;;;;12970:3;12960:7;:13;12945:28;12937:37;;;;;;12993:17;;:57;;;-1:-1:-1;;;12993:57:0;;;;;;;;;;;;;;-1:-1:-1;;;;;12993:17:0;;;;:37;;13031:9;;;;13042:7;;;;12993:57;;;;;;;;;13031:9;12993:57;;;;13031:9;12993:57;1:33:-1;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;12993:57:0;;;;;;;;;;;;;-1:-1:-1;12993:57:0;;;;;;;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12993:57:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12993:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12993:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12993:57:0;12985:66;;;;;;13139:10;13072:17;13117:33;;;:21;:33;;;;;:40;13072:17;13168:423;13192:6;13188:1;:10;13168:423;;;13283:10;13220:21;13261:33;;;:21;:33;;;;;:36;;13295:1;;13261:36;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13261:36:0;13220:78;;13314:12;13328:23;13363:4;-1:-1:-1;;;;;13355:18:0;13391:4;-1:-1:-1;;;;;13391:12:0;;:21;;;;13425:10;13437:8;13447:7;13414:41;;;;;;-1:-1:-1;;;;;13414:41:0;-1:-1:-1;;;;;13414:41:0;;;;;;-1:-1:-1;;;;;13414:41:0;-1:-1:-1;;;;;13414:41:0;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13414:41:0;;;13374:82;;;;;;-1:-1:-1;;;;;13374:82:0;;-1:-1:-1;;;;;13374:82:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13374:82:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13374:82:0;;;13355:102;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13355:102:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;13313:144:0;;;;13476:7;13472:94;;;13528:10;13517:33;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13517:33:0;13504:46;;;;;13472:94;-1:-1:-1;;;13200:3:0;;13168:423;;;-1:-1:-1;13616:40:0;;;13624:10;13616:40;;-1:-1:-1;;;;;13616:40:0;;;;;;;;;;;;;;;;;;;;;;;13693:8;13681:9;:20;13677:129;;;13718:41;;:10;;13738:20;;;13718:41;;;;;;;;;13738:20;13718:10;:41;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13718:41:0;13786:8;13774:20;;13677:129;13826:10;13816:21;;;;:9;:21;;;;;;;;:34;;;;;;;13891:28;;;;;;;;;;;;;13901:17;:15;:17::i;:::-;-1:-1:-1;;;;;13891:28:0;;;;;;13877:10;13861:27;;;;:15;:27;;;;;;;;:58;;;;;;;;;;;-1:-1:-1;;;13861:58:0;;;;-1:-1:-1;;;;;;13861:58:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;12717:1210:0:o;3393:157::-;3488:5;;-1:-1:-1;;;;;3488:5:0;3474:10;:19;3466:28;;;;;;-1:-1:-1;;;;;3505:26:0;;;;;;;;:20;:26;;;;;:37;;-1:-1:-1;;3505:37:0;;;;;;;;;;3393:157::o;4680:485::-;4775:5;;-1:-1:-1;;;;;4775:5:0;4761:10;:19;4753:28;;;;;;4792:24;;:::i;:::-;-1:-1:-1;;;;;;4819:25:0;;;;;;;:12;:25;;;;;;;;;4792:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4792:52:0;;;;;;;;;;-1:-1:-1;;;4792:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4863:3;:29;4855:38;;;;;;4929:71;;;;;;;;;4942:13;;-1:-1:-1;;;;;4929:71:0;;;;;;4957:18;;;;;-1:-1:-1;;;;;4929:71:0;;;;;;;;;4977:22;;;;4929:71;;;;;;;;4904:19;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;4904:97:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4904:97:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4904:97:0;-1:-1:-1;;;;4904:97:0;;;-1:-1:-1;;;;;;4904:97:0;;;;;;;;;;;;;;;;;;5050:17;;;;5033:13;;5012:35;;;;:20;:35;;;;;:55;;;;;-1:-1:-1;;5012:55:0;;;;;;;;;;5096:18;;5078:14;:36;;;;;;;;;5132:25;;;;;;:12;:25;;;;;5125:32;;;;;;;;;;;;;;;;;-1:-1:-1;;5125:32:0;;;4680:485::o;5959:360::-;6100:11;6088:9;:23;6080:32;;;;;;6131:17;;:57;;;-1:-1:-1;;;6131:57:0;;;;;;;;;;;;;;-1:-1:-1;;;;;6131:17:0;;;;:37;;6169:9;;;;6180:7;;;;6131:57;;;;;;;;;6169:9;6131:57;;;;6169:9;6131:57;1:33:-1;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;6131:57:0;;;;;;;;;;;;;-1:-1:-1;6131:57:0;;;;;;;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6131:57:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6131:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6131:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6131:57:0;6123:66;;;;;;6200:55;6216:9;6227:10;6239:8;6249:5;6200:15;:55::i;:::-;6271:40;;;6279:10;6271:40;;-1:-1:-1;;;;;6271:40:0;;;;;;6301:9;6271:40;;;;;;;;;;;;;;;5959:360;;;;;:::o;739:44::-;;;;;;;;;;;;;:::o;5177:770::-;5268:5;;-1:-1:-1;;;;;5268:5:0;5254:10;:19;5246:28;;;;;;5300:9;5295:645;5319:19;:26;5315:30;;5295:645;;;5367:28;;:::i;:::-;5398:19;5418:1;5398:22;;;;;;;;;;;;;;;;;5367:53;;;;;;;;5398:22;;;;;;;;5367:53;;-1:-1:-1;;;;;5367:53:0;;;;;;;;;;;-1:-1:-1;;;;;5367:53:0;;;;;;;;;-1:-1:-1;;;5367:53:0;;;;;;;;;;;;;;;;-1:-1:-1;5439:28:0;;;;5435:494;;;5506:18;;;;5488:14;:36;;-1:-1:-1;;;;;5488:36:0;;;;;;;;5667:19;:26;-1:-1:-1;;5667:30:0;5730:1;5716:126;5737:6;5733:1;:10;5716:126;;;5797:19;5817:1;5819;5817:3;5797:24;;;;;;;;;;;;;;;;;;5772:19;5792:1;5772:22;;;;;;;;;;;;;;;;:49;;:22;;;;;:49;;-1:-1:-1;;;;;;5772:49:0;-1:-1:-1;;;;;5772:49:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5772:49:0;-1:-1:-1;;;;;5772:49:0;;;;;;;;;;;;;-1:-1:-1;;;5772:49:0;;;;;;;;-1:-1:-1;;;;5772:49:0;;;;;;5745:3;5716:126;;;-1:-1:-1;5860:19:0;:28;;;;;-1:-1:-1;;5860:28:0;;;:::i;:::-;;5907:7;;;;;5435:494;-1:-1:-1;5347:3:0;;5295:645;;;;5177:770;;:::o;366:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;366:41:0;;;;-1:-1:-1;;;;;;366:41:0;;;-1:-1:-1;;;366:41:0;;;;;:::o;2229:210::-;2317:5;;-1:-1:-1;;;;;2317:5:0;2303:10;:19;2295:28;;;;;;2352:12;;2342:6;:22;;2334:31;;;;;;2376:12;:22;;;;;;;2409:5;;:22;;-1:-1:-1;;;;;2409:5:0;;;;:22;;;;;2392:6;;2376:12;2409:22;2376:12;2409:22;2392:6;2409:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;684:48:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;684:48:0;;;;-1:-1:-1;;;;;684:48:0;;;;-1:-1:-1;;;684:48:0;;;;;;;;;;;;;;;:::o;3562:1106::-;3708:5;;-1:-1:-1;;;;;3708:5:0;3694:10;:19;3686:28;;;;;;3750:1;3734:13;-1:-1:-1;;;;;3734:17:0;;3726:26;;;;;;3787:4;3771:13;-1:-1:-1;;;;;3771:20:0;;3763:29;;;;;;3877:9;3872:578;3896:19;:26;3892:30;;3872:578;;;3944:29;3976:19;3996:1;3976:22;;;;;;;;;;;;;;;;;;;;;4017:13;;3976:22;;-1:-1:-1;;;;;;4017:28:0;;;:13;;:28;4013:426;;;4086:18;;;;-1:-1:-1;;;;;4086:18:0;;;4070:34;;;;4066:280;;;4164:18;;;;4129:14;:54;;-1:-1:-1;;;;;4164:18:0;;;4148:34;;4129:54;;;;;;;;4066:280;;;4229:18;;;;-1:-1:-1;;;;;4229:18:0;;;4213:34;;;;4209:137;;;4291:18;;;;4272:14;:54;;-1:-1:-1;;;;;4291:18:0;;;:34;;;4272:54;;;;;;;;4209:137;4364:18;;:34;;-1:-1:-1;;;;;;4364:34:0;-1:-1:-1;;;;;4364:34:0;;;;;-1:-1:-1;4417:7:0;;4013:426;-1:-1:-1;3924:3:0;;3872:578;;;-1:-1:-1;4552:108:0;;;;;;;;-1:-1:-1;;;;;4552:108:0;;;;;;-1:-1:-1;;;;;4552:108:0;;;;;;;;;;4621:12;;4615:3;:18;4552:108;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4524:25:0;;;:12;:25;;;;;;;:136;;;;;;-1:-1:-1;;;;;;4524:136:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4524:136:0;;;;-1:-1:-1;;;;;;4524:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4524:136:0;;;-1:-1:-1;;4524:136:0;;;;;;;;;;;;;;;;;3562:1106;;;;;:::o;1152:27::-;;;;:::o;479:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;479:66:0;;-1:-1:-1;479:66:0;;-1:-1:-1;479:66:0:o;628:49::-;;;;;;;;;;;;-1:-1:-1;;;;;628:49:0;;;;-1:-1:-1;;;628:49:0;;;;:::o;2047:170::-;2132:5;;-1:-1:-1;;;;;2132:5:0;2118:10;:19;2110:28;;;;;;2170:7;;2157:10;:20;2149:29;;;;;;2189:7;:20;2047:170::o;414:52::-;;;;;;;;;;;;;;;:::o;3035:161::-;3132:5;;-1:-1:-1;;;;;3132:5:0;3118:10;:19;3110:28;;;;;;3149:7;:39;;-1:-1:-1;;;;;;3149:39:0;-1:-1:-1;;;;;3149:39:0;;;;;;;;;;3035:161::o;17060:481::-;-1:-1:-1;;;;;17158:29:0;;17121:7;17158:29;;;:21;:29;;;;;:36;17121:7;;17242:266;17266:6;17262:1;:10;17242:266;;;-1:-1:-1;;;;;17319:29:0;;17298:54;17319:29;;;:21;:29;;;;;:32;;17298:20;;:54;17319:29;17349:1;;17319:32;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17319:32:0;17298:54;;;;;;;;;;;;;;;17294:203;;;-1:-1:-1;;;;;17420:29:0;;;;;;:21;:29;;;;;:32;;17450:1;;17420:32;;;;;;;;;;;;;;;;;;17403:78;;;-1:-1:-1;;;17403:78:0;;-1:-1:-1;;;;;17403:78:0;;;;;;;;;;;;;;;;17420:32;;;;;17403:63;;:78;;;;;17420:32;;17403:78;;;;;;17420:32;17403:78;;;5:2:-1;;;;30:1;27;20:12;5:2;17403:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17403:78:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17403:78:0;17391:90;;;;;17294:203;17274:3;;17242:266;;;-1:-1:-1;17525:8:0;17060:481;-1:-1:-1;;;17060:481:0:o;14389:372::-;14439:11;:9;:11::i;:::-;14527:10;14461:14;14517:21;;;:9;:21;;;;;;14478:9;;14553:17;;;14549:120;;;14587:38;;:10;;14607:17;;;14587:38;;;;;;;;;14607:17;14587:10;:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14587:38:0;14649:8;14640:17;;14549:120;14689:10;14679:21;;;;:9;:21;;;;;;;;;:31;;;;;;;14726:27;;;;;;;;;;;;;;;;;;;;;;14389:372;;:::o;2451:198::-;2535:5;;-1:-1:-1;;;;;2535:5:0;2521:10;:19;2513:28;;;;;;2570:8;;2560:6;:18;;2552:27;;;;;;2590:8;:18;;;;;;;2619:5;;:22;;-1:-1:-1;;;;;2619:5:0;;;;:22;;;;;2602:6;;2590:8;2619:22;2590:8;2619:22;2602:6;2619:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;3208:173:0;3305:5;;-1:-1:-1;;;;;3305:5:0;3291:10;:19;3283:28;;;;;;3322:17;:51;;-1:-1:-1;;;;;;3322:51:0;-1:-1:-1;;;;;3322:51:0;;;;;;;;;;3208:173::o;552:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13939:438::-;14016:10;13987:16;14006:21;;;:9;:21;;;;;;14046:12;14038:21;;;;;;14080:17;14100:29;14118:10;14100:17;:29::i;:::-;14145:30;;;14153:10;14145:30;;;;;;;;;;14080:49;;-1:-1:-1;14145:30:0;;;;;;;;;;;14212:8;14200:9;:20;14196:129;;;14237:41;;:10;;14257:20;;;14237:41;;;;;;;;;14257:20;14237:10;:41;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14237:41:0;14305:8;14293:20;;14196:129;14345:10;14335:21;;;;:9;:21;;;;;:34;;;;;;;;-1:-1:-1;13939:438:0:o;12198:507::-;12251:16;12270:33;12292:10;12270:21;:33::i;:::-;12314:22;12339:7;;:37;;;-1:-1:-1;;;12339:37:0;;12365:10;12339:37;;;;;;12251:52;;-1:-1:-1;12314:22:0;;-1:-1:-1;;;;;12339:7:0;;;;:25;;:37;;;;;;;;;;;;;;:7;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;12339:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12339:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12339:37:0;;-1:-1:-1;12412:2:0;12395:19;;12387:28;;;;;;12474:3;12445:25;;;12444:33;12496:17;;;;12488:26;;;;;;12543:10;12533:21;;;;:9;:21;;;;;;:30;;:41;-1:-1:-1;12533:41:0;12525:50;;;;;;12596:10;12586:21;;;;:9;:21;;;;;;:31;;;;;;12628:27;;;;;;12611:6;;12628:27;;12586:21;12628:27;12611:6;12596:10;12628:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;12671:26:0;;;12678:10;12671:26;;;;;;;;;;;;;;;;;;;;;12198:507;;;;:::o;8740:1034::-;8888:1;8878:7;:11;:28;;;;;8903:3;8893:7;:13;8878:28;8870:37;;;;;;8926:17;;:57;;;-1:-1:-1;;;8926:57:0;;;;;;;;;;;;;;-1:-1:-1;;;;;8926:17:0;;;;:37;;8964:9;;;;8975:7;;;;8926:57;;;;;;;;;8964:9;8926:57;;;;8964:9;8926:57;1:33:-1;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;8926:57:0;;;;;;;;;;;;;-1:-1:-1;8926:57:0;;;;;;;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8926:57:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8926:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8926:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8926:57:0;8918:66;;;;;;9013:10;9003:21;;;;:9;:21;;;;;;:26;8995:35;;;;;;9118:10;9051:17;9096:33;;;:21;:33;;;;;:40;9051:17;9147:423;9171:6;9167:1;:10;9147:423;;;9262:10;9199:21;9240:33;;;:21;:33;;;;;:36;;9274:1;;9240:36;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9240:36:0;9199:78;;9293:12;9307:23;9342:4;-1:-1:-1;;;;;9334:18:0;9370:4;-1:-1:-1;;;;;9370:12:0;;:21;;;;9404:10;9416:8;9426:7;9393:41;;;;;;-1:-1:-1;;;;;9393:41:0;-1:-1:-1;;;;;9393:41:0;;;;;;-1:-1:-1;;;;;9393:41:0;-1:-1:-1;;;;;9393:41:0;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9393:41:0;;;9353:82;;;;;;-1:-1:-1;;;;;9353:82:0;;-1:-1:-1;;;;;9353:82:0;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9353:82:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9353:82:0;;;9334:102;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9334:102:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;9292:144:0;;;;9455:7;9451:94;;;9507:10;9496:33;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9496:33:0;9483:46;;;;;9451:94;-1:-1:-1;;;9179:3:0;;9147:423;;;-1:-1:-1;9580:14:0;;:51;;;-1:-1:-1;;;9580:51:0;;9620:10;9580:51;;;;;;-1:-1:-1;;;;;9580:14:0;;;;:22;;9609:9;;9580:51;;;;;:14;;:51;;;;;;;9609:9;9580:14;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;9580:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9580:51:0;;;;;9672:28;;;;;;;;9679:1;-1:-1:-1;;;;;9672:28:0;;;;;9682:17;:15;:17::i;:::-;-1:-1:-1;;;;;9672:28:0;;;;;;9658:10;9642:27;;;;:15;:27;;;;;;;;;:58;;;;;;;;;;-1:-1:-1;;;9642:58:0;;;;-1:-1:-1;;;;;;9642:58:0;;;;;;;;;;;;;;;;;9726:40;;;;;-1:-1:-1;;;;;9726:40:0;;;;;;;;;;;;;;;;;;;;;;;;;8740:1034;;;;;;;;:::o;15518:365::-;-1:-1:-1;;;;;15613:29:0;;15576:7;15613:29;;;:21;:29;;;;;:36;15576:7;;15696:145;15720:6;15716:1;:10;15696:145;;;-1:-1:-1;;;;;15776:29:0;;;;;;:21;:29;;;;;:32;;15806:1;;15776:32;;;;;;;;;;;;;;;;;15759:70;;;-1:-1:-1;;;15759:70:0;;-1:-1:-1;;;;;15759:70:0;;;;;;;;;15776:32;;;;;15759:62;;:70;;;;;;;;;;;15776:32;15759:70;;;5:2:-1;;;;30:1;27;20:12;5:2;15759:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15759:70:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15759:70:0;15748:81;;;;;15728:3;;15696:145;;10072:777;-1:-1:-1;;;;;10198:29:0;;10133:7;10198:29;;;:21;:29;;;;;:36;10133:7;;;10245:384;10269:6;10265:1;:10;10245:384;;;-1:-1:-1;;;;;10338:29:0;;10297:21;10338:29;;;:21;:29;;;;;:32;;10368:1;;10338:32;;;;;;;;;;;;;;;;;;10489:18;;;-1:-1:-1;;;;;10489:18:0;;;;;;;;;26:21:-1;;;22:32;;6:49;;10489:18:0;;;;;;-1:-1:-1;;;10401:23:0;10447:61;;;;;;;;10338:32;;;;;-1:-1:-1;10401:23:0;10338:32;;10464:23;;10489:18;10447:61;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10447:61:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10447:61:0;;;10428:81;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10428:81:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10386:123:0;;;;10528:7;10524:94;;;10580:10;10569:33;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10569:33:0;10556:46;;;;;10524:94;-1:-1:-1;;;10277:3:0;;10245:384;;;-1:-1:-1;;;;;;10653:17:0;;10673:1;10653:17;;;:9;:17;;;;;;:21;10649:156;;10691:11;10728:4;10717:8;;10705:9;:20;:27;;;;;10778:8;:15;;10705:27;;;;10778:15;;;;;10747:16;;;;-1:-1:-1;10649:156:0;-1:-1:-1;10832:9:0;10072:777;-1:-1:-1;;10072:777:0:o;11115:1071::-;11212:17;11232:25;11250:6;11232:17;:25::i;:::-;11212:45;-1:-1:-1;11318:3:0;11295:19;;;11294:27;;;;11336:13;;11332:176;;;11366:14;;:65;;;-1:-1:-1;;;11366:65:0;;-1:-1:-1;;;;;11366:65:0;;;;;;;;;:14;;;;;:22;;11395:27;;;;11366:65;;;;;:14;;:65;;;;;;;;11395:27;11366:14;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;11366:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11451:45:0;;;-1:-1:-1;;;;;11451:45:0;;;;11468:27;;;11451:45;;;;;;;;-1:-1:-1;11451:45:0;;;;;;;;-1:-1:-1;11451:45:0;-1:-1:-1;11451:45:0;11332:176;11518:14;;:61;;;-1:-1:-1;;;11518:61:0;;11573:4;11518:61;;;;;;-1:-1:-1;;;;;11518:14:0;;;;:23;;11548:15;;11518:61;;;;;:14;;:61;;;;;;;11548:15;11518:14;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;11518:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11518:61:0;;;;;11590:56;11606:15;11623:6;11631:8;11641:4;11590:15;:56::i;:::-;11692:20;;:::i;:::-;-1:-1:-1;;;;;;11715:23:0;;;;;;:15;:23;;;;;;;;11692:46;;;;;;;;;-1:-1:-1;;;;;11692:46:0;;;;;-1:-1:-1;;;11692:46:0;;;;;;;;;;;;11769:17;:15;:17::i;:::-;11749:37;;11832:9;-1:-1:-1;;;;;11801:40:0;:6;:23;;;11827:1;11801:27;-1:-1:-1;;;;;11801:40:0;;11797:222;;;11858:22;;;;-1:-1:-1;;;;;11858:22:0;;;11797:222;;;11928:9;-1:-1:-1;;;;;11902:35:0;:6;:23;;;-1:-1:-1;;;;;11902:35:0;;:64;;;-1:-1:-1;11941:20:0;;-1:-1:-1;;;;;11941:25:0;;11902:64;11898:121;;;12006:1;11983:24;;11898:121;-1:-1:-1;;;;;12031:35:0;;;:23;;;;:35;;;-1:-1:-1;;;;;12077:23:0;;;;;;;:15;:23;;;;;;;:32;;;;;;;;-1:-1:-1;;;12077:32:0;;;;-1:-1:-1;;;;;;12077:32:0;;;;;;;;;;;;;;;;;12135:43;;;;;;;;;;;;;;;;;;;;;;;;;;;11115:1071;;;;;;;:::o;6714:2014::-;6848:10;6842:3;:16;6838:267;;;6884:5;;-1:-1:-1;;;;;6884:5:0;;-1:-1:-1;6838:267:0;;;6958:10;6952:3;:16;6948:157;;;7007:8;6993:10;:22;;:50;;;;;7034:9;7019:11;:24;;6993:50;6985:59;;;;;;7129:7;;:11;7125:153;;7157:11;7196:4;7185:7;;7172:10;:20;7171:29;;;;;7247:12;:19;;7171:29;;;;7247:19;;;;;7215:17;;;;-1:-1:-1;7125:153:0;7322:19;:26;7388:14;;7298:21;7413:1308;7437:13;7433:1;:17;7413:1308;;;7476:23;7472:69;;7520:5;;7472:69;7569:32;;:::i;:::-;7604:19;7624:1;7604:22;;;;;;;;;;;;;;;;7569:57;;;;;;;;7604:22;;;;;;;7569:57;;-1:-1:-1;;;;;7569:57:0;;;;;;;;;-1:-1:-1;;;;;7569:57:0;;;;;;;;;-1:-1:-1;;;7569:57:0;;;;;;;;;;;;;;;-1:-1:-1;7569:57:0;;7604:22;7776:18;;7737:35;;7776:18;7736:58;;;;;7715:79;;7823:17;7859:12;:26;;;7855:89;;;-1:-1:-1;7918:10:0;7855:89;8076:60;;;-1:-1:-1;;;;;8076:60:0;;;;;;;;;;;;;;;;;;;;7973:23;8076:60;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8076:60:0;;;;;;-1:-1:-1;;;8036:101:0;;;;;;;;7959:12;;7973:23;;8000:18;;;;8025:9;;8053:21;;8076:60;8036:101;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8036:101:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8036:101:0;;;8000:138;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8000:138:0;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7958:180:0;;;;8171:7;8167:93;;;8222:10;8211:33;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8211:33:0;;-1:-1:-1;8167:93:0;8309:10;8296:9;:23;;8288:32;;;;;;8339:13;;8335:316;;-1:-1:-1;;;;;8420:25:0;;;;;;;:17;:25;;;;;;;;8446:17;;8420:44;;;;;;;;;;8373:23;;;;;8420:44;;8415:221;;-1:-1:-1;;;;;8489:25:0;;;;;;;:17;:25;;;;;;;;8515:17;;8489:44;;;;;;;;;:51;;8536:4;-1:-1:-1;;8489:51:0;;;;;;;;8563:29;;;:21;:29;;;;8598:17;;27:10:-1;;23:18;;;45:23;;8563:53:0;;;;;;;;;;-1:-1:-1;;;;;;8563:53:0;;;;;;;;8415:221;-1:-1:-1;;;8687:22:0;;;;;-1:-1:-1;;;;;8665:44:0;;;;;-1:-1:-1;;7452:3:0;;7413:1308;;;;6714:2014;;;;;;:::o;16309:739::-;-1:-1:-1;;;;;16410:29:0;;16373:7;16410:29;;;:21;:29;;;;;:36;16373:7;;16494:521;16518:6;16514:1;:10;16494:521;;;-1:-1:-1;;;;;16571:29:0;;16550:54;16571:29;;;:21;:29;;;;;:32;;16550:20;;:54;16571:29;16601:1;;16571:32;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16571:32:0;16550:54;;;;;;;;;;;;;;;16546:458;;;-1:-1:-1;;;;;16684:29:0;;16643:21;16684:29;;;:21;:29;;;;;:32;;16714:1;;16684:32;;;;;;;;;;;;;;;;;;16842:25;;;-1:-1:-1;;;;;16842:25:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;16751:23:0;16842:25;;;;;;-1:-1:-1;;;16797:71:0;;;;;;;;16684:32;;;;;-1:-1:-1;16751:23:0;;16684:32;;16842:25;;16797:71;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16797:71:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16797:71:0;;;16778:91;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16778:91:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;16736:133:0;;;;16892:7;16888:101;;;16947:10;16936:33;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16936:33:0;16924:45;;;;;16888:101;16546:458;;;;16526:3;;16494:521;;217:17479;;;;;;;;;-1:-1:-1;217:17479:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;217:17479:0;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;217:17479:0;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;217:17479:0;;;;;;;;-1:-1:-1;;217:17479:0;;;;;;;;;;

Swarm Source

bzzr://181679c82289a629261bd9dd454d6843b581f65f7164b396a345f214b005dec9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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