ETH Price: $1,987.99 (-1.85%)
Gas: 0.12 Gwei

Contract

0x2511535eD1e1FD4BCCEa1c5d124C51fF3528FA5f
 

Overview

ETH Balance

0.03575 ETH

Eth Value

$71.07 (@ $1,987.99/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Play Game98956982020-04-18 9:40:362171 days ago1587202836IN
0x2511535e...F3528FA5f
0.01 ETH0.000186958
Calculate Game98923392020-04-17 21:21:272171 days ago1587158487IN
0x2511535e...F3528FA5f
0 ETH0.000502995
Transfer98923052020-04-17 21:12:002171 days ago1587157920IN
0x2511535e...F3528FA5f
0.005 ETH0.000917065
Withdraw Commiss...98906812020-04-17 15:17:282172 days ago1587136648IN
0x2511535e...F3528FA5f
0 ETH0.000115235.1
Withdraw Commiss...98906772020-04-17 15:16:402172 days ago1587136600IN
0x2511535e...F3528FA5f
0 ETH0.0013929810
Withdraw Commiss...98906752020-04-17 15:16:092172 days ago1587136569IN
0x2511535e...F3528FA5f
0 ETH0.000700245.21875
Withdraw Commiss...98906672020-04-17 15:13:382172 days ago1587136418IN
0x2511535e...F3528FA5f
0 ETH0.0013417810
Withdraw Commiss...98906522020-04-17 15:09:552172 days ago1587136195IN
0x2511535e...F3528FA5f
0 ETH0.0013417810
Withdraw Commiss...98906482020-04-17 15:09:102172 days ago1587136150IN
0x2511535e...F3528FA5f
0 ETH0.0013524410
Calculate Game98906432020-04-17 15:08:392172 days ago1587136119IN
0x2511535e...F3528FA5f
0 ETH0.002393178
Play Game98906422020-04-17 15:08:002172 days ago1587136080IN
0x2511535e...F3528FA5f
0.02 ETH0.0018176210
Play Game98906272020-04-17 15:03:512172 days ago1587135831IN
0x2511535e...F3528FA5f
0.01 ETH0.0021201510
Play Game98906212020-04-17 15:02:402172 days ago1587135760IN
0x2511535e...F3528FA5f
0.03 ETH0.002207810
Play Game98906162020-04-17 15:01:172172 days ago1587135677IN
0x2511535e...F3528FA5f
0.01 ETH0.000512875.21875
Play Game98906162020-04-17 15:01:172172 days ago1587135677IN
0x2511535e...F3528FA5f
0.01 ETH0.001065015.21875
Play Game98906102020-04-17 15:00:072172 days ago1587135607IN
0x2511535e...F3528FA5f
0.02 ETH0.0010371610
Play Game98905952020-04-17 14:57:052172 days ago1587135425IN
0x2511535e...F3528FA5f
0.01 ETH0.0028451610
Transfer98905892020-04-17 14:55:332172 days ago1587135333IN
0x2511535e...F3528FA5f
0.005 ETH0.001477919
Set Finance98903662020-04-17 14:09:502172 days ago1587132590IN
0x2511535e...F3528FA5f
0 ETH0.00017255.61000023
Set Setting98903662020-04-17 14:09:502172 days ago1587132590IN
0x2511535e...F3528FA5f
0 ETH0.000260766

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-98906772020-04-17 15:16:402172 days ago1587136600
0x2511535e...F3528FA5f
0.038779 ETH
-98906752020-04-17 15:16:092172 days ago1587136569
0x2511535e...F3528FA5f
0.014364 ETH
-98906672020-04-17 15:13:382172 days ago1587136418
0x2511535e...F3528FA5f
0.006479 ETH
-98906522020-04-17 15:09:552172 days ago1587136195
0x2511535e...F3528FA5f
0.009329 ETH
-98906482020-04-17 15:09:102172 days ago1587136150
0x2511535e...F3528FA5f
0.011229 ETH
-98906432020-04-17 15:08:392172 days ago1587136119
0x2511535e...F3528FA5f
0.00407 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
richMan

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

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

/**
 *Submitted for verification at Etherscan.io on 2020-04-08
*/

pragma solidity ^0.4.24;

/**
 * Math operations with safety checks
 */
contract SafeMath {
    function safeMul(uint256 a, uint256 b) internal view returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeDiv(uint256 a, uint256 b) internal view returns (uint256) {
        assert(b > 0);
        uint256 c = a / b;
        assert(a == b * c + a % b);
        return c;
    }

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

    function safeAdd(uint256 a, uint256 b) internal view returns (uint256) {
        uint256 c = a + b;
        assert(c >= a && c >= b);
        return c;
    }

    function safePercent(uint256 a, uint256 b) internal view returns (uint256) {
        return safeDiv(safeMul(a, b), 100);
    }

    function assert(bool assertion) internal view {
        if (!assertion) {
            throw;
        }
    }
}


contract SettingInterface {
    /* 奖金比例(百分百) */
    function sponsorRate() public view returns (uint256 value);

    function firstRate() public view returns (uint256 value);

    function lastRate() public view returns (uint256 value);

    function gameMaxRate() public view returns (uint256 value);

    function keyRate() public view returns (uint256 value);

    function shareRate() public view returns (uint256 value);

    function superRate() public view returns (uint256 value);

    function leaderRate() public view returns (uint256 value);

    function auctioneerRate() public view returns (uint256 value);

    function withdrawFeeRate() public view returns (uint256 value);

}

contract richMan is SafeMath {

    uint constant mantissaOne = 10 ** 18;
    uint constant mantissaOneTenth = 10 ** 17;
    uint constant mantissaOneHundredth = 10 ** 16;

    address public admin;
    address public finance;
    uint256 public lastRemainAmount = 0;

    uint256 startAmount = 5 * mantissaOne;
    uint256 minAmount = mantissaOneHundredth;
    uint256 initTimer = 600;

    SettingInterface setting;
    /* 游戏轮数 */
    uint32 public currentGameCount;

    /* 畅享节点 */
    mapping(uint32 => mapping(address => uint256)) public shareNode;

    /* 超级节点 */
    mapping(uint32 => mapping(address => uint256)) public superNode;

    /* 团长 */
    mapping(uint32 => mapping(address => uint256)) public leaderShip;

    /* 拍卖师 */
    mapping(uint32 => mapping(address => uint256)) public auctioneer;

    /* 推荐奖 */
    mapping(uint32 => mapping(address => uint256)) public sponsorCommission;
    /* 奖金地址 */
    mapping(uint32 => mapping(address => bool)) public commissionAddress;

    /* 用户投资金额 */
    mapping(uint32 => mapping(address => uint256)) public userInvestment;

    /* 用户提现 */
    mapping(uint32 => mapping(address => bool)) public userWithdrawFlag;

    /* 游戏前10名 */
    mapping(uint32 => address[]) public firstAddress;
    /* 游戏后10名 */
    mapping(uint32 => address[]) public lastAddress;

    /* 游戏最高投资 */
    struct MaxPlay {
        address user;
        uint256 amount;
    }

    mapping(uint32 => MaxPlay) public gameMax;

    constructor() public {
        admin = msg.sender;
        finance = msg.sender;
        currentGameCount = 0;
        game[0].status = 2;
    }
    /* 游戏结构体
    * timer=倒计时,计数器单位为秒
      lastTime=最近一次成功参与游戏时间
      minAmount=最小投资金额
      doubleAmount=最小投资金额翻倍数量
      totalAmount=本轮游戏奖金池
      status=0游戏未开始,1游戏进行中,2游戏结算完
     */

    struct Game {
        uint256 timer;
        uint256 lastTime;
        uint256 minAmount;
        uint256 doubleAmount;
        uint256 investmentAmount;
        uint256 initAmount;
        uint256 totalKey;
        uint8 status;
    }

    /*  */
    mapping(uint32 => Game) public game;

    event SetAdmin(address newAdmin);
    event SetFinance(address newFinance);
    event PlayGame(address user, address sponsor, uint256 value);
    event WithdrawCommission(address user, uint32 gameCount, uint256 amount);
    event CalculateGame(uint32 gameCount, uint256 amount);

    function setAdmin(address newAdmin){
        require(msg.sender == admin);
        admin = newAdmin;
        emit SetAdmin(admin);
    }


    function setSetting(address value){
        require(msg.sender == admin);
        setting = SettingInterface(value);
    }

    function setFinance(address newFinance){
        require(msg.sender == finance);
        finance = newFinance;
        emit SetFinance(finance);
    }


    function() payable public {
        // require(msg.value >= startAmount);
        require(msg.sender == admin);
        require(game[currentGameCount].status == 2);
        currentGameCount += 1;
        game[currentGameCount].timer = initTimer;
        game[currentGameCount].lastTime = now;
        game[currentGameCount].minAmount = minAmount;
        game[currentGameCount].doubleAmount = startAmount * 2;
        game[currentGameCount].investmentAmount = lastRemainAmount;
        game[currentGameCount].initAmount = msg.value;
        game[currentGameCount].totalKey = 0;
        game[currentGameCount].status = 1;

    }

    function settTimer(uint32 gameCount) internal {
        uint256 remainTime = safeSub(game[gameCount].timer, safeSub(now, game[gameCount].lastTime));
        if (remainTime >= initTimer) {
            remainTime += 10;
        } else {
            remainTime += 30;
        }
        game[gameCount].timer = remainTime;
        game[gameCount].lastTime = now;
    }

    function updateSponsorCommission(uint32 gameCount, address sponsorUser, uint256 amount) internal {
        if (sponsorCommission[gameCount][sponsorUser] == 0) {
            commissionAddress[gameCount][sponsorUser] = true;
            uint256 keys = safeDiv(userInvestment[gameCount][sponsorUser], mantissaOneTenth);
            game[gameCount].totalKey = safeSub(game[gameCount].totalKey, keys);
        }

        sponsorCommission[gameCount][sponsorUser] = safeAdd(sponsorCommission[gameCount][sponsorUser], safePercent(amount, setting.sponsorRate()));
    }


    function updateAmountMax(uint32 gameCount, address user, uint256 amount) internal {
        if (amount >= gameMax[gameCount].amount) {
            gameMax[gameCount].amount = amount;
            gameMax[gameCount].user = user;
        }
    }

    function updateFirstAddress(uint32 gameCount, address user) internal {
        for (uint8 i = 0; i < firstAddress[gameCount].length; i++) {
            if (firstAddress[gameCount][i] == user) {
                return;
            }
        }
        if (firstAddress[gameCount].length < 10) {
            firstAddress[gameCount].push(user);
        }
    }

    function updateLastAddress(uint32 gameCount, address user) internal {
        uint8 i = 0;
        uint8 j = 0;
        for (i = 0; i < lastAddress[gameCount].length; i++) {
            if (lastAddress[gameCount][i] == user) {
                for (j = i; j < lastAddress[gameCount].length - 1; j++) {
                    lastAddress[gameCount][j] = lastAddress[gameCount][j + 1];
                }
                lastAddress[gameCount][lastAddress[gameCount].length - 1] = user;
                return;
            }
        }

        if (lastAddress[gameCount].length < 10) {
            lastAddress[gameCount].push(user);
        } else {
            for (i = 0; i < 9; i++) {
                lastAddress[gameCount][i] = lastAddress[gameCount][i + 1];
            }
            lastAddress[gameCount][9] = user;
        }
    }

    function updateInvestment(uint32 gameCount, address user, uint256 amount) internal {
        uint256 keys = safeDiv(userInvestment[gameCount][user], mantissaOneTenth);
        userInvestment[gameCount][user] = safeAdd(userInvestment[gameCount][user], amount);
        if (commissionAddress[gameCount][user] == false) {
            keys = safeSub(safeDiv(userInvestment[gameCount][user], mantissaOneTenth), keys);
            game[gameCount].totalKey = safeAdd(game[gameCount].totalKey, keys);
        }

    }

    function playGame(uint32 gameCount, address sponsorUser) payable public {
        require(game[gameCount].status == 1);
        require(game[gameCount].timer >= safeSub(now, game[gameCount].lastTime));
        require(msg.value >= game[gameCount].minAmount);

        uint256 [7] memory doubleList = [320 * mantissaOne, 160 * mantissaOne, 80 * mantissaOne, 40 * mantissaOne, 20 * mantissaOne, 10 * mantissaOne, 5 * mantissaOne];
        uint256 [7] memory minList = [100 * mantissaOneHundredth, 60 * mantissaOneHundredth, 20 * mantissaOneHundredth, 10 * mantissaOneHundredth, 6 * mantissaOneHundredth, 2 * mantissaOneHundredth, 1 * mantissaOneHundredth];

        settTimer(gameCount);
        updateSponsorCommission(gameCount, sponsorUser, msg.value);
        updateAmountMax(gameCount, msg.sender, msg.value);
        updateInvestment(gameCount, msg.sender, msg.value);
        updateFirstAddress(gameCount, msg.sender);
        updateLastAddress(gameCount, msg.sender);

        game[gameCount].investmentAmount += msg.value;
        for (uint256 i = 0; i < doubleList.length; i++) {
            if (safeAdd(game[gameCount].investmentAmount, game[gameCount].initAmount) >= doubleList[i]) {
                if (game[gameCount].minAmount != minList[i]) {
                    game[gameCount].minAmount = minList[i];
                }
                break;
            }
        }

        emit PlayGame(msg.sender, sponsorUser, msg.value);
    }


    function firstAddressLength(uint32 gameCount) public view returns (uint256){
        return firstAddress[gameCount].length;
    }

    function lastAddressLength(uint32 gameCount) public view returns (uint256){
        return lastAddress[gameCount].length;
    }

    function calculateFirstAddress(uint32 gameCount, address user) public view returns (uint256){
        uint256 amount = 0;
        for (uint8 i = 0; i < firstAddress[gameCount].length; i++) {
            if (firstAddress[gameCount][i] == user) {
                amount = safeAdd(amount, safeDiv(safePercent(game[gameCount].investmentAmount, setting.firstRate()), firstAddress[gameCount].length));
            }
        }
        return amount;
    }

    function calculateLastAddress(uint32 gameCount, address user) public view returns (uint256){
        uint256 amount = 0;
        for (uint8 i = 0; i < lastAddress[gameCount].length; i++) {
            if (lastAddress[gameCount][i] == user) {
                amount = safeAdd(amount, safeDiv(safePercent(game[gameCount].investmentAmount, setting.lastRate()), lastAddress[gameCount].length));
                if (i + 1 == lastAddress[gameCount].length) {
                    amount = safeAdd(amount, game[gameCount].initAmount);
                }
            }
        }
        return amount;
    }

    function calculateAmountMax(uint32 gameCount, address user) public view returns (uint256){
        if (gameMax[gameCount].user == user) {
            return safePercent(game[gameCount].investmentAmount, setting.gameMaxRate());
        }
        return 0;
    }

    function calculateKeyNumber(uint32 gameCount, address user) public view returns (uint256){
        if (gameCount != 0) {
            if (game[gameCount].status != 2) {
                return 0;
            }
            if (calculateFirstAddress(gameCount, user) > 0) {
                return 0;
            }
            if (calculateLastAddress(gameCount, user) > 0) {
                return 0;
            }
            if (calculateAmountMax(gameCount, user) > 0) {
                return 0;
            }
            if (sponsorCommission[gameCount][user] > 0) {
                return 0;
            }
            if (shareNode[gameCount][user] > 0) {
                return 0;
            }
            if (superNode[gameCount][user] > 0) {
                return 0;
            }
            if (auctioneer[gameCount][user] > 0) {
                return 0;
            }
            if (leaderShip[gameCount][user] > 0) {
                return 0;
            }
            return safeDiv(userInvestment[gameCount][user], mantissaOneTenth);
        }
        uint256 number = 0;
        for (uint32 i = 1; i <= currentGameCount; i++) {
            if (game[i].status != 2) {
                continue;
            }
            if (calculateFirstAddress(i, user) > 0) {
                continue;
            }
            if (calculateLastAddress(i, user) > 0) {
                continue;
            }
            if (calculateAmountMax(i, user) > 0) {
                continue;
            }
            if (sponsorCommission[i][user] > 0) {
                continue;
            }
            if (shareNode[i][user] > 0) {
                continue;
            }
            if (superNode[i][user] > 0) {
                continue;
            }
            if (auctioneer[i][user] > 0) {
                continue;
            }
            if (leaderShip[i][user] > 0) {
                continue;
            }

            number = safeAdd(safeDiv(userInvestment[i][user], mantissaOneTenth), number);
        }
        return number;
    }

    function calculateKeyCommission(uint32 gameCount, address user) public view returns (uint256){
        uint256 totalKey = 0;
        uint256 userKey = 0;
        for (uint32 i = 1; i <= gameCount; i++) {
            if (game[i].status != 2) {
                continue;
            }
            totalKey = safeAdd(game[i].totalKey, totalKey);
            userKey = safeAdd(calculateKeyNumber(i, user), userKey);
        }
        if (userKey == 0 || totalKey == 0) {
            return 0;
        }

        uint256 commission = safePercent(game[gameCount].investmentAmount, setting.keyRate());
        commission = safeDiv(safeMul(commission, userKey), totalKey);
        return commission;
    }

    function calculateCommission(uint32 gameCount, address user) public view returns (uint256){
        if (userWithdrawFlag[gameCount][user] == true) {
            return 0;
        }
        if (game[gameCount].status != 2) {
            return 0;
        }
        uint256 commission = 0;
        commission = safeAdd(calculateFirstAddress(gameCount, user), commission);
        commission = safeAdd(calculateLastAddress(gameCount, user), commission);
        commission = safeAdd(calculateAmountMax(gameCount, user), commission);
        commission = safeAdd(calculateKeyCommission(gameCount, user), commission);
        commission = safeAdd(sponsorCommission[gameCount][user], commission);
        commission = safeAdd(shareNode[gameCount][user], commission);
        commission = safeAdd(superNode[gameCount][user], commission);
        commission = safeAdd(auctioneer[gameCount][user], commission);
        commission = safeAdd(leaderShip[gameCount][user], commission);
        commission = safePercent(commission, 100 - setting.withdrawFeeRate());
        return commission;
    }

    function commissionGameCount(address user) public view returns (uint32[]){
        uint32 commissionCount = 0;
        uint32 i = 0;
        for (i = 1; i <= currentGameCount; i++) {
            if (calculateCommission(i, user) > 0) {
                commissionCount += 1;
            }
        }
        uint32[]  memory commissionCountList = new uint32[](commissionCount);
        commissionCount = 0;
        for (i = 1; i <= currentGameCount; i++) {
            if (calculateCommission(i, user) > 0) {
                commissionCountList[commissionCount] = i;
                commissionCount += 1;
            }
        }
        return commissionCountList;
    }

    function withdrawCommission(uint32 gameCount) public {
        uint256 commission = calculateCommission(gameCount, msg.sender);
        require(commission > 0);
        userWithdrawFlag[gameCount][msg.sender] = true;
        msg.sender.transfer(commission);
        emit WithdrawCommission(msg.sender, gameCount, commission);
    }

    function recycle(uint256 value) public {
        require(msg.sender == finance);
        finance.transfer(value);
    }

    function calculateGame(address[] shareUsers,
        address[] superUsers,
        address[] auctioneerUsers,
        address[] leaderUsers,
        uint32 gameCount) public {
        require(msg.sender == admin);
        require(game[gameCount].status == 1);

        uint256 totalKey = 0;
        uint256 i = 0;
        for (i = 0; i < shareUsers.length; i++) {
            shareNode[gameCount][shareUsers[i]] = safeDiv(safePercent(game[gameCount].investmentAmount, setting.shareRate()), shareUsers.length);
            if (commissionAddress[gameCount][shareUsers[i]] == false) {
                commissionAddress[gameCount][shareUsers[i]] = true;
                totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][shareUsers[i]], mantissaOneTenth));
            }
        }
        for (i = 0; i < superUsers.length; i++) {
            superNode[gameCount][superUsers[i]] = safeDiv(safePercent(game[gameCount].investmentAmount, setting.superRate()), superUsers.length);
            if (commissionAddress[gameCount][superUsers[i]] == false) {
                commissionAddress[gameCount][superUsers[i]] = true;
                totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][superUsers[i]], mantissaOneTenth));
            }
        }
        for (i = 0; i < auctioneerUsers.length; i++) {
            auctioneer[gameCount][auctioneerUsers[i]] = safeDiv(safePercent(game[gameCount].investmentAmount, setting.auctioneerRate()), auctioneerUsers.length);
            if (commissionAddress[gameCount][auctioneerUsers[i]] == false) {
                commissionAddress[gameCount][auctioneerUsers[i]] = true;
                totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][auctioneerUsers[i]], mantissaOneTenth));
            }
        }
        for (i = 0; i < leaderUsers.length; i++) {
            leaderShip[gameCount][leaderUsers[i]] = safeDiv(safePercent(game[gameCount].investmentAmount, setting.leaderRate()), leaderUsers.length);
            if (commissionAddress[gameCount][leaderUsers[i]] == false) {
                commissionAddress[gameCount][leaderUsers[i]] = true;
                totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][leaderUsers[i]], mantissaOneTenth));
            }
        }
        for (i = 0; i < firstAddress[gameCount].length; i++) {
            if (commissionAddress[gameCount][firstAddress[gameCount][i]] == false) {
                commissionAddress[gameCount][firstAddress[gameCount][i]] = true;
                totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][firstAddress[gameCount][i]], mantissaOneTenth));
            }
        }
        for (i = 0; i < lastAddress[gameCount].length; i++) {
            if (commissionAddress[gameCount][lastAddress[gameCount][i]] == false) {
                commissionAddress[gameCount][lastAddress[gameCount][i]] = true;
                totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][lastAddress[gameCount][i]], mantissaOneTenth));
            }
        }
        if (commissionAddress[gameCount][gameMax[gameCount].user] == false) {
            commissionAddress[gameCount][gameMax[gameCount].user] = true;
            totalKey = safeAdd(totalKey, safeDiv(userInvestment[gameCount][gameMax[gameCount].user], mantissaOneTenth));
        }

        game[gameCount].totalKey = safeSub(game[gameCount].totalKey, totalKey);
        game[gameCount].status = 2;
        uint256 remainAmount = 0;
        if (game[gameCount].totalKey == 0) {
            remainAmount = safeAdd(safePercent(game[gameCount].investmentAmount, setting.keyRate()), remainAmount);
        }
        if (shareUsers.length == 0) {
            remainAmount = safeAdd(safePercent(game[gameCount].investmentAmount, setting.shareRate()), remainAmount);
        }
        if (superUsers.length == 0) {
            remainAmount = safeAdd(safePercent(game[gameCount].investmentAmount, setting.superRate()), remainAmount);
        }
        if (auctioneerUsers.length == 0) {
            remainAmount = safeAdd(safePercent(game[gameCount].investmentAmount, setting.auctioneerRate()), remainAmount);
        }
        if (leaderUsers.length == 0) {
            remainAmount = safeAdd(safePercent(game[gameCount].investmentAmount, setting.leaderRate()), remainAmount);
        }
        uint256 amount = 0;
        if (lastRemainAmount != game[gameCount].investmentAmount) {
            amount = safePercent(safeSub(game[gameCount].investmentAmount, remainAmount), setting.withdrawFeeRate());
            amount = safeAdd(calculateCommission(gameCount, address(this)), amount);
            lastRemainAmount = remainAmount;
        } else {
            lastRemainAmount += game[gameCount].initAmount;
        }
        emit CalculateGame(gameCount, amount);
        finance.transfer(amount);
    }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"commissionAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"shareUsers","type":"address[]"},{"name":"superUsers","type":"address[]"},{"name":"auctioneerUsers","type":"address[]"},{"name":"leaderUsers","type":"address[]"},{"name":"gameCount","type":"uint32"}],"name":"calculateGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"gameCount","type":"uint32"}],"name":"withdrawCommission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"}],"name":"firstAddressLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"address"}],"name":"setSetting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"user","type":"address"}],"name":"calculateKeyCommission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finance","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"gameMax","outputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"superNode","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"user","type":"address"}],"name":"calculateAmountMax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"auctioneer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"shareNode","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"leaderShip","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"user","type":"address"}],"name":"calculateFirstAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"sponsorUser","type":"address"}],"name":"playGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"user","type":"address"}],"name":"calculateCommission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint256"}],"name":"lastAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"userInvestment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"userWithdrawFlag","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint256"}],"name":"firstAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFinance","type":"address"}],"name":"setFinance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"game","outputs":[{"name":"timer","type":"uint256"},{"name":"lastTime","type":"uint256"},{"name":"minAmount","type":"uint256"},{"name":"doubleAmount","type":"uint256"},{"name":"investmentAmount","type":"uint256"},{"name":"initAmount","type":"uint256"},{"name":"totalKey","type":"uint256"},{"name":"status","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"commissionGameCount","outputs":[{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"address"}],"name":"sponsorCommission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"user","type":"address"}],"name":"calculateLastAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRemainAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"},{"name":"user","type":"address"}],"name":"calculateKeyNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"gameCount","type":"uint32"}],"name":"lastAddressLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentGameCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"recycle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAdmin","type":"address"}],"name":"SetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newFinance","type":"address"}],"name":"SetFinance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"sponsor","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PlayGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"gameCount","type":"uint32"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WithdrawCommission","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"gameCount","type":"uint32"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CalculateGame","type":"event"}]

60806040526000600255670de0b6b3a7640000600502600355662386f26fc1000060045561025860055534801561003557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660146101000a81548163ffffffff021916908363ffffffff1602179055506002601260008063ffffffff16815260200190815260200160002060070160006101000a81548160ff021916908360ff160217905550615c17806200011f6000396000f300608060405260043610610195576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062afec631461046557806302fa08f9146104d05780630e0b57fe1461060f5780631536546214610642578063174494201461068957806317a18647146106cc578063313b7b191461073357806334e535f01461078a5780633613b681146108045780634eac3c501461086b57806357b42b4e146108d257806357eeaabf1461093957806361770fc5146109a05780636dbb3cfc14610a07578063704b6c0214610a6e57806373dfd69314610ab15780637bacdfbd14610af75780637e518da514610b5e5780638a6c86e614610bdb5780638d35788014610c425780639423a56814610cad5780639b8d306414610d2a578063ac744a2c14610d6d578063b757cb7e14610deb578063c2c2d1a014610e83578063c79b74bf14610eea578063c8815fa614610f51578063c9cf655e14610f7c578063d06099e314610fe3578063d2b04cf11461102a578063dd1c35bc14611061578063f851a4401461108e575b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101f057600080fd5b600260126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff1614151561024357600080fd5b6001600660148282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555060055460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600001819055504260126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206001018190555060045460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206002018190555060026003540260126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206003018190555060025460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600401819055503460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060050181905550600060126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060060181905550600160126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060070160006101000a81548160ff021916908360ff160217905550005b34801561047157600080fd5b506104b6600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e5565b604051808215151515815260200191505060405180910390f35b3480156104dc57600080fd5b5061060d60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803563ffffffff169060200190929190505050611114565b005b34801561061b57600080fd5b50610640600480360381019080803563ffffffff169060200190929190505050612def565b005b34801561064e57600080fd5b50610673600480360381019080803563ffffffff169060200190929190505050612f4b565b6040518082815260200191505060405180910390f35b34801561069557600080fd5b506106ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f77565b005b3480156106d857600080fd5b5061071d600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613016565b6040518082815260200191505060405180910390f35b34801561073f57600080fd5b506107486131ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079657600080fd5b506107bb600480360381019080803563ffffffff169060200190929190505050613225565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561081057600080fd5b50610855600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613269565b6040518082815260200191505060405180910390f35b34801561087757600080fd5b506108bc600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061328e565b6040518082815260200191505060405180910390f35b3480156108de57600080fd5b50610923600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613404565b6040518082815260200191505060405180910390f35b34801561094557600080fd5b5061098a600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613429565b6040518082815260200191505060405180910390f35b3480156109ac57600080fd5b506109f1600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061344e565b6040518082815260200191505060405180910390f35b348015610a1357600080fd5b50610a58600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613473565b6040518082815260200191505060405180910390f35b348015610a7a57600080fd5b50610aaf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613675565b005b610af5600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613797565b005b348015610b0357600080fd5b50610b48600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b8a565b6040518082815260200191505060405180910390f35b348015610b6a57600080fd5b50610b99600480360381019080803563ffffffff16906020019092919080359060200190929190505050613f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610be757600080fd5b50610c2c600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fd8565b6040518082815260200191505060405180910390f35b348015610c4e57600080fd5b50610c93600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ffd565b604051808215151515815260200191505060405180910390f35b348015610cb957600080fd5b50610ce8600480360381019080803563ffffffff1690602001909291908035906020019092919050505061402c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3657600080fd5b50610d6b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614079565b005b348015610d7957600080fd5b50610d9e600480360381019080803563ffffffff16906020019092919050505061419e565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018260ff1660ff1681526020019850505050505050505060405180910390f35b348015610df757600080fd5b50610e2c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141f3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610e6f578082015181840152602081019050610e54565b505050509050019250505060405180910390f35b348015610e8f57600080fd5b50610ed4600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061431e565b6040518082815260200191505060405180910390f35b348015610ef657600080fd5b50610f3b600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614343565b6040518082815260200191505060405180910390f35b348015610f5d57600080fd5b50610f666145a4565b6040518082815260200191505060405180910390f35b348015610f8857600080fd5b50610fcd600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506145aa565b6040518082815260200191505060405180910390f35b348015610fef57600080fd5b50611014600480360381019080803563ffffffff169060200190929190505050614c4a565b6040518082815260200191505060405180910390f35b34801561103657600080fd5b5061103f614c76565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561106d57600080fd5b5061108c60048036038101908080359060200190929190505050614c8c565b005b34801561109a57600080fd5b506110a3614d54565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600c6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561117557600080fd5b6001601260008763ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff161415156111b657600080fd5b6000935060009250600092505b88518310156114f0576112c26112bb601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb802a656040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561127b57600080fd5b505af115801561128f573d6000803e3d6000fd5b505050506040513d60208110156112a557600080fd5b8101908080519060200190929190505050614d79565b8a51614d97565b600760008763ffffffff1663ffffffff16815260200190815260200160002060008b868151811015156112f157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff16815260200190815260200160002060008b8681518110151561136c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156114e3576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008b868151811015156113f757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114e0846114db600d60008963ffffffff1663ffffffff16815260200190815260200160002060008d8881518110151561148857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b82806001019350506111c3565b600092505b8751831015611822576115f46115ed601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e5f8b0126040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ad57600080fd5b505af11580156115c1573d6000803e3d6000fd5b505050506040513d60208110156115d757600080fd5b8101908080519060200190929190505050614d79565b8951614d97565b600860008763ffffffff1663ffffffff16815260200190815260200160002060008a8681518110151561162357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff16815260200190815260200160002060008a8681518110151561169e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611815576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008a8681518110151561172957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118128461180d600d60008963ffffffff1663ffffffff16815260200190815260200160002060008c888151811015156117ba57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b82806001019350506114f5565b600092505b8651831015611b545761192661191f601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663de13eaba6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156118df57600080fd5b505af11580156118f3573d6000803e3d6000fd5b505050506040513d602081101561190957600080fd5b8101908080519060200190929190505050614d79565b8851614d97565b600a60008763ffffffff1663ffffffff1681526020019081526020016000206000898681518110151561195557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff168152602001908152602001600020600089868151811015156119d057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b47576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008986815181101515611a5b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611b4484611b3f600d60008963ffffffff1663ffffffff16815260200190815260200160002060008b88815181101515611aec57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b8280600101935050611827565b600092505b8551831015611e8657611c58611c51601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637613e80a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d6020811015611c3b57600080fd5b8101908080519060200190929190505050614d79565b8751614d97565b600960008763ffffffff1663ffffffff16815260200190815260200160002060008886815181101515611c8757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff16815260200190815260200160002060008886815181101515611d0257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611e79576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008886815181101515611d8d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e7684611e71600d60008963ffffffff1663ffffffff16815260200190815260200160002060008a88815181101515611e1e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b8280600101935050611b59565b600092505b600f60008663ffffffff1663ffffffff168152602001908152602001600020805490508310156121295760001515600c60008763ffffffff1663ffffffff1681526020019081526020016000206000600f60008963ffffffff1663ffffffff16815260200190815260200160002086815481101515611f0657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561211c576001600c60008763ffffffff1663ffffffff1681526020019081526020016000206000600f60008963ffffffff1663ffffffff16815260200190815260200160002086815481101515611fd057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061211984612114600d60008963ffffffff1663ffffffff1681526020019081526020016000206000600f60008b63ffffffff1663ffffffff168152602001908152602001600020888154811015156120a057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b8280600101935050611e8b565b600092505b601060008663ffffffff1663ffffffff168152602001908152602001600020805490508310156123cc5760001515600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601060008963ffffffff1663ffffffff168152602001908152602001600020868154811015156121a957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156123bf576001600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601060008963ffffffff1663ffffffff1681526020019081526020016000208681548110151561227357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506123bc846123b7600d60008963ffffffff1663ffffffff1681526020019081526020016000206000601060008b63ffffffff1663ffffffff1681526020019081526020016000208881548110151561234357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b828060010193505061212e565b60001515600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601160008963ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156125f7576001600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601160008963ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506125f4846125ef600d60008963ffffffff1663ffffffff1681526020019081526020016000206000601160008b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b612623601260008763ffffffff1663ffffffff1681526020019081526020016000206006015485614e02565b601260008763ffffffff1663ffffffff168152602001908152602001600020600601819055506002601260008763ffffffff1663ffffffff16815260200190815260200160002060070160006101000a81548160ff021916908360ff160217905550600091506000601260008763ffffffff1663ffffffff1681526020019081526020016000206006015414156127ac576127a96127a3601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efad691f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561276357600080fd5b505af1158015612777573d6000803e3d6000fd5b505050506040513d602081101561278d57600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b6000895114156128ae576128ab6128a5601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb802a656040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561286557600080fd5b505af1158015612879573d6000803e3d6000fd5b505050506040513d602081101561288f57600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b6000885114156129b0576129ad6129a7601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e5f8b0126040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050506040513d602081101561299157600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b600087511415612ab257612aaf612aa9601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663de13eaba6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050506040513d6020811015612a9357600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b600086511415612bb457612bb1612bab601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637613e80a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b6b57600080fd5b505af1158015612b7f573d6000803e3d6000fd5b505050506040513d6020811015612b9557600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b60009050601260008663ffffffff1663ffffffff16815260200190815260200160002060040154600254141515612cfd57612cda612c14601260008863ffffffff1663ffffffff1681526020019081526020016000206004015484614e02565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ea99e6896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050506040513d6020811015612cc457600080fd5b8101908080519060200190929190505050614d79565b9050612cef612ce98630613b8a565b82614dd8565b905081600281905550612d30565b601260008663ffffffff1663ffffffff168152602001908152602001600020600501546002600082825401925050819055505b7f112ad530b31ca6020d70a21c1dbb86ebcd088a1876551f8dfbba7d818dc952b68582604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612de3573d6000803e3d6000fd5b50505050505050505050565b6000612dfb8233613b8a565b9050600081111515612e0c57600080fd5b6001600e60008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ec7573d6000803e3d6000fd5b507f75d2fe169685dc0e0b0e372f2d775099738f1e85ca11493ae59af5ddaa6dd463338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018363ffffffff1663ffffffff168152602001828152602001935050505060405180910390a15050565b6000600f60008363ffffffff1663ffffffff168152602001908152602001600020805490509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd257600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080935060009250600191505b8663ffffffff168263ffffffff161115156130d1576002601260008463ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff16141515613080576130c4565b6130ac601260008463ffffffff1663ffffffff1681526020019081526020016000206006015485614dd8565b93506130c16130bb83886145aa565b84614dd8565b92505b818060010192505061302a565b60008314806130e05750600084145b156130ee57600094506131f5565b6131da601260008963ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efad691f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561319a57600080fd5b505af11580156131ae573d6000803e3d6000fd5b505050506040513d60208110156131c457600080fd5b8101908080519060200190929190505050614d79565b90506131ef6131e98285614e1b565b85614d97565b90508094505b5050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b6008602052816000526040600020602052806000526040600020600091509150505481565b60008173ffffffffffffffffffffffffffffffffffffffff16601160008563ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156133f9576133f2601260008563ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a79615936040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156133b257600080fd5b505af11580156133c6573d6000803e3d6000fd5b505050506040513d60208110156133dc57600080fd5b8101908080519060200190929190505050614d79565b90506133fe565b600090505b92915050565b600a602052816000526040600020602052806000526040600020600091509150505481565b6007602052816000526040600020602052806000526040600020600091509150505481565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000806000809150600090505b600f60008663ffffffff1663ffffffff168152602001908152602001600020805490508160ff16101561366a578373ffffffffffffffffffffffffffffffffffffffff16600f60008763ffffffff1663ffffffff1681526020019081526020016000208260ff168154811015156134f357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561365d5761365a8261365561362d601260008a63ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484db63f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156135ed57600080fd5b505af1158015613601573d6000803e3d6000fd5b505050506040513d602081101561361757600080fd5b8101908080519060200190929190505050614d79565b600f60008a63ffffffff1663ffffffff16815260200190815260200160002080549050614d97565b614dd8565b91505b8080600101915050613480565b819250505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136d057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b61379f615bc8565b6137a7615bc8565b60006001601260008763ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff161415156137ea57600080fd5b61381642601260008863ffffffff1663ffffffff16815260200190815260200160002060010154614e02565b601260008763ffffffff1663ffffffff168152602001908152602001600020600001541015151561384657600080fd5b601260008663ffffffff1663ffffffff16815260200190815260200160002060020154341015151561387757600080fd5b60e060405190810160405280670de0b6b3a7640000610140028152602001670de0b6b3a764000060a0028152602001670de0b6b3a76400006050028152602001670de0b6b3a76400006028028152602001670de0b6b3a76400006014028152602001670de0b6b3a7640000600a028152602001670de0b6b3a7640000600502815250925060e060405190810160405280662386f26fc100006064028152602001662386f26fc10000603c028152602001662386f26fc100006014028152602001662386f26fc10000600a028152602001662386f26fc100006006028152602001662386f26fc100006002028152602001662386f26fc10000600102815250915061398085614e4e565b61398b858534614f18565b61399685333461524b565b6139a1853334615304565b6139ab8533615584565b6139b5853361570b565b34601260008763ffffffff1663ffffffff16815260200190815260200160002060040160008282540192505081905550600090505b6007811015613ae4578281600781101515613a0157fe5b6020020151613a54601260008863ffffffff1663ffffffff16815260200190815260200160002060040154601260008963ffffffff1663ffffffff16815260200190815260200160002060050154614dd8565b101515613ad7578181600781101515613a6957fe5b6020020151601260008763ffffffff1663ffffffff16815260200190815260200160002060020154141515613ad2578181600781101515613aa657fe5b6020020151601260008763ffffffff1663ffffffff168152602001908152602001600020600201819055505b613ae4565b80806001019150506139ea565b7fe4ba2d08bcc435be34f800c6e360d90051c266f8d759dba730931946a88b94d8338534604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b60008060011515600e60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415613c0c5760009150613f84565b6002601260008663ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff16141515613c515760009150613f84565b60009050613c68613c628585613473565b82614dd8565b9050613c7d613c778585614343565b82614dd8565b9050613c92613c8c858561328e565b82614dd8565b9050613ca7613ca18585613016565b82614dd8565b9050613d0f600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613d77600760008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613ddf600860008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613e47600a60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613eaf600960008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613f7e81600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ea99e6896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015613f3b57600080fd5b505af1158015613f4f573d6000803e3d6000fd5b505050506040513d6020811015613f6557600080fd5b8101908080519060200190929190505050606403614d79565b90508091505b5092915050565b601060205281600052604060002081815481101515613fa657fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d602052816000526040600020602052806000526040600020600091509150505481565b600e6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600f6020528160005260406000208181548110151561404757fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156140d557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6a62fa629838eba7baacd6b9730fe014125c8482f6bc25b8f21170181409ce9b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60126020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905088565b606060008060606000925060009150600191505b600660149054906101000a900463ffffffff1663ffffffff168263ffffffff1611151561425457600061423a8387613b8a565b1115614247576001830192505b8180600101925050614207565b8263ffffffff166040519080825280602002602001820160405280156142895781602001602082028038833980820191505090505b50905060009250600191505b600660149054906101000a900463ffffffff1663ffffffff168263ffffffff161115156143135760006142c88387613b8a565b11156143065781818463ffffffff168151811015156142e357fe5b9060200190602002019063ffffffff16908163ffffffff16815250506001830192505b8180600101925050614295565b809350505050919050565b600b602052816000526040600020602052806000526040600020600091509150505481565b6000806000809150600090505b601060008663ffffffff1663ffffffff168152602001908152602001600020805490508160ff161015614599578373ffffffffffffffffffffffffffffffffffffffff16601060008763ffffffff1663ffffffff1681526020019081526020016000208260ff168154811015156143c357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561458c5761452a826145256144fd601260008a63ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382cac6df6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156144bd57600080fd5b505af11580156144d1573d6000803e3d6000fd5b505050506040513d60208110156144e757600080fd5b8101908080519060200190929190505050614d79565b601060008a63ffffffff1663ffffffff16815260200190815260200160002080549050614d97565b614dd8565b9150601060008663ffffffff1663ffffffff168152602001908152602001600020805490506001820160ff16141561458b5761458882601260008863ffffffff1663ffffffff16815260200190815260200160002060050154614dd8565b91505b5b8080600101915050614350565b819250505092915050565b60025481565b6000806000808563ffffffff161415156148ef576002601260008763ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff161415156146035760009250614c42565b600061460f8686613473565b111561461e5760009250614c42565b600061462a8686614343565b11156146395760009250614c42565b6000614645868661328e565b11156146545760009250614c42565b6000600b60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156146c25760009250614c42565b6000600760008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156147305760009250614c42565b6000600860008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561479e5760009250614c42565b6000600a60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561480c5760009250614c42565b6000600960008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561487a5760009250614c42565b6148e8600d60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b9250614c42565b60009150600190505b600660149054906101000a900463ffffffff1663ffffffff168163ffffffff16111515614c3e576002601260008363ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff1614151561496057614c31565b600061496c8286613473565b111561497757614c31565b60006149838286614343565b111561498e57614c31565b600061499a828661328e565b11156149a557614c31565b6000600b60008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614a0f57614c31565b6000600760008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614a7957614c31565b6000600860008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614ae357614c31565b6000600a60008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614b4d57614c31565b6000600960008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614bb757614c31565b614c2e614c28600d60008463ffffffff1663ffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b83614dd8565b91505b80806001019150506148f8565b8192505b505092915050565b6000601060008363ffffffff1663ffffffff168152602001908152602001600020805490509050919050565b600660149054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614ce857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614d50573d6000803e3d6000fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000614d8f614d888484614e1b565b6064614d97565b905092915050565b600080614da660008411615bb9565b8284811515614db157fe5b049050614dce8385811515614dc257fe5b06828502018514615bb9565b8091505092915050565b6000808284019050614df8848210158015614df35750838210155b615bb9565b8091505092915050565b6000614e1083831115615bb9565b818303905092915050565b6000808284029050614e446000851480614e3f5750838583811515614e3c57fe5b04145b615bb9565b8091505092915050565b6000614ea7601260008463ffffffff1663ffffffff16815260200190815260200160002060000154614ea242601260008763ffffffff1663ffffffff16815260200190815260200160002060010154614e02565b614e02565b905060055481101515614ebf57600a81019050614ec6565b601e810190505b80601260008463ffffffff1663ffffffff1681526020019081526020016000206000018190555042601260008463ffffffff1663ffffffff168152602001908152602001600020600101819055505050565b600080600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156150b6576001600c60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550615061600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b905061508f601260008663ffffffff1663ffffffff1681526020019081526020016000206006015482614e02565b601260008663ffffffff1663ffffffff168152602001908152602001600020600601819055505b6151e5600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546151e084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f9e3526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156151a057600080fd5b505af11580156151b4573d6000803e3d6000fd5b505050506040513d60208110156151ca57600080fd5b8101908080519060200190929190505050614d79565b614dd8565b600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b601160008463ffffffff1663ffffffff16815260200190815260200160002060010154811015156152ff5780601160008563ffffffff1663ffffffff1681526020019081526020016000206001018190555081601160008563ffffffff1663ffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b6000615374600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b90506153dc600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483614dd8565b600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561557e57615529615523600d60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b82614e02565b9050615557601260008663ffffffff1663ffffffff1681526020019081526020016000206006015482614dd8565b601260008663ffffffff1663ffffffff168152602001908152602001600020600601819055505b50505050565b60008090505b600f60008463ffffffff1663ffffffff168152602001908152602001600020805490508160ff161015615656578173ffffffffffffffffffffffffffffffffffffffff16600f60008563ffffffff1663ffffffff1681526020019081526020016000208260ff168154811015156155fd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561564957615706565b808060010191505061558a565b600a600f60008563ffffffff1663ffffffff16815260200190815260200160002080549050101561570557600f60008463ffffffff1663ffffffff1681526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b505050565b6000806000915060009050600091505b601060008563ffffffff1663ffffffff168152602001908152602001600020805490508260ff161015615996578273ffffffffffffffffffffffffffffffffffffffff16601060008663ffffffff1663ffffffff1681526020019081526020016000208360ff1681548110151561578e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415615989578190505b6001601060008663ffffffff1663ffffffff16815260200190815260200160002080549050038160ff1610156158ea57601060008563ffffffff1663ffffffff1681526020019081526020016000206001820160ff1681548110151561583b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060008663ffffffff1663ffffffff1681526020019081526020016000208260ff1681548110151561589557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806001019150506157d9565b82601060008663ffffffff1663ffffffff1681526020019081526020016000206001601060008863ffffffff1663ffffffff168152602001908152602001600020805490500381548110151561593c57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615bb3565b818060010192505061571b565b600a601060008663ffffffff1663ffffffff168152602001908152602001600020805490501015615a4957601060008563ffffffff1663ffffffff1681526020019081526020016000208390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050615bb2565b600091505b60098260ff161015615b3b57601060008563ffffffff1663ffffffff1681526020019081526020016000206001830160ff16815481101515615a8c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060008663ffffffff1663ffffffff1681526020019081526020016000208360ff16815481101515615ae657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508180600101925050615a4e565b82601060008663ffffffff1663ffffffff1681526020019081526020016000206009815481101515615b6957fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50505050565b801515615bc557600080fd5b50565b60e0604051908101604052806007906020820280388339808201915050905050905600a165627a7a7230582098175c6b5c9c0bf3f00da4661d864c1f1b4a371a853207bbf41f9ac6764891df0029

Deployed Bytecode

0x608060405260043610610195576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062afec631461046557806302fa08f9146104d05780630e0b57fe1461060f5780631536546214610642578063174494201461068957806317a18647146106cc578063313b7b191461073357806334e535f01461078a5780633613b681146108045780634eac3c501461086b57806357b42b4e146108d257806357eeaabf1461093957806361770fc5146109a05780636dbb3cfc14610a07578063704b6c0214610a6e57806373dfd69314610ab15780637bacdfbd14610af75780637e518da514610b5e5780638a6c86e614610bdb5780638d35788014610c425780639423a56814610cad5780639b8d306414610d2a578063ac744a2c14610d6d578063b757cb7e14610deb578063c2c2d1a014610e83578063c79b74bf14610eea578063c8815fa614610f51578063c9cf655e14610f7c578063d06099e314610fe3578063d2b04cf11461102a578063dd1c35bc14611061578063f851a4401461108e575b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101f057600080fd5b600260126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff1614151561024357600080fd5b6001600660148282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555060055460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600001819055504260126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206001018190555060045460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206002018190555060026003540260126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206003018190555060025460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600401819055503460126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060050181905550600060126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060060181905550600160126000600660149054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060070160006101000a81548160ff021916908360ff160217905550005b34801561047157600080fd5b506104b6600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e5565b604051808215151515815260200191505060405180910390f35b3480156104dc57600080fd5b5061060d60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803563ffffffff169060200190929190505050611114565b005b34801561061b57600080fd5b50610640600480360381019080803563ffffffff169060200190929190505050612def565b005b34801561064e57600080fd5b50610673600480360381019080803563ffffffff169060200190929190505050612f4b565b6040518082815260200191505060405180910390f35b34801561069557600080fd5b506106ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f77565b005b3480156106d857600080fd5b5061071d600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613016565b6040518082815260200191505060405180910390f35b34801561073f57600080fd5b506107486131ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079657600080fd5b506107bb600480360381019080803563ffffffff169060200190929190505050613225565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561081057600080fd5b50610855600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613269565b6040518082815260200191505060405180910390f35b34801561087757600080fd5b506108bc600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061328e565b6040518082815260200191505060405180910390f35b3480156108de57600080fd5b50610923600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613404565b6040518082815260200191505060405180910390f35b34801561094557600080fd5b5061098a600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613429565b6040518082815260200191505060405180910390f35b3480156109ac57600080fd5b506109f1600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061344e565b6040518082815260200191505060405180910390f35b348015610a1357600080fd5b50610a58600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613473565b6040518082815260200191505060405180910390f35b348015610a7a57600080fd5b50610aaf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613675565b005b610af5600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613797565b005b348015610b0357600080fd5b50610b48600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b8a565b6040518082815260200191505060405180910390f35b348015610b6a57600080fd5b50610b99600480360381019080803563ffffffff16906020019092919080359060200190929190505050613f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610be757600080fd5b50610c2c600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fd8565b6040518082815260200191505060405180910390f35b348015610c4e57600080fd5b50610c93600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ffd565b604051808215151515815260200191505060405180910390f35b348015610cb957600080fd5b50610ce8600480360381019080803563ffffffff1690602001909291908035906020019092919050505061402c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3657600080fd5b50610d6b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614079565b005b348015610d7957600080fd5b50610d9e600480360381019080803563ffffffff16906020019092919050505061419e565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018260ff1660ff1681526020019850505050505050505060405180910390f35b348015610df757600080fd5b50610e2c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141f3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610e6f578082015181840152602081019050610e54565b505050509050019250505060405180910390f35b348015610e8f57600080fd5b50610ed4600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061431e565b6040518082815260200191505060405180910390f35b348015610ef657600080fd5b50610f3b600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614343565b6040518082815260200191505060405180910390f35b348015610f5d57600080fd5b50610f666145a4565b6040518082815260200191505060405180910390f35b348015610f8857600080fd5b50610fcd600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506145aa565b6040518082815260200191505060405180910390f35b348015610fef57600080fd5b50611014600480360381019080803563ffffffff169060200190929190505050614c4a565b6040518082815260200191505060405180910390f35b34801561103657600080fd5b5061103f614c76565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561106d57600080fd5b5061108c60048036038101908080359060200190929190505050614c8c565b005b34801561109a57600080fd5b506110a3614d54565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600c6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561117557600080fd5b6001601260008763ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff161415156111b657600080fd5b6000935060009250600092505b88518310156114f0576112c26112bb601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb802a656040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561127b57600080fd5b505af115801561128f573d6000803e3d6000fd5b505050506040513d60208110156112a557600080fd5b8101908080519060200190929190505050614d79565b8a51614d97565b600760008763ffffffff1663ffffffff16815260200190815260200160002060008b868151811015156112f157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff16815260200190815260200160002060008b8681518110151561136c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156114e3576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008b868151811015156113f757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114e0846114db600d60008963ffffffff1663ffffffff16815260200190815260200160002060008d8881518110151561148857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b82806001019350506111c3565b600092505b8751831015611822576115f46115ed601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e5f8b0126040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115ad57600080fd5b505af11580156115c1573d6000803e3d6000fd5b505050506040513d60208110156115d757600080fd5b8101908080519060200190929190505050614d79565b8951614d97565b600860008763ffffffff1663ffffffff16815260200190815260200160002060008a8681518110151561162357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff16815260200190815260200160002060008a8681518110151561169e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611815576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008a8681518110151561172957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118128461180d600d60008963ffffffff1663ffffffff16815260200190815260200160002060008c888151811015156117ba57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b82806001019350506114f5565b600092505b8651831015611b545761192661191f601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663de13eaba6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156118df57600080fd5b505af11580156118f3573d6000803e3d6000fd5b505050506040513d602081101561190957600080fd5b8101908080519060200190929190505050614d79565b8851614d97565b600a60008763ffffffff1663ffffffff1681526020019081526020016000206000898681518110151561195557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff168152602001908152602001600020600089868151811015156119d057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b47576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008986815181101515611a5b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611b4484611b3f600d60008963ffffffff1663ffffffff16815260200190815260200160002060008b88815181101515611aec57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b8280600101935050611827565b600092505b8551831015611e8657611c58611c51601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637613e80a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d6020811015611c3b57600080fd5b8101908080519060200190929190505050614d79565b8751614d97565b600960008763ffffffff1663ffffffff16815260200190815260200160002060008886815181101515611c8757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008763ffffffff1663ffffffff16815260200190815260200160002060008886815181101515611d0257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611e79576001600c60008763ffffffff1663ffffffff16815260200190815260200160002060008886815181101515611d8d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e7684611e71600d60008963ffffffff1663ffffffff16815260200190815260200160002060008a88815181101515611e1e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b8280600101935050611b59565b600092505b600f60008663ffffffff1663ffffffff168152602001908152602001600020805490508310156121295760001515600c60008763ffffffff1663ffffffff1681526020019081526020016000206000600f60008963ffffffff1663ffffffff16815260200190815260200160002086815481101515611f0657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561211c576001600c60008763ffffffff1663ffffffff1681526020019081526020016000206000600f60008963ffffffff1663ffffffff16815260200190815260200160002086815481101515611fd057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061211984612114600d60008963ffffffff1663ffffffff1681526020019081526020016000206000600f60008b63ffffffff1663ffffffff168152602001908152602001600020888154811015156120a057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b8280600101935050611e8b565b600092505b601060008663ffffffff1663ffffffff168152602001908152602001600020805490508310156123cc5760001515600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601060008963ffffffff1663ffffffff168152602001908152602001600020868154811015156121a957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156123bf576001600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601060008963ffffffff1663ffffffff1681526020019081526020016000208681548110151561227357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506123bc846123b7600d60008963ffffffff1663ffffffff1681526020019081526020016000206000601060008b63ffffffff1663ffffffff1681526020019081526020016000208881548110151561234357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b828060010193505061212e565b60001515600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601160008963ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156125f7576001600c60008763ffffffff1663ffffffff1681526020019081526020016000206000601160008963ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506125f4846125ef600d60008963ffffffff1663ffffffff1681526020019081526020016000206000601160008b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b614dd8565b93505b612623601260008763ffffffff1663ffffffff1681526020019081526020016000206006015485614e02565b601260008763ffffffff1663ffffffff168152602001908152602001600020600601819055506002601260008763ffffffff1663ffffffff16815260200190815260200160002060070160006101000a81548160ff021916908360ff160217905550600091506000601260008763ffffffff1663ffffffff1681526020019081526020016000206006015414156127ac576127a96127a3601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efad691f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561276357600080fd5b505af1158015612777573d6000803e3d6000fd5b505050506040513d602081101561278d57600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b6000895114156128ae576128ab6128a5601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb802a656040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561286557600080fd5b505af1158015612879573d6000803e3d6000fd5b505050506040513d602081101561288f57600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b6000885114156129b0576129ad6129a7601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e5f8b0126040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050506040513d602081101561299157600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b600087511415612ab257612aaf612aa9601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663de13eaba6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b505050506040513d6020811015612a9357600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b600086511415612bb457612bb1612bab601260008863ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637613e80a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612b6b57600080fd5b505af1158015612b7f573d6000803e3d6000fd5b505050506040513d6020811015612b9557600080fd5b8101908080519060200190929190505050614d79565b83614dd8565b91505b60009050601260008663ffffffff1663ffffffff16815260200190815260200160002060040154600254141515612cfd57612cda612c14601260008863ffffffff1663ffffffff1681526020019081526020016000206004015484614e02565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ea99e6896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050506040513d6020811015612cc457600080fd5b8101908080519060200190929190505050614d79565b9050612cef612ce98630613b8a565b82614dd8565b905081600281905550612d30565b601260008663ffffffff1663ffffffff168152602001908152602001600020600501546002600082825401925050819055505b7f112ad530b31ca6020d70a21c1dbb86ebcd088a1876551f8dfbba7d818dc952b68582604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612de3573d6000803e3d6000fd5b50505050505050505050565b6000612dfb8233613b8a565b9050600081111515612e0c57600080fd5b6001600e60008463ffffffff1663ffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ec7573d6000803e3d6000fd5b507f75d2fe169685dc0e0b0e372f2d775099738f1e85ca11493ae59af5ddaa6dd463338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018363ffffffff1663ffffffff168152602001828152602001935050505060405180910390a15050565b6000600f60008363ffffffff1663ffffffff168152602001908152602001600020805490509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd257600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080935060009250600191505b8663ffffffff168263ffffffff161115156130d1576002601260008463ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff16141515613080576130c4565b6130ac601260008463ffffffff1663ffffffff1681526020019081526020016000206006015485614dd8565b93506130c16130bb83886145aa565b84614dd8565b92505b818060010192505061302a565b60008314806130e05750600084145b156130ee57600094506131f5565b6131da601260008963ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efad691f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561319a57600080fd5b505af11580156131ae573d6000803e3d6000fd5b505050506040513d60208110156131c457600080fd5b8101908080519060200190929190505050614d79565b90506131ef6131e98285614e1b565b85614d97565b90508094505b5050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b6008602052816000526040600020602052806000526040600020600091509150505481565b60008173ffffffffffffffffffffffffffffffffffffffff16601160008563ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156133f9576133f2601260008563ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a79615936040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156133b257600080fd5b505af11580156133c6573d6000803e3d6000fd5b505050506040513d60208110156133dc57600080fd5b8101908080519060200190929190505050614d79565b90506133fe565b600090505b92915050565b600a602052816000526040600020602052806000526040600020600091509150505481565b6007602052816000526040600020602052806000526040600020600091509150505481565b6009602052816000526040600020602052806000526040600020600091509150505481565b6000806000809150600090505b600f60008663ffffffff1663ffffffff168152602001908152602001600020805490508160ff16101561366a578373ffffffffffffffffffffffffffffffffffffffff16600f60008763ffffffff1663ffffffff1681526020019081526020016000208260ff168154811015156134f357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561365d5761365a8261365561362d601260008a63ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484db63f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156135ed57600080fd5b505af1158015613601573d6000803e3d6000fd5b505050506040513d602081101561361757600080fd5b8101908080519060200190929190505050614d79565b600f60008a63ffffffff1663ffffffff16815260200190815260200160002080549050614d97565b614dd8565b91505b8080600101915050613480565b819250505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136d057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a16000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b61379f615bc8565b6137a7615bc8565b60006001601260008763ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff161415156137ea57600080fd5b61381642601260008863ffffffff1663ffffffff16815260200190815260200160002060010154614e02565b601260008763ffffffff1663ffffffff168152602001908152602001600020600001541015151561384657600080fd5b601260008663ffffffff1663ffffffff16815260200190815260200160002060020154341015151561387757600080fd5b60e060405190810160405280670de0b6b3a7640000610140028152602001670de0b6b3a764000060a0028152602001670de0b6b3a76400006050028152602001670de0b6b3a76400006028028152602001670de0b6b3a76400006014028152602001670de0b6b3a7640000600a028152602001670de0b6b3a7640000600502815250925060e060405190810160405280662386f26fc100006064028152602001662386f26fc10000603c028152602001662386f26fc100006014028152602001662386f26fc10000600a028152602001662386f26fc100006006028152602001662386f26fc100006002028152602001662386f26fc10000600102815250915061398085614e4e565b61398b858534614f18565b61399685333461524b565b6139a1853334615304565b6139ab8533615584565b6139b5853361570b565b34601260008763ffffffff1663ffffffff16815260200190815260200160002060040160008282540192505081905550600090505b6007811015613ae4578281600781101515613a0157fe5b6020020151613a54601260008863ffffffff1663ffffffff16815260200190815260200160002060040154601260008963ffffffff1663ffffffff16815260200190815260200160002060050154614dd8565b101515613ad7578181600781101515613a6957fe5b6020020151601260008763ffffffff1663ffffffff16815260200190815260200160002060020154141515613ad2578181600781101515613aa657fe5b6020020151601260008763ffffffff1663ffffffff168152602001908152602001600020600201819055505b613ae4565b80806001019150506139ea565b7fe4ba2d08bcc435be34f800c6e360d90051c266f8d759dba730931946a88b94d8338534604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b60008060011515600e60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415613c0c5760009150613f84565b6002601260008663ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff16141515613c515760009150613f84565b60009050613c68613c628585613473565b82614dd8565b9050613c7d613c778585614343565b82614dd8565b9050613c92613c8c858561328e565b82614dd8565b9050613ca7613ca18585613016565b82614dd8565b9050613d0f600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613d77600760008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613ddf600860008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613e47600a60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613eaf600960008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482614dd8565b9050613f7e81600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ea99e6896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015613f3b57600080fd5b505af1158015613f4f573d6000803e3d6000fd5b505050506040513d6020811015613f6557600080fd5b8101908080519060200190929190505050606403614d79565b90508091505b5092915050565b601060205281600052604060002081815481101515613fa657fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d602052816000526040600020602052806000526040600020600091509150505481565b600e6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600f6020528160005260406000208181548110151561404757fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156140d557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f6a62fa629838eba7baacd6b9730fe014125c8482f6bc25b8f21170181409ce9b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60126020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905088565b606060008060606000925060009150600191505b600660149054906101000a900463ffffffff1663ffffffff168263ffffffff1611151561425457600061423a8387613b8a565b1115614247576001830192505b8180600101925050614207565b8263ffffffff166040519080825280602002602001820160405280156142895781602001602082028038833980820191505090505b50905060009250600191505b600660149054906101000a900463ffffffff1663ffffffff168263ffffffff161115156143135760006142c88387613b8a565b11156143065781818463ffffffff168151811015156142e357fe5b9060200190602002019063ffffffff16908163ffffffff16815250506001830192505b8180600101925050614295565b809350505050919050565b600b602052816000526040600020602052806000526040600020600091509150505481565b6000806000809150600090505b601060008663ffffffff1663ffffffff168152602001908152602001600020805490508160ff161015614599578373ffffffffffffffffffffffffffffffffffffffff16601060008763ffffffff1663ffffffff1681526020019081526020016000208260ff168154811015156143c357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561458c5761452a826145256144fd601260008a63ffffffff1663ffffffff16815260200190815260200160002060040154600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382cac6df6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156144bd57600080fd5b505af11580156144d1573d6000803e3d6000fd5b505050506040513d60208110156144e757600080fd5b8101908080519060200190929190505050614d79565b601060008a63ffffffff1663ffffffff16815260200190815260200160002080549050614d97565b614dd8565b9150601060008663ffffffff1663ffffffff168152602001908152602001600020805490506001820160ff16141561458b5761458882601260008863ffffffff1663ffffffff16815260200190815260200160002060050154614dd8565b91505b5b8080600101915050614350565b819250505092915050565b60025481565b6000806000808563ffffffff161415156148ef576002601260008763ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff161415156146035760009250614c42565b600061460f8686613473565b111561461e5760009250614c42565b600061462a8686614343565b11156146395760009250614c42565b6000614645868661328e565b11156146545760009250614c42565b6000600b60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156146c25760009250614c42565b6000600760008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156147305760009250614c42565b6000600860008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561479e5760009250614c42565b6000600a60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561480c5760009250614c42565b6000600960008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561487a5760009250614c42565b6148e8600d60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b9250614c42565b60009150600190505b600660149054906101000a900463ffffffff1663ffffffff168163ffffffff16111515614c3e576002601260008363ffffffff1663ffffffff16815260200190815260200160002060070160009054906101000a900460ff1660ff1614151561496057614c31565b600061496c8286613473565b111561497757614c31565b60006149838286614343565b111561498e57614c31565b600061499a828661328e565b11156149a557614c31565b6000600b60008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614a0f57614c31565b6000600760008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614a7957614c31565b6000600860008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614ae357614c31565b6000600a60008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614b4d57614c31565b6000600960008363ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614bb757614c31565b614c2e614c28600d60008463ffffffff1663ffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b83614dd8565b91505b80806001019150506148f8565b8192505b505092915050565b6000601060008363ffffffff1663ffffffff168152602001908152602001600020805490509050919050565b600660149054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614ce857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614d50573d6000803e3d6000fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000614d8f614d888484614e1b565b6064614d97565b905092915050565b600080614da660008411615bb9565b8284811515614db157fe5b049050614dce8385811515614dc257fe5b06828502018514615bb9565b8091505092915050565b6000808284019050614df8848210158015614df35750838210155b615bb9565b8091505092915050565b6000614e1083831115615bb9565b818303905092915050565b6000808284029050614e446000851480614e3f5750838583811515614e3c57fe5b04145b615bb9565b8091505092915050565b6000614ea7601260008463ffffffff1663ffffffff16815260200190815260200160002060000154614ea242601260008763ffffffff1663ffffffff16815260200190815260200160002060010154614e02565b614e02565b905060055481101515614ebf57600a81019050614ec6565b601e810190505b80601260008463ffffffff1663ffffffff1681526020019081526020016000206000018190555042601260008463ffffffff1663ffffffff168152602001908152602001600020600101819055505050565b600080600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156150b6576001600c60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550615061600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b905061508f601260008663ffffffff1663ffffffff1681526020019081526020016000206006015482614e02565b601260008663ffffffff1663ffffffff168152602001908152602001600020600601819055505b6151e5600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546151e084600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f9e3526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156151a057600080fd5b505af11580156151b4573d6000803e3d6000fd5b505050506040513d60208110156151ca57600080fd5b8101908080519060200190929190505050614d79565b614dd8565b600b60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b601160008463ffffffff1663ffffffff16815260200190815260200160002060010154811015156152ff5780601160008563ffffffff1663ffffffff1681526020019081526020016000206001018190555081601160008563ffffffff1663ffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b6000615374600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b90506153dc600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483614dd8565b600d60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600c60008663ffffffff1663ffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561557e57615529615523600d60008763ffffffff1663ffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205467016345785d8a0000614d97565b82614e02565b9050615557601260008663ffffffff1663ffffffff1681526020019081526020016000206006015482614dd8565b601260008663ffffffff1663ffffffff168152602001908152602001600020600601819055505b50505050565b60008090505b600f60008463ffffffff1663ffffffff168152602001908152602001600020805490508160ff161015615656578173ffffffffffffffffffffffffffffffffffffffff16600f60008563ffffffff1663ffffffff1681526020019081526020016000208260ff168154811015156155fd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561564957615706565b808060010191505061558a565b600a600f60008563ffffffff1663ffffffff16815260200190815260200160002080549050101561570557600f60008463ffffffff1663ffffffff1681526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b505050565b6000806000915060009050600091505b601060008563ffffffff1663ffffffff168152602001908152602001600020805490508260ff161015615996578273ffffffffffffffffffffffffffffffffffffffff16601060008663ffffffff1663ffffffff1681526020019081526020016000208360ff1681548110151561578e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415615989578190505b6001601060008663ffffffff1663ffffffff16815260200190815260200160002080549050038160ff1610156158ea57601060008563ffffffff1663ffffffff1681526020019081526020016000206001820160ff1681548110151561583b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060008663ffffffff1663ffffffff1681526020019081526020016000208260ff1681548110151561589557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080806001019150506157d9565b82601060008663ffffffff1663ffffffff1681526020019081526020016000206001601060008863ffffffff1663ffffffff168152602001908152602001600020805490500381548110151561593c57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615bb3565b818060010192505061571b565b600a601060008663ffffffff1663ffffffff168152602001908152602001600020805490501015615a4957601060008563ffffffff1663ffffffff1681526020019081526020016000208390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050615bb2565b600091505b60098260ff161015615b3b57601060008563ffffffff1663ffffffff1681526020019081526020016000206001830160ff16815481101515615a8c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060008663ffffffff1663ffffffff1681526020019081526020016000208360ff16815481101515615ae657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508180600101925050615a4e565b82601060008663ffffffff1663ffffffff1681526020019081526020016000206009815481101515615b6957fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50505050565b801515615bc557600080fd5b50565b60e0604051908101604052806007906020820280388339808201915050905050905600a165627a7a7230582098175c6b5c9c0bf3f00da4661d864c1f1b4a371a853207bbf41f9ac6764891df0029

Deployed Bytecode Sourcemap

1838:19892:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5078:5;;;;;;;;;;;5064:19;;:10;:19;;;5056:28;;;;;;;;5136:1;5103:4;:22;5108:16;;;;;;;;;;;5103:22;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:34;;;5095:43;;;;;;;;5169:1;5149:16;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5212:9;;5181:4;:22;5186:16;;;;;;;;;;;5181:22;;;;;;;;;;;;;;;:28;;:40;;;;5266:3;5232:4;:22;5237:16;;;;;;;;;;;5232:22;;;;;;;;;;;;;;;:31;;:37;;;;5315:9;;5280:4;:22;5285:16;;;;;;;;;;;5280:22;;;;;;;;;;;;;;;:32;;:44;;;;5387:1;5373:11;;:15;5335:4;:22;5340:16;;;;;;;;;;;5335:22;;;;;;;;;;;;;;;:35;;:53;;;;5441:16;;5399:4;:22;5404:16;;;;;;;;;;;5399:22;;;;;;;;;;;;;;;:39;;:58;;;;5504:9;5468:4;:22;5473:16;;;;;;;;;;;5468:22;;;;;;;;;;;;;;;:33;;:45;;;;5558:1;5524:4;:22;5529:16;;;;;;;;;;;5524:22;;;;;;;;;;;;;;;:31;;:35;;;;5602:1;5570:4;:22;5575:16;;;;;;;;;;;5570:22;;;;;;;;;;;;;;;:29;;;:33;;;;;;;;;;;;;;;;;;1838:19892;2838:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2838:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16828:4897;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16828:4897:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16353:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16353:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10077:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10077:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4675:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4675:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13828:714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13828:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2048:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2048:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3394:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2458:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2458:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11433:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11433:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2642:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2642:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2362:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2362:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2548:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2548:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10353:456;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10353:456:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4525:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4525:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8594:1473;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14550:1103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14550:1103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3229:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3229:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2945:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2945:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3046:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3046:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3148:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3148:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4808:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4191:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4191:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15661:684;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15661:684:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15661:684:0;;;;;;;;;;;;;;;;;2736:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2736:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10817:608;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10817:608:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2077:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2077:35:0;;;;;;;;;;;;;;;;;;;;;;;11706:2114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11706:2114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10216:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10216:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2299:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2299:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16698:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16698:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;2021:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2021:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2838:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16828:4897::-;17105:16;17136:9;20309:20;21206:14;17039:5;;;;;;;;;;;17025:19;;:10;:19;;;17017:28;;;;;;;;17090:1;17064:4;:15;17069:9;17064:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:27;;;17056:36;;;;;;;;17124:1;17105:20;;17148:1;17136:13;;17169:1;17165:5;;17160:472;17176:10;:17;17172:1;:21;17160:472;;;17253:94;17261:66;17273:4;:15;17278:9;17273:15;;;;;;;;;;;;;;;:32;;;17307:7;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17307:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17307:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17307:19:0;;;;;;;;;;;;;;;;17261:11;:66::i;:::-;17329:10;:17;17253:7;:94::i;:::-;17215:9;:20;17225:9;17215:20;;;;;;;;;;;;;;;:35;17236:10;17247:1;17236:13;;;;;;;;;;;;;;;;;;17215:35;;;;;;;;;;;;;;;:132;;;;17413:5;17366:52;;:17;:28;17384:9;17366:28;;;;;;;;;;;;;;;:43;17395:10;17406:1;17395:13;;;;;;;;;;;;;;;;;;17366:43;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;17362:259;;;17485:4;17439:17;:28;17457:9;17439:28;;;;;;;;;;;;;;;:43;17468:10;17479:1;17468:13;;;;;;;;;;;;;;;;;;17439:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;17519:86;17527:8;17537:67;17545:14;:25;17560:9;17545:25;;;;;;;;;;;;;;;:40;17571:10;17582:1;17571:13;;;;;;;;;;;;;;;;;;17545:40;;;;;;;;;;;;;;;;1952:8;17537:7;:67::i;:::-;17519:7;:86::i;:::-;17508:97;;17362:259;17195:3;;;;;;;17160:472;;;17651:1;17647:5;;17642:472;17658:10;:17;17654:1;:21;17642:472;;;17735:94;17743:66;17755:4;:15;17760:9;17755:15;;;;;;;;;;;;;;;:32;;;17789:7;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17789:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17789:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17789:19:0;;;;;;;;;;;;;;;;17743:11;:66::i;:::-;17811:10;:17;17735:7;:94::i;:::-;17697:9;:20;17707:9;17697:20;;;;;;;;;;;;;;;:35;17718:10;17729:1;17718:13;;;;;;;;;;;;;;;;;;17697:35;;;;;;;;;;;;;;;:132;;;;17895:5;17848:52;;:17;:28;17866:9;17848:28;;;;;;;;;;;;;;;:43;17877:10;17888:1;17877:13;;;;;;;;;;;;;;;;;;17848:43;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;17844:259;;;17967:4;17921:17;:28;17939:9;17921:28;;;;;;;;;;;;;;;:43;17950:10;17961:1;17950:13;;;;;;;;;;;;;;;;;;17921:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;18001:86;18009:8;18019:67;18027:14;:25;18042:9;18027:25;;;;;;;;;;;;;;;:40;18053:10;18064:1;18053:13;;;;;;;;;;;;;;;;;;18027:40;;;;;;;;;;;;;;;;1952:8;18019:7;:67::i;:::-;18001:7;:86::i;:::-;17990:97;;17844:259;17677:3;;;;;;;17642:472;;;18133:1;18129:5;;18124:508;18140:15;:22;18136:1;:26;18124:508;;;18228:104;18236:71;18248:4;:15;18253:9;18248:15;;;;;;;;;;;;;;;:32;;;18282:7;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18282:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18282:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18282:24:0;;;;;;;;;;;;;;;;18236:11;:71::i;:::-;18309:15;:22;18228:7;:104::i;:::-;18184:10;:21;18195:9;18184:21;;;;;;;;;;;;;;;:41;18206:15;18222:1;18206:18;;;;;;;;;;;;;;;;;;18184:41;;;;;;;;;;;;;;;:148;;;;18403:5;18351:57;;:17;:28;18369:9;18351:28;;;;;;;;;;;;;;;:48;18380:15;18396:1;18380:18;;;;;;;;;;;;;;;;;;18351:48;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;18347:274;;;18480:4;18429:17;:28;18447:9;18429:28;;;;;;;;;;;;;;;:48;18458:15;18474:1;18458:18;;;;;;;;;;;;;;;;;;18429:48;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;18514:91;18522:8;18532:72;18540:14;:25;18555:9;18540:25;;;;;;;;;;;;;;;:45;18566:15;18582:1;18566:18;;;;;;;;;;;;;;;;;;18540:45;;;;;;;;;;;;;;;;1952:8;18532:7;:72::i;:::-;18514:7;:91::i;:::-;18503:102;;18347:274;18164:3;;;;;;;18124:508;;;18651:1;18647:5;;18642:480;18658:11;:18;18654:1;:22;18642:480;;;18738:96;18746:67;18758:4;:15;18763:9;18758:15;;;;;;;;;;;;;;;:32;;;18792:7;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18792:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18792:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18792:20:0;;;;;;;;;;;;;;;;18746:11;:67::i;:::-;18815:11;:18;18738:7;:96::i;:::-;18698:10;:21;18709:9;18698:21;;;;;;;;;;;;;;;:37;18720:11;18732:1;18720:14;;;;;;;;;;;;;;;;;;18698:37;;;;;;;;;;;;;;;:136;;;;18901:5;18853:53;;:17;:28;18871:9;18853:28;;;;;;;;;;;;;;;:44;18882:11;18894:1;18882:14;;;;;;;;;;;;;;;;;;18853:44;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;18849:262;;;18974:4;18927:17;:28;18945:9;18927:28;;;;;;;;;;;;;;;:44;18956:11;18968:1;18956:14;;;;;;;;;;;;;;;;;;18927:44;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;19008:87;19016:8;19026:68;19034:14;:25;19049:9;19034:25;;;;;;;;;;;;;;;:41;19060:11;19072:1;19060:14;;;;;;;;;;;;;;;;;;19034:41;;;;;;;;;;;;;;;;1952:8;19026:7;:68::i;:::-;19008:7;:87::i;:::-;18997:98;;18849:262;18678:3;;;;;;;18642:480;;;19141:1;19137:5;;19132:377;19148:12;:23;19161:9;19148:23;;;;;;;;;;;;;;;:30;;;;19144:1;:34;19132:377;;;19264:5;19204:65;;:17;:28;19222:9;19204:28;;;;;;;;;;;;;;;:56;19233:12;:23;19246:9;19233:23;;;;;;;;;;;;;;;19257:1;19233:26;;;;;;;;;;;;;;;;;;;;;;;;;;;19204:56;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;19200:298;;;19349:4;19290:17;:28;19308:9;19290:28;;;;;;;;;;;;;;;:56;19319:12;:23;19332:9;19319:23;;;;;;;;;;;;;;;19343:1;19319:26;;;;;;;;;;;;;;;;;;;;;;;;;;;19290:56;;;;;;;;;;;;;;;;:63;;;;;;;;;;;;;;;;;;19383:99;19391:8;19401:80;19409:14;:25;19424:9;19409:25;;;;;;;;;;;;;;;:53;19435:12;:23;19448:9;19435:23;;;;;;;;;;;;;;;19459:1;19435:26;;;;;;;;;;;;;;;;;;;;;;;;;;;19409:53;;;;;;;;;;;;;;;;1952:8;19401:7;:80::i;:::-;19383:7;:99::i;:::-;19372:110;;19200:298;19180:3;;;;;;;19132:377;;;19528:1;19524:5;;19519:373;19535:11;:22;19547:9;19535:22;;;;;;;;;;;;;;;:29;;;;19531:1;:33;19519:373;;;19649:5;19590:64;;:17;:28;19608:9;19590:28;;;;;;;;;;;;;;;:55;19619:11;:22;19631:9;19619:22;;;;;;;;;;;;;;;19642:1;19619:25;;;;;;;;;;;;;;;;;;;;;;;;;;;19590:55;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;19586:295;;;19733:4;19675:17;:28;19693:9;19675:28;;;;;;;;;;;;;;;:55;19704:11;:22;19716:9;19704:22;;;;;;;;;;;;;;;19727:1;19704:25;;;;;;;;;;;;;;;;;;;;;;;;;;;19675:55;;;;;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;19767:98;19775:8;19785:79;19793:14;:25;19808:9;19793:25;;;;;;;;;;;;;;;:52;19819:11;:22;19831:9;19819:22;;;;;;;;;;;;;;;19842:1;19819:25;;;;;;;;;;;;;;;;;;;;;;;;;;;19793:52;;;;;;;;;;;;;;;;1952:8;19785:7;:79::i;:::-;19767:7;:98::i;:::-;19756:109;;19586:295;19566:3;;;;;;;19519:373;;;19963:5;19906:62;;:17;:28;19924:9;19906:28;;;;;;;;;;;;;;;:53;19935:7;:18;19943:9;19935:18;;;;;;;;;;;;;;;:23;;;;;;;;;;;;19906:53;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;19902:277;;;20041:4;19985:17;:28;20003:9;19985:28;;;;;;;;;;;;;;;:53;20014:7;:18;20022:9;20014:18;;;;;;;;;;;;;;;:23;;;;;;;;;;;;19985:53;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;20071:96;20079:8;20089:77;20097:14;:25;20112:9;20097:25;;;;;;;;;;;;;;;:50;20123:7;:18;20131:9;20123:18;;;;;;;;;;;;;;;:23;;;;;;;;;;;;20097:50;;;;;;;;;;;;;;;;1952:8;20089:7;:77::i;:::-;20071:7;:96::i;:::-;20060:107;;19902:277;20218:43;20226:4;:15;20231:9;20226:15;;;;;;;;;;;;;;;:24;;;20252:8;20218:7;:43::i;:::-;20191:4;:15;20196:9;20191:15;;;;;;;;;;;;;;;:24;;:70;;;;20297:1;20272:4;:15;20277:9;20272:15;;;;;;;;;;;;;;;:22;;;:26;;;;;;;;;;;;;;;;;;20332:1;20309:24;;20376:1;20348:4;:15;20353:9;20348:15;;;;;;;;;;;;;;;:24;;;:29;20344:164;;;20409:87;20417:64;20429:4;:15;20434:9;20429:15;;;;;;;;;;;;;;;:32;;;20463:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20463:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20463:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20463:17:0;;;;;;;;;;;;;;;;20417:11;:64::i;:::-;20483:12;20409:7;:87::i;:::-;20394:102;;20344:164;20543:1;20522:10;:17;:22;20518:159;;;20576:89;20584:66;20596:4;:15;20601:9;20596:15;;;;;;;;;;;;;;;:32;;;20630:7;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20630:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20630:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20630:19:0;;;;;;;;;;;;;;;;20584:11;:66::i;:::-;20652:12;20576:7;:89::i;:::-;20561:104;;20518:159;20712:1;20691:10;:17;:22;20687:159;;;20745:89;20753:66;20765:4;:15;20770:9;20765:15;;;;;;;;;;;;;;;:32;;;20799:7;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20799:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20799:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20799:19:0;;;;;;;;;;;;;;;;20753:11;:66::i;:::-;20821:12;20745:7;:89::i;:::-;20730:104;;20687:159;20886:1;20860:15;:22;:27;20856:169;;;20919:94;20927:71;20939:4;:15;20944:9;20939:15;;;;;;;;;;;;;;;:32;;;20973:7;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20973:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20973:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20973:24:0;;;;;;;;;;;;;;;;20927:11;:71::i;:::-;21000:12;20919:7;:94::i;:::-;20904:109;;20856:169;21061:1;21039:11;:18;:23;21035:161;;;21094:90;21102:67;21114:4;:15;21119:9;21114:15;;;;;;;;;;;;;;;:32;;;21148:7;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21148:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21148:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21148:20:0;;;;;;;;;;;;;;;;21102:11;:67::i;:::-;21171:12;21094:7;:90::i;:::-;21079:105;;21035:161;21223:1;21206:18;;21259:4;:15;21264:9;21259:15;;;;;;;;;;;;;;;:32;;;21239:16;;:52;;21235:400;;;21317:95;21329:55;21337:4;:15;21342:9;21337:15;;;;;;;;;;;;;;;:32;;;21371:12;21329:7;:55::i;:::-;21386:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21386:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21386:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21386:25:0;;;;;;;;;;;;;;;;21317:11;:95::i;:::-;21308:104;;21436:62;21444:45;21464:9;21483:4;21444:19;:45::i;:::-;21491:6;21436:7;:62::i;:::-;21427:71;;21532:12;21513:16;:31;;;;21235:400;;;21597:4;:15;21602:9;21597:15;;;;;;;;;;;;;;;:26;;;21577:16;;:46;;;;;;;;;;;21235:400;21650:32;21664:9;21675:6;21650:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;21693:7;;;;;;;;;;;:16;;:24;21710:6;21693:24;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21693:24:0;16828:4897;;;;;;;;;:::o;16353:337::-;16417:18;16438:42;16458:9;16469:10;16438:19;:42::i;:::-;16417:63;;16512:1;16499:10;:14;16491:23;;;;;;;;16567:4;16525:16;:27;16542:9;16525:27;;;;;;;;;;;;;;;:39;16553:10;16525:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16582:10;:19;;:31;16602:10;16582:31;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16582:31:0;16629:53;16648:10;16660:9;16671:10;16629:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16353:337;;:::o;10077:131::-;10144:7;10170:12;:23;10183:9;10170:23;;;;;;;;;;;;;;;:30;;;;10163:37;;10077:131;;;:::o;4675:125::-;4742:5;;;;;;;;;;;4728:19;;:10;:19;;;4720:28;;;;;;;;4786:5;4759:7;;:33;;;;;;;;;;;;;;;;;;4675:125;:::o;13828:714::-;13913:7;13932:16;13963:15;13998:8;14350:18;13951:1;13932:20;;13981:1;13963:19;;14009:1;13998:12;;13993:265;14017:9;14012:14;;:1;:14;;;;13993:265;;;14070:1;14052:4;:7;14057:1;14052:7;;;;;;;;;;;;;;;:14;;;;;;;;;;;;:19;;;;14048:68;;;14092:8;;14048:68;14141:35;14149:4;:7;14154:1;14149:7;;;;;;;;;;;;;;;:16;;;14167:8;14141:7;:35::i;:::-;14130:46;;14201:45;14209:27;14228:1;14231:4;14209:18;:27::i;:::-;14238:7;14201;:45::i;:::-;14191:55;;13993:265;14028:3;;;;;;;13993:265;;;14283:1;14272:7;:12;:29;;;;14300:1;14288:8;:13;14272:29;14268:70;;;14325:1;14318:8;;;;14268:70;14371:64;14383:4;:15;14388:9;14383:15;;;;;;;;;;;;;;;:32;;;14417:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14417:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14417:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14417:17:0;;;;;;;;;;;;;;;;14371:11;:64::i;:::-;14350:85;;14459:47;14467:28;14475:10;14487:7;14467;:28::i;:::-;14497:8;14459:7;:47::i;:::-;14446:60;;14524:10;14517:17;;13828:714;;;;;;;;;:::o;2048:22::-;;;;;;;;;;;;;:::o;3394:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2458:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11433:265::-;11514:7;11564:4;11537:31;;:7;:18;11545:9;11537:18;;;;;;;;;;;;;;;:23;;;;;;;;;;;;:31;;;11533:139;;;11592:68;11604:4;:15;11609:9;11604:15;;;;;;;;;;;;;;;:32;;;11638:7;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11638:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11638:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11638:21:0;;;;;;;;;;;;;;;;11592:11;:68::i;:::-;11585:75;;;;11533:139;11689:1;11682:8;;11433:265;;;;;:::o;2642:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2362:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2548:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10353:456::-;10437:7;10456:14;10490:7;10473:1;10456:18;;10500:1;10490:11;;10485:293;10507:12;:23;10520:9;10507:23;;;;;;;;;;;;;;;:30;;;;10503:1;:34;;;10485:293;;;10593:4;10563:34;;:12;:23;10576:9;10563:23;;;;;;;;;;;;;;;10587:1;10563:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;10559:208;;;10627:124;10635:6;10643:107;10651:66;10663:4;:15;10668:9;10663:15;;;;;;;;;;;;;;;:32;;;10697:7;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10697:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10697:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10697:19:0;;;;;;;;;;;;;;;;10651:11;:66::i;:::-;10719:12;:23;10732:9;10719:23;;;;;;;;;;;;;;;:30;;;;10643:7;:107::i;:::-;10627:7;:124::i;:::-;10618:133;;10559:208;10539:3;;;;;;;10485:293;;;10795:6;10788:13;;10353:456;;;;;;:::o;4525:140::-;4593:5;;;;;;;;;;;4579:19;;:10;:19;;;4571:28;;;;;;;;4618:8;4610:5;;:16;;;;;;;;;;;;;;;;;;4642:15;4651:5;;;;;;;;;;;4642:15;;;;;;;;;;;;;;;;;;;;;;4525:140;:::o;8594:1473::-;8867:29;;:::i;:::-;9037:26;;:::i;:::-;9653:9;8711:1;8685:4;:15;8690:9;8685:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:27;;;8677:36;;;;;;;;8757:38;8765:3;8770:4;:15;8775:9;8770:15;;;;;;;;;;;;;;;:24;;;8757:7;:38::i;:::-;8732:4;:15;8737:9;8732:15;;;;;;;;;;;;;;;:21;;;:63;;8724:72;;;;;;;;8828:4;:15;8833:9;8828:15;;;;;;;;;;;;;;;:25;;;8815:9;:38;;8807:47;;;;;;;;8867:159;;;;;;;;;1904:8;8900:3;:17;8867:159;;;;1904:8;8919:3;:17;8867:159;;;;1904:8;8938:2;:16;8867:159;;;;1904:8;8956:2;:16;8867:159;;;;1904:8;8974:2;:16;8867:159;;;;1904:8;8992:2;:16;8867:159;;;;1904:8;9010:1;:15;8867:159;;;;;9037:216;;;;;;;;;2004:8;9067:3;:26;9037:216;;;;2004:8;9095:2;:25;9037:216;;;;2004:8;9122:2;:25;9037:216;;;;2004:8;9149:2;:25;9037:216;;;;2004:8;9176:1;:24;9037:216;;;;2004:8;9202:1;:24;9037:216;;;;2004:8;9228:1;:24;9037:216;;;;;9266:20;9276:9;9266;:20::i;:::-;9297:58;9321:9;9332:11;9345:9;9297:23;:58::i;:::-;9366:49;9382:9;9393:10;9405:9;9366:15;:49::i;:::-;9426:50;9443:9;9454:10;9466:9;9426:16;:50::i;:::-;9487:41;9506:9;9517:10;9487:18;:41::i;:::-;9539:40;9557:9;9568:10;9539:17;:40::i;:::-;9628:9;9592:4;:15;9597:9;9592:15;;;;;;;;;;;;;;;:32;;;:45;;;;;;;;;;;9665:1;9653:13;;9648:350;9672:17;9668:1;:21;9648:350;;;9788:10;9799:1;9788:13;;;;;;;;;;;;;9715:69;9723:4;:15;9728:9;9723:15;;;;;;;;;;;;;;;:32;;;9757:4;:15;9762:9;9757:15;;;;;;;;;;;;;;;:26;;;9715:7;:69::i;:::-;:86;;9711:276;;;9855:7;9863:1;9855:10;;;;;;;;;;;;;9826:4;:15;9831:9;9826:15;;;;;;;;;;;;;;;:25;;;:39;;9822:126;;;9918:7;9926:1;9918:10;;;;;;;;;;;;;9890:4;:15;9895:9;9890:15;;;;;;;;;;;;;;;:25;;:38;;;;9822:126;9966:5;;9711:276;9691:3;;;;;;;9648:350;;;10015:44;10024:10;10036:11;10049:9;10015:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8594:1473;;;;;:::o;14550:1103::-;14632:7;14821:18;14692:4;14655:41;;:16;:27;14672:9;14655:27;;;;;;;;;;;;;;;:33;14683:4;14655:33;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;14651:82;;;14720:1;14713:8;;;;14651:82;14773:1;14747:4;:15;14752:9;14747:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:27;;;;14743:68;;;14798:1;14791:8;;;;14743:68;14842:1;14821:22;;14867:59;14875:38;14897:9;14908:4;14875:21;:38::i;:::-;14915:10;14867:7;:59::i;:::-;14854:72;;14950:58;14958:37;14979:9;14990:4;14958:20;:37::i;:::-;14997:10;14950:7;:58::i;:::-;14937:71;;15032:56;15040:35;15059:9;15070:4;15040:18;:35::i;:::-;15077:10;15032:7;:56::i;:::-;15019:69;;15112:60;15120:39;15143:9;15154:4;15120:22;:39::i;:::-;15161:10;15112:7;:60::i;:::-;15099:73;;15196:55;15204:17;:28;15222:9;15204:28;;;;;;;;;;;;;;;:34;15233:4;15204:34;;;;;;;;;;;;;;;;15240:10;15196:7;:55::i;:::-;15183:68;;15275:47;15283:9;:20;15293:9;15283:20;;;;;;;;;;;;;;;:26;15304:4;15283:26;;;;;;;;;;;;;;;;15311:10;15275:7;:47::i;:::-;15262:60;;15346:47;15354:9;:20;15364:9;15354:20;;;;;;;;;;;;;;;:26;15375:4;15354:26;;;;;;;;;;;;;;;;15382:10;15346:7;:47::i;:::-;15333:60;;15417:48;15425:10;:21;15436:9;15425:21;;;;;;;;;;;;;;;:27;15447:4;15425:27;;;;;;;;;;;;;;;;15454:10;15417:7;:48::i;:::-;15404:61;;15489:48;15497:10;:21;15508:9;15497:21;;;;;;;;;;;;;;;:27;15519:4;15497:27;;;;;;;;;;;;;;;;15526:10;15489:7;:48::i;:::-;15476:61;;15561:56;15573:10;15591:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15591:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15591:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15591:25:0;;;;;;;;;;;;;;;;15585:3;:31;15561:11;:56::i;:::-;15548:69;;15635:10;15628:17;;14550:1103;;;;;;:::o;3229:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2945:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3046:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3148:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4808:154::-;4880:7;;;;;;;;;;;4866:21;;:10;:21;;;4858:30;;;;;;;;4909:10;4899:7;;:20;;;;;;;;;;;;;;;;;;4935:19;4946:7;;;;;;;;;;;4935:19;;;;;;;;;;;;;;;;;;;;;;4808:154;:::o;4191:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15661:684::-;15725:8;15745:22;15782:8;15974:36;15770:1;15745:26;;15793:1;15782:12;;15814:1;15810:5;;15805:159;15822:16;;;;;;;;;;;15817:21;;:1;:21;;;;15805:159;;;15895:1;15864:28;15884:1;15887:4;15864:19;:28::i;:::-;:32;15860:93;;;15936:1;15917:20;;;;15860:93;15840:3;;;;;;;15805:159;;;16026:15;16013:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;16013:29:0;;;;15974:68;;16071:1;16053:19;;16092:1;16088:5;;16083:218;16100:16;;;;;;;;;;;16095:21;;:1;:21;;;;16083:218;;;16173:1;16142:28;16162:1;16165:4;16142:19;:28::i;:::-;:32;16138:152;;;16234:1;16195:19;16215:15;16195:36;;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;16273:1;16254:20;;;;16138:152;16118:3;;;;;;;16083:218;;;16318:19;16311:26;;15661:684;;;;;;:::o;2736:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10817:608::-;10900:7;10919:14;10953:7;10936:1;10919:18;;10963:1;10953:11;;10948:446;10970:11;:22;10982:9;10970:22;;;;;;;;;;;;;;;:29;;;;10966:1;:33;;;10948:446;;;11054:4;11025:33;;:11;:22;11037:9;11025:22;;;;;;;;;;;;;;;11048:1;11025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;11021:362;;;11088:122;11096:6;11104:105;11112:65;11124:4;:15;11129:9;11124:15;;;;;;;;;;;;;;;:32;;;11158:7;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11158:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11158:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11158:18:0;;;;;;;;;;;;;;;;11112:11;:65::i;:::-;11179:11;:22;11191:9;11179:22;;;;;;;;;;;;;;;:29;;;;11104:7;:105::i;:::-;11088:7;:122::i;:::-;11079:131;;11242:11;:22;11254:9;11242:22;;;;;;;;;;;;;;;:29;;;;11237:1;11233;:5;:38;;;11229:139;;;11305:43;11313:6;11321:4;:15;11326:9;11321:15;;;;;;;;;;;;;;;:26;;;11305:7;:43::i;:::-;11296:52;;11229:139;11021:362;11001:3;;;;;;;10948:446;;;11411:6;11404:13;;10817:608;;;;;;:::o;2077:35::-;;;;:::o;11706:2114::-;11787:7;12804:14;12838:8;11823:1;11810:9;:14;;;;11806:988;;;11871:1;11845:4;:15;11850:9;11845:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:27;;;;11841:76;;;11900:1;11893:8;;;;11841:76;11976:1;11935:38;11957:9;11968:4;11935:21;:38::i;:::-;:42;11931:91;;;12005:1;11998:8;;;;11931:91;12080:1;12040:37;12061:9;12072:4;12040:20;:37::i;:::-;:41;12036:90;;;12109:1;12102:8;;;;12036:90;12182:1;12144:35;12163:9;12174:4;12144:18;:35::i;:::-;:39;12140:88;;;12211:1;12204:8;;;;12140:88;12283:1;12246:17;:28;12264:9;12246:28;;;;;;;;;;;;;;;:34;12275:4;12246:34;;;;;;;;;;;;;;;;:38;12242:87;;;12312:1;12305:8;;;;12242:87;12376:1;12347:9;:20;12357:9;12347:20;;;;;;;;;;;;;;;:26;12368:4;12347:26;;;;;;;;;;;;;;;;:30;12343:79;;;12405:1;12398:8;;;;12343:79;12469:1;12440:9;:20;12450:9;12440:20;;;;;;;;;;;;;;;:26;12461:4;12440:26;;;;;;;;;;;;;;;;:30;12436:79;;;12498:1;12491:8;;;;12436:79;12563:1;12533:10;:21;12544:9;12533:21;;;;;;;;;;;;;;;:27;12555:4;12533:27;;;;;;;;;;;;;;;;:31;12529:80;;;12592:1;12585:8;;;;12529:80;12657:1;12627:10;:21;12638:9;12627:21;;;;;;;;;;;;;;;:27;12649:4;12627:27;;;;;;;;;;;;;;;;:31;12623:80;;;12686:1;12679:8;;;;12623:80;12724:58;12732:14;:25;12747:9;12732:25;;;;;;;;;;;;;;;:31;12758:4;12732:31;;;;;;;;;;;;;;;;1952:8;12724:7;:58::i;:::-;12717:65;;;;11806:988;12821:1;12804:18;;12849:1;12838:12;;12833:956;12857:16;;;;;;;;;;;12852:21;;:1;:21;;;;12833:956;;;12917:1;12899:4;:7;12904:1;12899:7;;;;;;;;;;;;;;;:14;;;;;;;;;;;;:19;;;;12895:68;;;12939:8;;12895:68;13014:1;12981:30;13003:1;13006:4;12981:21;:30::i;:::-;:34;12977:83;;;13036:8;;12977:83;13110:1;13078:29;13099:1;13102:4;13078:20;:29::i;:::-;:33;13074:82;;;13132:8;;13074:82;13204:1;13174:27;13193:1;13196:4;13174:18;:27::i;:::-;:31;13170:80;;;13226:8;;13170:80;13297:1;13268:17;:20;13286:1;13268:20;;;;;;;;;;;;;;;:26;13289:4;13268:26;;;;;;;;;;;;;;;;:30;13264:79;;;13319:8;;13264:79;13382:1;13361:9;:12;13371:1;13361:12;;;;;;;;;;;;;;;:18;13374:4;13361:18;;;;;;;;;;;;;;;;:22;13357:71;;;13404:8;;13357:71;13467:1;13446:9;:12;13456:1;13446:12;;;;;;;;;;;;;;;:18;13459:4;13446:18;;;;;;;;;;;;;;;;:22;13442:71;;;13489:8;;13442:71;13553:1;13531:10;:13;13542:1;13531:13;;;;;;;;;;;;;;;:19;13545:4;13531:19;;;;;;;;;;;;;;;;:23;13527:72;;;13575:8;;13527:72;13639:1;13617:10;:13;13628:1;13617:13;;;;;;;;;;;;;;;:19;13631:4;13617:19;;;;;;;;;;;;;;;;:23;13613:72;;;13661:8;;13613:72;13710:67;13718:50;13726:14;:17;13741:1;13726:17;;;;;;;;;;;;;;;:23;13744:4;13726:23;;;;;;;;;;;;;;;;1952:8;13718:7;:50::i;:::-;13770:6;13710:7;:67::i;:::-;13701:76;;12833:956;12875:3;;;;;;;12833:956;;;13806:6;13799:13;;11706:2114;;;;;;;:::o;10216:129::-;10282:7;10308:11;:22;10320:9;10308:22;;;;;;;;;;;;;;;:29;;;;10301:36;;10216:129;;;:::o;2299:30::-;;;;;;;;;;;;;:::o;16698:122::-;16770:7;;;;;;;;;;;16756:21;;:10;:21;;;16748:30;;;;;;;;16789:7;;;;;;;;;;;:16;;:23;16806:5;16789:23;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16789:23:0;16698:122;:::o;2021:20::-;;;;;;;;;;;;;:::o;845:128::-;911:7;938:27;946:13;954:1;957;946:7;:13::i;:::-;961:3;938:7;:27::i;:::-;931:34;;845:128;;;;:::o;346:187::-;408:7;452:9;428:13;439:1;435;:5;428:6;:13::i;:::-;468:1;464;:5;;;;;;;;452:17;;480:26;504:1;500;:5;;;;;;;;496:1;492;:5;:13;487:1;:18;480:6;:26::i;:::-;524:1;517:8;;346:187;;;;;:::o;676:161::-;738:7;758:9;774:1;770;:5;758:17;;786:24;798:1;793;:6;;:16;;;;;808:1;803;:6;;793:16;786:6;:24::i;:::-;828:1;821:8;;676:161;;;;;:::o;541:127::-;603:7;623:14;635:1;630;:6;;623;:14::i;:::-;659:1;655;:5;648:12;;541:127;;;;:::o;173:165::-;235:7;255:9;271:1;267;:5;255:17;;283:28;295:1;290;:6;:20;;;;309:1;304;300;:5;;;;;;;;:10;290:20;283:6;:28::i;:::-;329:1;322:8;;173:165;;;;;:::o;5621:373::-;5678:18;5699:70;5707:4;:15;5712:9;5707:15;;;;;;;;;;;;;;;:21;;;5730:38;5738:3;5743:4;:15;5748:9;5743:15;;;;;;;;;;;;;;;:24;;;5730:7;:38::i;:::-;5699:7;:70::i;:::-;5678:91;;5798:9;;5784:10;:23;;5780:121;;;5838:2;5824:16;;;;5780:121;;;5887:2;5873:16;;;;5780:121;5935:10;5911:4;:15;5916:9;5911:15;;;;;;;;;;;;;;;:21;;:34;;;;5983:3;5956:4;:15;5961:9;5956:15;;;;;;;;;;;;;;;:24;;:30;;;;5621:373;;:::o;6002:569::-;6240:12;6159:1;6114:17;:28;6132:9;6114:28;;;;;;;;;;;;;;;:41;6143:11;6114:41;;;;;;;;;;;;;;;;:46;6110:303;;;6221:4;6177:17;:28;6195:9;6177:28;;;;;;;;;;;;;;;:41;6206:11;6177:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;6255:65;6263:14;:25;6278:9;6263:25;;;;;;;;;;;;;;;:38;6289:11;6263:38;;;;;;;;;;;;;;;;1952:8;6255:7;:65::i;:::-;6240:80;;6362:39;6370:4;:15;6375:9;6370:15;;;;;;;;;;;;;;;:24;;;6396:4;6362:7;:39::i;:::-;6335:4;:15;6340:9;6335:15;;;;;;;;;;;;;;;:24;;:66;;;;6110:303;6469:94;6477:17;:28;6495:9;6477:28;;;;;;;;;;;;;;;:41;6506:11;6477:41;;;;;;;;;;;;;;;;6520:42;6532:6;6540:7;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6540:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6540:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6540:21:0;;;;;;;;;;;;;;;;6520:11;:42::i;:::-;6469:7;:94::i;:::-;6425:17;:28;6443:9;6425:28;;;;;;;;;;;;;;;:41;6454:11;6425:41;;;;;;;;;;;;;;;:138;;;;6002:569;;;;:::o;6581:247::-;6688:7;:18;6696:9;6688:18;;;;;;;;;;;;;;;:25;;;6678:6;:35;;6674:147;;;6758:6;6730:7;:18;6738:9;6730:18;;;;;;;;;;;;;;;:25;;:34;;;;6805:4;6779:7;:18;6787:9;6779:18;;;;;;;;;;;;;;;:23;;;:30;;;;;;;;;;;;;;;;;;6674:147;6581:247;;;:::o;8069:517::-;8163:12;8178:58;8186:14;:25;8201:9;8186:25;;;;;;;;;;;;;;;:31;8212:4;8186:31;;;;;;;;;;;;;;;;1952:8;8178:7;:58::i;:::-;8163:73;;8281:48;8289:14;:25;8304:9;8289:25;;;;;;;;;;;;;;;:31;8315:4;8289:31;;;;;;;;;;;;;;;;8322:6;8281:7;:48::i;:::-;8247:14;:25;8262:9;8247:25;;;;;;;;;;;;;;;:31;8273:4;8247:31;;;;;;;;;;;;;;;:82;;;;8382:5;8344:43;;:17;:28;8362:9;8344:28;;;;;;;;;;;;;;;:34;8373:4;8344:34;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;8340:237;;;8411:73;8419:58;8427:14;:25;8442:9;8427:25;;;;;;;;;;;;;;;:31;8453:4;8427:31;;;;;;;;;;;;;;;;1952:8;8419:7;:58::i;:::-;8479:4;8411:7;:73::i;:::-;8404:80;;8526:39;8534:4;:15;8539:9;8534:15;;;;;;;;;;;;;;;:24;;;8560:4;8526:7;:39::i;:::-;8499:4;:15;8504:9;8499:15;;;;;;;;;;;;;;;:24;;:66;;;;8340:237;8069:517;;;;:::o;6836:365::-;6921:7;6931:1;6921:11;;6916:166;6938:12;:23;6951:9;6938:23;;;;;;;;;;;;;;;:30;;;;6934:1;:34;;;6916:166;;;7024:4;6994:34;;:12;:23;7007:9;6994:23;;;;;;;;;;;;;;;7018:1;6994:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;6990:81;;;7049:7;;6990:81;6970:3;;;;;;;6916:166;;;7129:2;7096:12;:23;7109:9;7096:23;;;;;;;;;;;;;;;:30;;;;:35;7092:102;;;7148:12;:23;7161:9;7148:23;;;;;;;;;;;;;;;7177:4;7148:34;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7148:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7092:102;6836:365;;;;:::o;7209:852::-;7288:7;7310;7298:1;7288:11;;7320:1;7310:11;;7341:1;7337:5;;7332:415;7348:11;:22;7360:9;7348:22;;;;;;;;;;;;;;;:29;;;;7344:1;:33;;;7332:415;;;7432:4;7403:33;;:11;:22;7415:9;7403:22;;;;;;;;;;;;;;;7426:1;7403:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;7399:337;;;7466:1;7462:5;;7457:156;7505:1;7473:11;:22;7485:9;7473:22;;;;;;;;;;;;;;;:29;;;;:33;7469:1;:37;;;7457:156;;;7564:11;:22;7576:9;7564:22;;;;;;;;;;;;;;;7591:1;7587;:5;7564:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7536:11;:22;7548:9;7536:22;;;;;;;;;;;;;;;7559:1;7536:25;;;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;7508:3;;;;;;;7457:156;;;7691:4;7631:11;:22;7643:9;7631:22;;;;;;;;;;;;;;;7686:1;7654:11;:22;7666:9;7654:22;;;;;;;;;;;;;;;:29;;;;:33;7631:57;;;;;;;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;7714:7;;7399:337;7379:3;;;;;;;7332:415;;;7795:2;7763:11;:22;7775:9;7763:22;;;;;;;;;;;;;;;:29;;;;:34;7759:295;;;7814:11;:22;7826:9;7814:22;;;;;;;;;;;;;;;7842:4;7814:33;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7814:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7759:295;;;7889:1;7885:5;;7880:116;7896:1;7892;:5;;;7880:116;;;7951:11;:22;7963:9;7951:22;;;;;;;;;;;;;;;7978:1;7974;:5;7951:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7923:11;:22;7935:9;7923:22;;;;;;;;;;;;;;;7946:1;7923:25;;;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;7899:3;;;;;;;7880:116;;;8038:4;8010:11;:22;8022:9;8010:22;;;;;;;;;;;;;;;8033:1;8010:25;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7759:295;7209:852;;;;;:::o;981:112::-;1043:9;1042:10;1038:48;;;1069:5;;;1038:48;981:112;:::o;1838:19892::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;1838:19892:0;;;;:::o

Swarm Source

bzzr://98175c6b5c9c0bf3f00da4661d864c1f1b4a371a853207bbf41f9ac6764891df

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.