ETH Price: $3,912.27 (+0.50%)
Gas: 11.3 Gwei

Contract

0xFC04c4B64422Af861d771d9bc6B014e38aD1E511
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Draw Redress119886262021-03-07 2:18:561379 days ago1615083536IN
0xFC04c4B6...38aD1E511
0 ETH0.01874334106
Draw Redress119840082021-03-06 9:18:531380 days ago1615022333IN
0xFC04c4B6...38aD1E511
0 ETH0.0089309266
Draw Redress119825692021-03-06 4:05:141380 days ago1615003514IN
0xFC04c4B6...38aD1E511
0 ETH0.0084242562.00000112
Draw Redress119825232021-03-06 3:56:081380 days ago1615002968IN
0xFC04c4B6...38aD1E511
0 ETH0.010326576.00000145
Draw Redress119824622021-03-06 3:41:481380 days ago1615002108IN
0xFC04c4B6...38aD1E511
0 ETH0.0136154477
Draw Redress119560652021-03-02 2:19:341384 days ago1614651574IN
0xFC04c4B6...38aD1E511
0 ETH0.01909699108
Draw Redress118788492021-02-18 5:08:041396 days ago1613624884IN
0xFC04c4B6...38aD1E511
0 ETH0.0213957121
Draw Redress118702772021-02-16 21:27:411397 days ago1613510861IN
0xFC04c4B6...38aD1E511
0 ETH0.0152068686.00000112
Draw Redress118232302021-02-09 16:00:431405 days ago1612886443IN
0xFC04c4B6...38aD1E511
0 ETH0.0353275260
Draw Redress118206392021-02-09 6:35:361405 days ago1612852536IN
0xFC04c4B6...38aD1E511
0 ETH0.02422488137
Draw Redress117677402021-02-01 2:44:491413 days ago1612147489IN
0xFC04c4B6...38aD1E511
0 ETH0.02528583143
Draw Redress117591732021-01-30 19:35:301414 days ago1612035330IN
0xFC04c4B6...38aD1E511
0 ETH0.01834312135
Draw Redress117554952021-01-30 5:45:311415 days ago1611985531IN
0xFC04c4B6...38aD1E511
0 ETH0.0091948452
Draw Redress117532502021-01-29 21:39:301415 days ago1611956370IN
0xFC04c4B6...38aD1E511
0 ETH0.02422488137
Draw Redress117373352021-01-27 10:39:071418 days ago1611743947IN
0xFC04c4B6...38aD1E511
0 ETH0.00869664
Draw Redress117310612021-01-26 11:34:311419 days ago1611660871IN
0xFC04c4B6...38aD1E511
0 ETH0.0057067542.00000112
Draw Redress117308402021-01-26 10:49:171419 days ago1611658157IN
0xFC04c4B6...38aD1E511
0 ETH0.0057296344
Draw Redress117299212021-01-26 7:13:041419 days ago1611645184IN
0xFC04c4B6...38aD1E511
0 ETH0.0061143745.00000156
Draw Redress117257632021-01-25 15:41:321420 days ago1611589292IN
0xFC04c4B6...38aD1E511
0 ETH0.01548975114.00000112
Draw Redress117164102021-01-24 5:18:091421 days ago1611465489IN
0xFC04c4B6...38aD1E511
0 ETH0.0088318765
Draw Redress117157522021-01-24 2:46:331421 days ago1611456393IN
0xFC04c4B6...38aD1E511
0 ETH0.00543540.00000112
Draw Redress117142972021-01-23 21:28:551421 days ago1611437335IN
0xFC04c4B6...38aD1E511
0 ETH0.00652248.00000112
Draw Redress117142182021-01-23 21:13:431421 days ago1611436423IN
0xFC04c4B6...38aD1E511
0 ETH0.0067937550.00000134
Draw Redress117141182021-01-23 20:52:071421 days ago1611435127IN
0xFC04c4B6...38aD1E511
0 ETH0.0067937550.00000112
Draw Redress117140822021-01-23 20:44:041421 days ago1611434644IN
0xFC04c4B6...38aD1E511
0 ETH0.0061143745.00000134
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
113795942020-12-03 12:22:591473 days ago1606998179
0xFC04c4B6...38aD1E511
62.98303776 ETH
113786422020-12-03 8:47:511473 days ago1606985271
0xFC04c4B6...38aD1E511
0.05 ETH
113786422020-12-03 8:47:511473 days ago1606985271
0xFC04c4B6...38aD1E511
0.05 ETH
113784832020-12-03 8:08:451473 days ago1606982925
0xFC04c4B6...38aD1E511
0.934035 ETH
113779622020-12-03 6:17:251473 days ago1606976245
0xFC04c4B6...38aD1E511
0.05 ETH
113779622020-12-03 6:17:251473 days ago1606976245
0xFC04c4B6...38aD1E511
0.05 ETH
113775202020-12-03 4:45:091473 days ago1606970709
0xFC04c4B6...38aD1E511
0.05 ETH
113775202020-12-03 4:45:091473 days ago1606970709
0xFC04c4B6...38aD1E511
0.05 ETH
113774722020-12-03 4:33:151473 days ago1606969995
0xFC04c4B6...38aD1E511
0.05 ETH
113774722020-12-03 4:33:151473 days ago1606969995
0xFC04c4B6...38aD1E511
0.05 ETH
113762732020-12-03 0:10:131473 days ago1606954213
0xFC04c4B6...38aD1E511
0.05 ETH
113762732020-12-03 0:10:131473 days ago1606954213
0xFC04c4B6...38aD1E511
0.05 ETH
113755152020-12-02 21:20:541473 days ago1606944054
0xFC04c4B6...38aD1E511
0.1152 ETH
113754542020-12-02 21:09:281473 days ago1606943368
0xFC04c4B6...38aD1E511
0.096 ETH
113735952020-12-02 14:24:111474 days ago1606919051
0xFC04c4B6...38aD1E511
0.1 ETH
113735952020-12-02 14:24:111474 days ago1606919051
0xFC04c4B6...38aD1E511
0.1 ETH
113733792020-12-02 13:31:451474 days ago1606915905
0xFC04c4B6...38aD1E511
0.20124 ETH
113733662020-12-02 13:27:531474 days ago1606915673
0xFC04c4B6...38aD1E511
0.45 ETH
113733662020-12-02 13:27:531474 days ago1606915673
0xFC04c4B6...38aD1E511
0.45 ETH
113733522020-12-02 13:24:281474 days ago1606915468
0xFC04c4B6...38aD1E511
0.2592 ETH
113730132020-12-02 12:16:521474 days ago1606911412
0xFC04c4B6...38aD1E511
0.3354 ETH
113729842020-12-02 12:10:401474 days ago1606911040
0xFC04c4B6...38aD1E511
0.53064 ETH
113729412020-12-02 12:02:011474 days ago1606910521
0xFC04c4B6...38aD1E511
0.62049 ETH
113729362020-12-02 12:00:431474 days ago1606910443
0xFC04c4B6...38aD1E511
0.225 ETH
113729152020-12-02 11:56:441474 days ago1606910204
0xFC04c4B6...38aD1E511
0.53016 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Round

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
Yes with 2000 runs

Other Settings:
byzantium EvmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity >=0.5.0 <0.6.0;

contract InternalModule {

    address[] _authAddress;

    address payable public _defaultReciver = address(0x2E5600376D4F07F13Ea69Caf416FB2F7B6659897);

    address payable[] public _contractOwners = [
        address(0xc99D13544297d5baD9e0b0Ca0E94A4E614312F33)
    ];

    constructor() public {
        _contractOwners.push(msg.sender);
    }

    modifier OwnerOnly() {

        bool exist = false;
        for ( uint i = 0; i < _contractOwners.length; i++ ) {
            if ( _contractOwners[i] == msg.sender ) {
                exist = true;
                break;
            }
        }

        require(exist); _;
    }

    modifier DAODefense() {
        uint256 size;
        address payable safeAddr = msg.sender;
        assembly {size := extcodesize(safeAddr)}
        require( size == 0, "DAO_Warning" );
        _;
    }

    modifier APIMethod() {

        bool exist = false;

        for (uint i = 0; i < _authAddress.length; i++) {
            if ( _authAddress[i] == msg.sender ) {
                exist = true;
                break;
            }
        }

        require(exist); _;
    }

    function AuthAddresses() external view returns (address[] memory authAddr) {
        return _authAddress;
    }

    function AddAuthAddress(address _addr) external OwnerOnly {
        _authAddress.push(_addr);
    }

    function DelAuthAddress(address _addr) external OwnerOnly {

        for (uint i = 0; i < _authAddress.length; i++) {
            if (_authAddress[i] == _addr) {
                for (uint j = 0; j < _authAddress.length - 1; j++) {
                    _authAddress[j] = _authAddress[j+1];
                }
                delete _authAddress[_authAddress.length - 1];
                _authAddress.length--;
                return ;
            }
        }

    }





}



pragma solidity >=0.5.1 <0.7.0;

contract KState {

    address private _KDeveloper;
    address internal _KIMPLAddress;

    address[] _KAuthAddress;

    address payable public _KDefaultReciver = address(0x2E5600376D4F07F13Ea69Caf416FB2F7B6659897);

    address payable[] public _KContractOwners = [
        address(0xc99D13544297d5baD9e0b0Ca0E94A4E614312F33)
    ];

    bool public _KContractBroken;
    mapping (address => bool) _KWithdrawabledAddress;

    constructor() public {
        _KDeveloper = msg.sender;
        _KContractOwners.push(msg.sender);
    }

    modifier KWhenBroken() {
        require(_KContractBroken); _;
    }

    modifier KWhenNotBroken() {
        require(!_KContractBroken); _;
    }

    modifier KOwnerOnly() {

        bool exist = false;

        for ( uint i = 0; i < _KContractOwners.length; i++ ) {
            if ( _KContractOwners[i] == msg.sender ) {
                exist = true;
                break;
            }
        }

        require(exist); _;
    }

    function KSetContractBroken(bool broken) external KOwnerOnly {
        _KContractBroken = broken;
    }

    modifier KDAODefense() {
        uint256 size;
        address payable safeAddr = msg.sender;
        assembly {size := extcodesize(safeAddr)}
        require( size == 0, "DAO_Warning" );
        _;
    }

    modifier KAPIMethod() {

        bool exist = false;

        for (uint i = 0; i < _KAuthAddress.length; i++) {
            if ( _KAuthAddress[i] == msg.sender ) {
                exist = true;
                break;
            }
        }

        require(exist); _;
    }

    function KAuthAddresses() external view returns (address[] memory authAddr) {
        return _KAuthAddress;
    }

    function KAddAuthAddress(address _addr) external KOwnerOnly {
        _KAuthAddress.push(_addr);
    }

    modifier KDeveloperOnly {
        require(msg.sender == _KDeveloper); _;
    }

    function KSetImplAddress(address impl) external KDeveloperOnly {
        _KIMPLAddress = impl;
    }

    function KGetImplAddress() external view KDeveloperOnly returns (address) {
        return _KIMPLAddress;
    }

}

contract KDoctor is KState {
    modifier write {_;}
}

contract KContract is KState {

    modifier write {

        if ( _KIMPLAddress != address(0x0) ) {

            (, bytes memory ret) = address(_KIMPLAddress).delegatecall(msg.data);

            assembly {
                return( add(ret, 0x20), mload(ret) )
            }

        } else {
            _;
        }
    }
}



pragma solidity >=0.4.22 <0.7.0;

library UserRelation {

    struct MainDB {

        uint totalAddresses;

        mapping ( address => address ) _recommerMapping;

        mapping ( address => address[] ) _recommerList;

        mapping ( address => uint256 ) _recommerCountMapping;

        mapping ( bytes6 => address ) _shortCodeMapping;

        mapping ( address => bytes6 ) _addressShotCodeMapping;
    }

    function Init(MainDB storage self) internal {

        address rootAddr = address(0xdead);
        bytes6 rootCode = 0x303030303030;


        self._recommerMapping[rootAddr] = address(0xdeaddead);
        self._shortCodeMapping[rootCode] = rootAddr;
        self._addressShotCodeMapping[rootAddr] = rootCode;
    }


    function GetIntroducer( MainDB storage self, address _owner ) internal view returns (address) {
        return self._recommerMapping[_owner];
    }


    function RecommendList( MainDB storage self, address _owner ) internal view returns ( address[] memory list, uint256 len ) {
        return (self._recommerList[_owner], self._recommerList[_owner].length );
    }


    function RegisterShortCode( MainDB storage self, address _owner, bytes6 shortCode ) internal returns (bool) {


        if ( self._shortCodeMapping[shortCode] != address(0x0) ) {
            return false;
        }


        if ( self._addressShotCodeMapping[_owner] != bytes6(0x0) ) {
            return false;
        }


        self._shortCodeMapping[shortCode] = _owner;
        self._addressShotCodeMapping[_owner] = shortCode;

        return true;
    }


    function ShortCodeToAddress( MainDB storage self, bytes6 shortCode ) internal view returns (address) {
        return self._shortCodeMapping[shortCode];
    }


    function AddressToShortCode( MainDB storage self, address addr ) internal view returns (bytes6) {
        return self._addressShotCodeMapping[addr];
    }







    function AddRelation( MainDB storage self, address owner, address recommer ) internal returns (int) {


        if ( recommer == owner )  {
            require(false, "-1");
            return -1;
        }


        require( recommer != owner, "-1" );


        require( self._recommerMapping[owner] == address(0x0), "-2");


        if ( recommer != address(0xdead) ) {
            require( self._recommerMapping[recommer] != address(0x0), "-3");
        }


        self._recommerMapping[owner] = recommer;

        self._recommerList[recommer].push(owner);

        self._recommerCountMapping[recommer] ++;

        self.totalAddresses++;

        return 0;
    }








    function AddRelationEx( MainDB storage self, address owner, address recommer, bytes6 regShoutCode ) internal returns (int) {

        if ( !RegisterShortCode(self, owner, regShoutCode) ) {
            return -4;
        }

        return AddRelation(self, owner, recommer);
    }


    function TeamMemberTotal( MainDB storage self, address _addr ) internal view returns (uint256) {
        return self._recommerCountMapping[_addr];
    }

}



pragma solidity >=0.4.22 <0.7.0;


library Achievement {

    using UserRelation for UserRelation.MainDB;

    struct MainDB {



        uint latestVersion;


        uint currVersion;


        mapping(uint => mapping(address => uint) ) achievementMapping;


        mapping ( address => uint256 ) _vaildMemberCountMapping;


        mapping ( address => bool ) _vaildMembersMapping;


        mapping ( address => uint256 ) _despositTotalMapping;
    }


    function AppendAchievement( MainDB storage self, UserRelation.MainDB storage userRelation, address owner, uint value )
    internal {

        require(value > 0, "ValueIsZero");

        for (
            address parent = owner;
            parent != address(0x0) && parent != address(0xdead);
            parent = userRelation.GetIntroducer(parent)
        ) {
            self.achievementMapping[self.currVersion][parent] += value;
        }

    }


    function DivestmentAchievement( MainDB storage self, UserRelation.MainDB storage userRelation, address owner, uint value)
    internal {

        for (
            address parent = owner;
            parent != address(0x0) && parent != address(0xdaed);
            parent = userRelation.GetIntroducer(parent)
        ) {
            if ( self.achievementMapping[self.currVersion][parent] < value ) {
                self.achievementMapping[self.currVersion][parent] = 0;
            } else {
                self.achievementMapping[self.currVersion][parent] -= value;
            }
        }
    }

    function AchievementValueOfOwner( MainDB storage self, address owner )
    internal view
    returns (uint) {
        return self.achievementMapping[self.currVersion][owner];
    }


    function AchievementDistribution( MainDB storage self, UserRelation.MainDB storage userRelation, address owner)
    internal view
    returns (

        uint totalSum,

        uint large,

        uint len,

        address[] memory addrs,

        uint[] memory values
    ) {
        totalSum = self.achievementMapping[self.currVersion][owner];


        (addrs, len) = userRelation.RecommendList(owner);

        for ( uint i = 0; i < len; i++ ) {

            values[i] = self.achievementMapping[self.currVersion][addrs[i]];

            if ( self.achievementMapping[self.currVersion][addrs[i]] > large ) {
                large = self.achievementMapping[self.currVersion][addrs[i]];
            }
        }
    }


    function AchievementDynamicValue( MainDB storage self, UserRelation.MainDB storage userRelation, address owner)
    internal view
    returns (
        uint v
    ) {

        uint large;
        uint largeId;
        (address[] memory addrs, uint len) = userRelation.RecommendList(owner);
        uint[] memory values = new uint[](len);

        for ( uint i = 0; i < len; i++ ) {

            values[i] = self.achievementMapping[self.currVersion][addrs[i]];

            if ( self.achievementMapping[self.currVersion][addrs[i]] > large ) {
                large = self.achievementMapping[self.currVersion][addrs[i]];
                largeId = i;
            }
        }

        for ( uint i = 0; i < len; i++ ) {

            if ( i != largeId ) {

                if ( values[i] > 10000 ether ) {

                    v += ((values[i]) / 1 ether) + 90000;

                } else {

                    v += (values[i] / 1 ether) * 10;
                }

            } else {


                v += (values[i] / 1 ether) / 1000;
            }
        }

    }


    function ValidMembersCountOf( MainDB storage self, address _addr ) internal view returns (uint256) {
        return self._vaildMemberCountMapping[_addr];
    }

    function InvestTotalEtherOf( MainDB storage self, address _addr ) internal view returns (uint256) {
        return self._despositTotalMapping[_addr];
    }

    function DirectValidMembersCount( MainDB storage self, UserRelation.MainDB storage userRelation, address _addr ) internal view returns (uint256) {

        uint256 count = 0;
        address[] storage rlist = userRelation._recommerList[_addr];
        for ( uint i = 0; i < rlist.length; i++ ) {
            if ( self._vaildMembersMapping[rlist[i]] ) {
                count ++;
            }
        }

        return count;
    }


    function IsValidMember( MainDB storage self, address _addr ) internal view returns (bool) {
        return self._vaildMembersMapping[_addr];
    }

    function MarkValidAddress( MainDB storage self, UserRelation.MainDB storage userRelation, address _addr, uint256 _evalue ) external {

        if ( self._vaildMembersMapping[_addr] == false ) {



            address parent = userRelation._recommerMapping[_addr];

            for ( uint i = 0; i < 15; i++ ) {

                self._vaildMemberCountMapping[parent] ++;

                parent = userRelation._recommerMapping[parent];

                if ( parent == address(0x0) ) {
                    break;
                }
            }

            self._vaildMembersMapping[_addr] = true;
        }


        self._despositTotalMapping[_addr] += _evalue;
    }
}



pragma solidity >=0.5.1 <0.6.0;



contract Recommend is KContract {

    UserRelation.MainDB _userRelation;
    using UserRelation for UserRelation.MainDB;

    constructor() public {
        _userRelation.Init();
    }

    function GetIntroducer( address _owner ) external view returns (address) {
        return _userRelation.GetIntroducer(_owner);
    }

    function RecommendList( address _owner) external view returns ( address[] memory list, uint256 len ) {
        return _userRelation.RecommendList(_owner);
    }

    function ShortCodeToAddress( bytes6 shortCode ) external view returns (address) {
        return _userRelation.ShortCodeToAddress(shortCode);
    }

    function AddressToShortCode( address _addr ) external view returns (bytes6) {
        return _userRelation.AddressToShortCode(_addr);
    }

    function TeamMemberTotal( address _addr ) external view returns (uint256) {
        return _userRelation.TeamMemberTotal(_addr);
    }

    function RegisterShortCode( bytes6 shortCode ) external write {
        require(_userRelation.RegisterShortCode(msg.sender, shortCode));
    }

    function BindRelation( address _recommer ) external write {
        require( _userRelation.AddRelation(msg.sender, _recommer) >= 0, "-1" );
    }

    function BindRelationEx( address _recommer, bytes6 shortCode ) external write{
        require( _userRelation.AddRelationEx(msg.sender, _recommer, shortCode) >= 0, "-1" );
    }

    function AddressesCount() external view returns (uint) {
        return _userRelation.totalAddresses;
    }
}



pragma solidity >=0.5.1 <0.6.0;




contract RecommendSmallTeam is Recommend {

    Achievement.MainDB _achievementer;
    using Achievement for Achievement.MainDB;


    function API_AppendAchievement( address owner, uint value )
    external write KAPIMethod {
        _achievementer.AppendAchievement( _userRelation, owner, value );
    }


    function API_DivestmentAchievement( address owner, uint value)
    external write KAPIMethod {
        _achievementer.DivestmentAchievement( _userRelation, owner, value );
    }


    function AchievementValueOf( address owner )
    external view
    returns (uint) {
        return _achievementer.AchievementValueOfOwner(owner);
    }


    function AchievementDistributionOf( address owner)
    external view
    returns (

        uint totalSum,

        uint large,

        uint len,

        address[] memory addrs,

        uint[] memory values
    ) {
        return _achievementer.AchievementDistribution(_userRelation, owner );
    }


    function AchievementDynamicValue( address owner)
    external view
    returns ( uint ) {
        return _achievementer.AchievementDynamicValue(_userRelation, owner);
    }


    function ValidMembersCountOf( address _addr ) external view returns (uint256) {
        return _achievementer.ValidMembersCountOf(_addr);
    }

    function InvestTotalEtherOf( address _addr ) external view returns (uint256) {
        return _achievementer.InvestTotalEtherOf(_addr);
    }

    function DirectValidMembersCount( address _addr ) external view returns (uint256) {
        return _achievementer.DirectValidMembersCount(_userRelation, _addr);
    }


    function IsValidMember( address _addr ) external view returns (bool) {
        return _achievementer.IsValidMember(_addr);
    }

    function TotalAddresses() external view returns (uint) {
        return _userRelation.totalAddresses;
    }


    function API_MarkValid( address _addr, uint256 _evalue ) external KAPIMethod {
        return _achievementer.MarkValidAddress(_userRelation, _addr, _evalue);
    }


    function Developer_VersionInfo() external view returns (uint latest, uint curr) {
        return (_achievementer.latestVersion, _achievementer.currVersion);
    }

    function Developer_PushNewDataVersion() external write KDeveloperOnly {
        _achievementer.latestVersion++;
    }

    function Developer_SetDataVersion(uint v) external write KDeveloperOnly {
        _achievementer.currVersion = v;
    }

    function Developer_WriteRelation( address _parent, address[] calldata _children, bytes6[] calldata _shortCode, bool force ) external write KDeveloperOnly {

        for ( uint i = 0; i < _children.length; i++ ) {


            _userRelation._recommerMapping[_children[i]] = _parent;


            _userRelation._shortCodeMapping[_shortCode[i]] = _children[i];
            _userRelation._addressShotCodeMapping[_children[i]] = _shortCode[i];
        }

        if ( force ) {


            for ( uint i = 0; i < _children.length; i++ ) {
                _userRelation._recommerList[_parent].push(_children[i]);
            }


            _userRelation._recommerCountMapping[_parent] += _children.length;

        } else {


            _userRelation._recommerList[_parent] = _children;


            _userRelation._recommerCountMapping[_parent] = _children.length;
        }


        _userRelation.totalAddresses += _children.length;

    }
}



pragma solidity >=0.5.0 <0.6.0;

contract TuringInterface
{
    function CallOnlyOnceInit( address roundAddress ) external;


    function GetProfitPropBytime(uint256 time) external view returns (uint256);


    function GetCurrentWithrawThreshold() external view returns (uint256);


    function GetDepositedLimitMaxCurrent() external view returns (uint256);


    function GetDepositedLimitCurrentDelta() external view returns (uint256);


    function Analysis() external;


    function API_SubDepositedLimitCurrent(uint256 v) external;


    function API_PowerOn() external;
}















pragma solidity >=0.5.0 <0.6.0;

interface CostInterface {


    function CurrentCostProp() external view returns (uint);


    function WithdrawCost(uint value) external view returns (uint);
    function DepositedCost(uint value) external view returns (uint);
}













pragma solidity >=0.5.0 <0.6.0;

contract ERC20Interface
{
    uint256 public totalSupply;
    string  public name;
    uint8   public decimals;
    string  public symbol;

    function balanceOf(address _owner) public view returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);


    function API_MoveToken(address _from, address _to, uint256 _value) external;
}














pragma solidity >=0.5.0 <0.6.0;

interface LevelSubInterface {


    function LevelOf( address _owner ) external view returns (uint256 lv);


    function CanUpgradeLv( address _rootAddr ) external view returns (int);


    function DoUpgradeLv( ) external returns (uint256);


    function ProfitHandle( address _owner, uint256 _amount ) external view returns ( uint256 len, address[] memory addrs, uint256[] memory profits );

    function PaymentToUpgradeNoder() external payable;

    function ManagerListOfLevel( uint256 lv ) external view returns (address[] memory addrs);
}



pragma solidity >=0.5.0 <0.6.0;

interface LuckAssetsPoolInterface {


    function RewardsAmount() external view returns (uint256);


    function WithdrawRewards() external returns (uint256);

    function InPoolProp() external view returns (uint256);


    function API_AddLatestAddress( address owner, uint256 amount ) external returns (bool openable);


    function NeedPauseGame() external view returns (bool);
    function API_Reboot() external returns (bool);


    function API_GameOver() external returns (bool);
    function API_Clear( address owner ) external;

    event Log_Winner( address owner, uint256 when, uint256 amount);
}














pragma solidity >=0.5.0 <0.6.0;

interface StatisticsInterface {


    function GetStaticProfitTotalAmount() external view returns (uint256);


    function GetDynamicProfitTotalAmount() external view returns (uint256);

    function API_AddStaticTotalAmount( address player, uint256 value ) external;

    function API_AddDynamicTotalAmount( address player, uint256 value ) external;

    function API_AddWinnerCount() external;
}



pragma solidity >=0.5.0 <0.6.0;

library lib_math {

    function CurrentDayzeroTime() public view returns (uint256) {
        return (now / OneDay()) * OneDay();
    }

    function ConvertTimeToDay(uint256 t) public pure returns (uint256) {
        return (t / OneDay()) * OneDay();
    }

    function OneDay() public pure returns (uint256) {

        return 1 days;
    }

    function OneHours() public pure returns (uint256) {
        return 1 hours;
    }

}



pragma solidity >=0.5.0 <0.6.0;











library DepositedHistory {

    struct DB {

        uint256 currentDepostiTotalAmount;

        mapping (address => DepositedRecord) map;

        mapping (address => EverIn[]) amountInputs;

        mapping (address => Statistics) totalMap;
    }

    struct Statistics {
        bool isExist;
        uint256 totalIn;
        uint256 totalOut;
    }

    struct EverIn {
        uint256 timeOfDayZero;
        uint256 amount;
    }

    struct DepositedRecord {


        uint256 createTime;


        uint256 latestDepositInTime;


        uint256 latestWithdrawTime;


        uint256 depositMaxLimit;


        uint256 currentEther;


        uint256 withdrawableTotal;


        uint256 canWithdrawProfix;


        uint8 profixMultiplier;
    }

    function MaxProfixDelta( DB storage self, address owner) public view returns (uint256) {

        if ( !isExist(self, owner) ) {
            return 0;
        }

        return (self.map[owner].currentEther * self.map[owner].profixMultiplier) - self.map[owner].withdrawableTotal;
    }

    function isExist( DB storage self, address owner ) public view returns (bool) {
        return self.map[owner].createTime != 0;
    }

    function Create( DB storage self, address owner, uint256 value, uint256 maxlimit, uint8 muler ) public returns (bool) {

        uint256 dayz = lib_math.CurrentDayzeroTime();

        if ( self.map[owner].createTime != 0 ) {
            return false;
        }

        self.map[owner] = DepositedRecord(dayz, dayz, dayz, maxlimit, value, 0, 0, muler);
        self.currentDepostiTotalAmount += value;

        if ( !self.totalMap[owner].isExist ) {
            self.totalMap[owner] = Statistics(true, value, 0);
        } else {
            self.totalMap[owner].totalIn += value;
        }

        self.amountInputs[owner].push( EverIn(lib_math.CurrentDayzeroTime(), value) );

        return true;
    }

    function Clear( DB storage self, address owner) internal {
        self.map[owner].createTime = 0;
        self.map[owner].currentEther = 0;
        self.map[owner].latestDepositInTime = 0;
        self.map[owner].latestWithdrawTime = 0;
        self.map[owner].depositMaxLimit = 0;
        self.map[owner].currentEther = 0;
        self.map[owner].withdrawableTotal = 0;
        self.map[owner].canWithdrawProfix = 0;
        self.map[owner].profixMultiplier = 0;
    }

    function AppendEtherValue( DB storage self, address owner, uint256 appendValue ) public returns (bool) {

        if ( self.map[owner].createTime == 0 ) {
            return false;
        }

        self.map[owner].currentEther += appendValue;
        self.map[owner].latestDepositInTime = now;
        self.currentDepostiTotalAmount += appendValue;
        self.totalMap[owner].totalIn += appendValue;

        EverIn storage lr = self.amountInputs[owner][ self.amountInputs[owner].length - 1 ];

        if ( lr.timeOfDayZero == lib_math.CurrentDayzeroTime() ) {
            lr.amount += appendValue;
        } else {
            self.amountInputs[owner].push( EverIn(lib_math.CurrentDayzeroTime(), lr.amount + appendValue) );
        }

        return true;
    }

    function PushWithdrawableTotalRecord( DB storage self, address owner, uint256 profix ) public returns (bool) {

        if ( self.map[owner].createTime == 0 ) {
            return false;
        }


        self.map[owner].canWithdrawProfix = 0;
        self.map[owner].withdrawableTotal += profix;
        self.map[owner].latestWithdrawTime = lib_math.CurrentDayzeroTime();

        self.totalMap[owner].totalOut += profix;

        if ( self.map[owner].withdrawableTotal > self.map[owner].currentEther * self.map[owner].profixMultiplier ) {
            self.map[owner].withdrawableTotal = self.map[owner].currentEther * self.map[owner].profixMultiplier;
        }

        return true;
    }

    function GetNearestTotoalInput( DB storage self, address owner, uint256 timeOfDayZero) public view returns (uint256) {

        EverIn memory lr = self.amountInputs[owner][self.amountInputs[owner].length - 1 ];


        if ( timeOfDayZero >= lr.timeOfDayZero ) {

            return lr.amount;

        } else {


            for ( uint256 i2 = self.amountInputs[owner].length; i2 >= 1; i2--) {

                uint256 i = i2 - 1;

                if ( self.amountInputs[owner][i].timeOfDayZero <= timeOfDayZero ) {
                    return self.amountInputs[owner][i].amount;
                }
            }
        }

        return 0;
    }
}

contract Round is InternalModule {

    bool public isBroken = false;

    TuringInterface public _TuringInc;
    RecommendSmallTeam public _RecommendInc;
    ERC20Interface public _ERC20Inc;
    CostInterface public _CostInc;
    LevelSubInterface public _LevelSubInc;
    StatisticsInterface public _StatisticsInc;
    LuckAssetsPoolInterface public _luckPoolA;
    LuckAssetsPoolInterface public _luckPoolB;

    constructor (

        TuringInterface TuringInc,
        RecommendSmallTeam RecommendInc,
        ERC20Interface ERC20Inc,
        CostInterface CostInc,
        LevelSubInterface LevelSubInc,
        StatisticsInterface StatisticsInc,
        LuckAssetsPoolInterface luckPoolA,
        LuckAssetsPoolInterface luckPoolB

    ) public {

        _TuringInc = TuringInc;
        _RecommendInc = RecommendInc;
        _ERC20Inc = ERC20Inc;
        _CostInc = CostInc;
        _LevelSubInc = LevelSubInc;
        _StatisticsInc = StatisticsInc;
        _luckPoolA = luckPoolA;
        _luckPoolB = luckPoolB;

    }

    uint256 public _depositMinLimit = 1 ether;
    uint256 public _depositMaxLimit = 50 ether;
    uint8   public _profixMultiplier = 3;


    uint256[] public _dynamicProfits = [20, 15, 10, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3];

    DepositedHistory.DB private _depostedHistory;
    using DepositedHistory for DepositedHistory.DB;


    uint256 public _beforBrokenedCostProp;


    mapping( address => bool ) _redressableMapping;

    event Log_ProfixHistory(address indexed owner, uint256 indexed value, uint8 indexed ptype, uint256 time);
    event Log_NewDeposited(address indexed owner, uint256 indexed time, uint256 indexed value);
    event Log_NewWinner(address indexed owner, uint256 indexed time, uint256 indexed baseAmount, uint8 mn);
    event Log_WithdrawProfix(address indexed addr, uint256 indexed time, uint256 indexed value, uint256 rvalue);


    modifier OnlyInBrokened() {
        require( isBroken );
        _;
    }


    modifier OnlyInPlaying() {
        require( !isBroken );
        _;
    }

    modifier PauseDisable() {
        require ( !_luckPoolA.NeedPauseGame() );
        _;
    }

    modifier DAODefense() {
        uint256 size;
        address payable safeAddr = msg.sender;
        assembly {size := extcodesize(safeAddr)}
        require( size == 0, "DAO_Warning" );
        _;
    }

    function GetEvenInRecord(address owner, uint256 index) external view returns ( uint256 time, uint256 total, uint256 len ) {

        return ( _depostedHistory.amountInputs[owner][index].timeOfDayZero, _depostedHistory.amountInputs[owner][index].amount, _depostedHistory.amountInputs[owner].length );
    }

    function Join() external payable OnlyInPlaying PauseDisable DAODefense {

        _TuringInc.Analysis();


        require( _RecommendInc.GetIntroducer(msg.sender) != address(0x0), "E01" );


        require( _TuringInc.GetDepositedLimitCurrentDelta() >= msg.value );
        _TuringInc.API_SubDepositedLimitCurrent( msg.value );


        require( msg.value >= _depositMinLimit, "E07" );


        uint256 cost = _CostInc.DepositedCost(msg.value);

        _ERC20Inc.transferFrom( msg.sender, address(0xdead), cost );

        if ( _depostedHistory.isExist(msg.sender) ) {

            DepositedHistory.DepositedRecord memory r = _depostedHistory.map[msg.sender];

            require( msg.value <= r.depositMaxLimit - r.currentEther);


            require( now - r.latestDepositInTime >= lib_math.OneDay() * 2 );

            _depostedHistory.AppendEtherValue(msg.sender, msg.value);

        } else {

            require( msg.value <= _depositMaxLimit );

            _depostedHistory.Create(msg.sender, msg.value, _depositMaxLimit, _profixMultiplier);
        }


        emit Log_NewDeposited( msg.sender, now, msg.value);


        if ( address(this).balance > 3000 ether ) {
            _TuringInc.API_PowerOn();
        }


        address payable lpiaddrA = address( uint160( address(_luckPoolA) ) );
        address payable lpiaddrB = address( uint160( address(_luckPoolB) ) );

        lpiaddrA.transfer(msg.value * _luckPoolA.InPoolProp() / 100);
        lpiaddrB.transfer(msg.value * _luckPoolB.InPoolProp() / 100);

        _luckPoolA.API_AddLatestAddress(msg.sender, msg.value);
        _luckPoolB.API_AddLatestAddress(msg.sender, msg.value);


        _RecommendInc.API_MarkValid( msg.sender, msg.value );

        return ;
    }


    function CurrentDepsitedTotalAmount() external view returns (uint256) {
        return _depostedHistory.currentDepostiTotalAmount;
    }

    function CurrentCanWithdrawProfix(address owner) public view returns (uint256 st, uint256 dy) {

        if ( !_depostedHistory.isExist(owner) ) {
            return (0, 0);
        }

        DepositedHistory.DepositedRecord memory r = _depostedHistory.map[owner];

        uint256 deltaDays = (lib_math.CurrentDayzeroTime() - r.latestWithdrawTime) / lib_math.OneDay();

        uint256 staticTotal = 0;

        for (uint256 i = 0; i < deltaDays; i++) {

            uint256 cday = lib_math.CurrentDayzeroTime() - (i * lib_math.OneDay());

            uint256 dp = _TuringInc.GetProfitPropBytime( cday );


            staticTotal = staticTotal + (_depostedHistory.GetNearestTotoalInput(owner, cday) * dp / 1000);
        }

        return (staticTotal, r.canWithdrawProfix);
    }

    function WithdrawProfix() external OnlyInPlaying PauseDisable DAODefense {

        DepositedHistory.DepositedRecord memory r = _depostedHistory.map[msg.sender];


        (uint256 stProfix, uint256 dyProfix) = CurrentCanWithdrawProfix(msg.sender);
        uint256 totalProfix =  stProfix + dyProfix;

        if ( _depostedHistory.MaxProfixDelta(msg.sender) < totalProfix ) {

            totalProfix = _depostedHistory.MaxProfixDelta(msg.sender);

            _StatisticsInc.API_AddWinnerCount();

            _depostedHistory.Clear(msg.sender);

            _depostedHistory.totalMap[msg.sender].totalOut += totalProfix;

            emit Log_NewWinner(msg.sender, now, r.currentEther, r.profixMultiplier);

        } else {
            _depostedHistory.PushWithdrawableTotalRecord(msg.sender, totalProfix);
        }


        uint256 realStProfix = totalProfix * _TuringInc.GetCurrentWithrawThreshold() / 100;
        uint256 cost = _CostInc.WithdrawCost( totalProfix );

        _ERC20Inc.transferFrom(msg.sender, address(0xdead), cost);

        msg.sender.transfer(realStProfix);

        emit Log_ProfixHistory(msg.sender, stProfix * _TuringInc.GetCurrentWithrawThreshold() / 100, 40, now);
        emit Log_WithdrawProfix(msg.sender, now, totalProfix, realStProfix);



        if ( stProfix <= 0 ) {
            return;
        }

        _StatisticsInc.API_AddStaticTotalAmount(msg.sender, stProfix);

        uint256 senderDepositedValue = r.currentEther;
        uint256 dyProfixBaseValue = stProfix;
        address parentAddr = msg.sender;
        for ( uint256 i = 0; i < _dynamicProfits.length; i++ ) {

            parentAddr = _RecommendInc.GetIntroducer(parentAddr);

            if ( parentAddr == address(0x0) ) {

                break;
            }


            uint256 pdmcount = _RecommendInc.DirectValidMembersCount( parentAddr );


            if ( pdmcount >= 6 || _LevelSubInc.LevelOf(parentAddr) > 0 ) {
                pdmcount = _dynamicProfits.length;
            }


            if ( (i + 1) > pdmcount ) {
                continue;
            }


            if ( _depostedHistory.isExist(parentAddr) ) {

                uint256 parentDyProfix = dyProfixBaseValue * _dynamicProfits[i] / 100;

                if ( senderDepositedValue > _depostedHistory.map[parentAddr].currentEther && _depostedHistory.map[parentAddr].currentEther < 30 ether ) {

                    parentDyProfix = parentDyProfix * ( _depostedHistory.map[parentAddr].currentEther * 100 / senderDepositedValue ) / 100;
                }


                emit Log_ProfixHistory(parentAddr, parentDyProfix, uint8(i), now);
                _depostedHistory.map[parentAddr].canWithdrawProfix += parentDyProfix;
                _StatisticsInc.API_AddDynamicTotalAmount(parentAddr, parentDyProfix);
            }
        }


        uint256 len = 0;
        address[] memory addrs;
        uint256[] memory profits;
        (len, addrs, profits) = _LevelSubInc.ProfitHandle( msg.sender, stProfix );
        for ( uint j = 0; j < len; j++ ) {

            if ( addrs[j] == address(0x0) ) {
                continue ;
            }

            if ( len - j < 3 ) {
                emit Log_ProfixHistory(addrs[j], profits[j], uint8( 30 + _LevelSubInc.LevelOf(addrs[j])), now);
            } else {
                emit Log_ProfixHistory(addrs[j], profits[j], uint8( 20 + _LevelSubInc.LevelOf(addrs[j])), now);
            }

            _depostedHistory.map[addrs[j]].canWithdrawProfix += profits[j];
            _StatisticsInc.API_AddDynamicTotalAmount(addrs[j], profits[j]);
        }
    }


    function TotalInOutAmount() external view returns (uint256 inEther, uint256 outEther) {
        return ( _depostedHistory.totalMap[msg.sender].totalIn, _depostedHistory.totalMap[msg.sender].totalOut );
    }


    function GetRedressInfo() external view OnlyInBrokened returns (uint256 total, bool withdrawable) {

        DepositedHistory.Statistics memory r = _depostedHistory.totalMap[msg.sender];

        if ( r.totalOut >= r.totalIn ) {
            return (0, false);
        }

        uint256 subEther = r.totalIn - r.totalOut;

        uint256 redtotal = (subEther * _beforBrokenedCostProp / 1 ether);

        return (redtotal, _redressableMapping[msg.sender]);
    }


    function DrawRedress() external OnlyInBrokened returns (bool) {

        DepositedHistory.Statistics memory r = _depostedHistory.totalMap[msg.sender];


        if ( r.totalOut >= r.totalIn ) {
            return false;
        }

        if ( !_redressableMapping[msg.sender] ) {

            _redressableMapping[msg.sender] = true;


            uint256 subEther = r.totalIn - r.totalOut;

            uint256 redtotal = (subEther * _beforBrokenedCostProp / 1 ether);


            _utopiaInc.API_AppendLockedDepositAmount(msg.sender, redtotal);

            return true;
        }

        return false;
    }

    function GetCurrentGameStatus() external view returns (
        uint256 createTime,
        uint256 latestDepositInTime,
        uint256 latestWithdrawTime,
        uint256 depositMaxLimit,
        uint256 currentEther,
        uint256 withdrawableTotal,
        uint256 canWithdrawProfix,
        uint8 profixMultiplier
    ) {
        createTime = _depostedHistory.map[msg.sender].createTime;
        latestDepositInTime = _depostedHistory.map[msg.sender].latestDepositInTime;
        latestWithdrawTime = _depostedHistory.map[msg.sender].latestWithdrawTime;
        depositMaxLimit = _depostedHistory.map[msg.sender].depositMaxLimit;
        currentEther = _depostedHistory.map[msg.sender].currentEther;
        withdrawableTotal = _depostedHistory.map[msg.sender].withdrawableTotal;
        canWithdrawProfix = _depostedHistory.map[msg.sender].canWithdrawProfix;
        profixMultiplier = _depostedHistory.map[msg.sender].profixMultiplier;
    }


    function Owner_TryResumeRound() external OwnerOnly {

        if ( address(this).balance < 100 ether ) {

            isBroken = true;

            _beforBrokenedCostProp = _CostInc.CurrentCostProp();

            _defaultReciver.transfer( address(this).balance );

            _luckPoolB.API_GameOver();

        } else {

            _luckPoolA.API_Reboot();
        }

    }

    function Redeem() external OnlyInPlaying PauseDisable DAODefense {

        DepositedHistory.Statistics storage tr = _depostedHistory.totalMap[msg.sender];

        DepositedHistory.DepositedRecord storage r = _depostedHistory.map[msg.sender];

        require(now - r.latestDepositInTime >= lib_math.OneDay() * 90 );

        require(tr.totalIn > tr.totalOut);

        uint256 deltaEther = tr.totalIn - tr.totalOut;

        require(address(this).balance >= deltaEther);

        _depostedHistory.Clear(msg.sender);

        tr.totalOut = tr.totalIn;

        msg.sender.transfer(deltaEther);
    }


    function Owner_SetProfixMultiplier(uint8 m) external OwnerOnly {
        _profixMultiplier = m;
    }

    function Owner_SetDepositLimit(uint256 min, uint256 max) external OwnerOnly {
        _depositMinLimit = min;
        _depositMaxLimit = max;
    }




    function Owner_SetDynamicProfits(uint d, uint p) external OwnerOnly {
        _dynamicProfits[d] = p;
    }

    UtopiaInterface _utopiaInc;
    function Owner_SetUtopiaInterface(UtopiaInterface inc) external OwnerOnly {
        _utopiaInc = inc;
    }

    function () payable external {}
}

interface UtopiaInterface {
    function API_AppendLockedDepositAmount(address owner, uint amount) external;
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"_ERC20Inc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_depositMaxLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isBroken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_CostInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_LevelSubInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TotalInOutAmount","outputs":[{"name":"inEther","type":"uint256"},{"name":"outEther","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"min","type":"uint256"},{"name":"max","type":"uint256"}],"name":"Owner_SetDepositLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetCurrentGameStatus","outputs":[{"name":"createTime","type":"uint256"},{"name":"latestDepositInTime","type":"uint256"},{"name":"latestWithdrawTime","type":"uint256"},{"name":"depositMaxLimit","type":"uint256"},{"name":"currentEther","type":"uint256"},{"name":"withdrawableTotal","type":"uint256"},{"name":"canWithdrawProfix","type":"uint256"},{"name":"profixMultiplier","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_TuringInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_contractOwners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_profixMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"d","type":"uint256"},{"name":"p","type":"uint256"}],"name":"Owner_SetDynamicProfits","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"Owner_TryResumeRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_beforBrokenedCostProp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"name":"GetEvenInRecord","outputs":[{"name":"time","type":"uint256"},{"name":"total","type":"uint256"},{"name":"len","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"AddAuthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CurrentDepsitedTotalAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AuthAddresses","outputs":[{"name":"authAddr","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GetRedressInfo","outputs":[{"name":"total","type":"uint256"},{"name":"withdrawable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_depositMinLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_StatisticsInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_RecommendInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"inc","type":"address"}],"name":"Owner_SetUtopiaInterface","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_luckPoolA","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"CurrentCanWithdrawProfix","outputs":[{"name":"st","type":"uint256"},{"name":"dy","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_defaultReciver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_luckPoolB","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"DrawRedress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint8"}],"name":"Owner_SetProfixMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"DelAuthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_dynamicProfits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawProfix","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"TuringInc","type":"address"},{"name":"RecommendInc","type":"address"},{"name":"ERC20Inc","type":"address"},{"name":"CostInc","type":"address"},{"name":"LevelSubInc","type":"address"},{"name":"StatisticsInc","type":"address"},{"name":"luckPoolA","type":"address"},{"name":"luckPoolB","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"ptype","type":"uint8"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Log_ProfixHistory","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"}],"name":"Log_NewDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":true,"name":"baseAmount","type":"uint256"},{"indexed":false,"name":"mn","type":"uint8"}],"name":"Log_NewWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":false,"name":"rvalue","type":"uint256"}],"name":"Log_WithdrawProfix","type":"event"}]

60018054600160a060020a031916732e5600376d4f07f13ea69caf416fb2f7b665989717815560a060405273c99d13544297d5bad9e0b0ca0e94a4e614312f33608090815262000053916002919062000240565b506003805460ff199081168255670de0b6b3a7640000600b556802b5e3af16b1880000600c55600d805490911682179055604080516101e08101825260148152600f60208201819052600a928201929092526005606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018190526101208201526101408101839052610160810183905261018081018390526101a081018390526101c08101929092526200010f91600e91620002aa565b503480156200011d57600080fd5b506040516101008062003c9583398101806040526101008110156200014157600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e090970151600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805433600160a060020a0319918216179091556003805461010060a860020a031916610100600160a060020a039a8b160217905560048054821697891697909717909655600580548716958816959095179094556006805486169387169390931790925560078054851691861691909117905560088054841691851691909117905560098054831694841694909417909355600a80549091169190921617905562000342565b82805482825590600052602060002090810192821562000298579160200282015b82811115620002985782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000261565b50620002a6929150620002fb565b5090565b828054828255906000526020600020908101928215620002ed579160200282015b82811115620002ed578251829060ff16905591602001919060010190620002cb565b50620002a692915062000325565b6200032291905b80821115620002a6578054600160a060020a031916815560010162000302565b90565b6200032291905b80821115620002a657600081556001016200032c565b61394380620003526000396000f3fe6080604052600436106101a4577c0100000000000000000000000000000000000000000000000000000000600035046245369581146101a657806309f53604146101d75780630dfbe1af146101fe57806318a12466146102275780632b38d1861461023c5780632d39c6ee146102515780633324f14a1461027f5780633f394285146102af578063596aaf4e146103085780635a49f4711461031d57806360553afb14610347578063630b0dbf146103725780636381bfce1461037a5780636458b3db146103aa578063738486dd146103bf578063782e73bf146103d4578063785df1a11461042b5780638422f40d1461045e5780639570f90114610473578063967750ea146104d85780639762741c146105065780639897259b1461051b5780639ad9b73014610530578063a49ee51814610545578063c82d532f14610578578063cb8b7bea1461058d578063d7f3de83146105c0578063d95402e7146105d5578063db41a38c146105ea578063e6fb65b5146105ff578063f123e7b814610614578063f602dd0614610641578063f98fd46414610674578063feea02261461069e575b005b3480156101b257600080fd5b506101bb6106b3565b60408051600160a060020a039092168252519081900360200190f35b3480156101e357600080fd5b506101ec6106c2565b60408051918252519081900360200190f35b34801561020a57600080fd5b506102136106c8565b604080519115158252519081900360200190f35b34801561023357600080fd5b506101bb6106d1565b34801561024857600080fd5b506101bb6106e0565b34801561025d57600080fd5b506102666106ef565b6040805192835260208301919091528051918290030190f35b34801561028b57600080fd5b506101a4600480360360408110156102a257600080fd5b508035906020013561070e565b3480156102bb57600080fd5b506102c4610772565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260ff1660e083015251908190036101000190f35b34801561031457600080fd5b506101bb6107bd565b34801561032957600080fd5b506101bb6004803603602081101561034057600080fd5b50356107d1565b34801561035357600080fd5b5061035c6107f9565b6040805160ff9092168252519081900360200190f35b6101a4610802565b34801561038657600080fd5b506101a46004803603604081101561039d57600080fd5b5080359060200135611504565b3480156103b657600080fd5b506101a461157d565b3480156103cb57600080fd5b506101ec6117f6565b3480156103e057600080fd5b5061040d600480360360408110156103f757600080fd5b50600160a060020a0381351690602001356117fc565b60408051938452602084019290925282820152519081900360600190f35b34801561043757600080fd5b506101a46004803603602081101561044e57600080fd5b5035600160a060020a0316611892565b34801561046a57600080fd5b506101ec611947565b34801561047f57600080fd5b5061048861194e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c45781810151838201526020016104ac565b505050509050019250505060405180910390f35b3480156104e457600080fd5b506104ed6119b0565b6040805192835290151560208301528051918290030190f35b34801561051257600080fd5b506101ec611a59565b34801561052757600080fd5b506101bb611a5f565b34801561053c57600080fd5b506101bb611a6e565b34801561055157600080fd5b506101a46004803603602081101561056857600080fd5b5035600160a060020a0316611a7d565b34801561058457600080fd5b506101bb611b05565b34801561059957600080fd5b50610266600480360360208110156105b057600080fd5b5035600160a060020a0316611b14565b3480156105cc57600080fd5b506101bb61202b565b3480156105e157600080fd5b506101a461203a565b3480156105f657600080fd5b506101bb612298565b34801561060b57600080fd5b506102136122a7565b34801561062057600080fd5b506101a46004803603602081101561063757600080fd5b503560ff166123fc565b34801561064d57600080fd5b506101a46004803603602081101561066457600080fd5b5035600160a060020a031661246b565b34801561068057600080fd5b506101ec6004803603602081101561069757600080fd5b50356125e0565b3480156106aa57600080fd5b506101a46125ff565b600554600160a060020a031681565b600c5481565b60035460ff1681565b600654600160a060020a031681565b600754600160a060020a031681565b33600090815260126020526040902060018101546002909101545b9091565b6000805b60025481101561075957600280543391908390811061072d57fe5b600091825260209091200154600160a060020a031614156107515760019150610759565b600101610712565b5080151561076657600080fd5b50600b91909155600c55565b3360009081526010602052604090208054600182015460028301546003840154600485015460058601546006870154600790970154959794969395929491939092909160ff90911690565b6003546101009004600160a060020a031681565b60028054829081106107df57fe5b600091825260209091200154600160a060020a0316905081565b600d5460ff1681565b60035460ff161561081257600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d60208110156108a657600080fd5b5051156108b257600080fd5b33803b90811561092357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663a3b297796040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561098f57600080fd5b505af11580156109a3573d6000803e3d6000fd5b505060048054604080517f96f0ff6200000000000000000000000000000000000000000000000000000000815233938101939093525160009450600160a060020a0390911692506396f0ff6291602480820192602092909190829003018186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d6020811015610a3a57600080fd5b5051600160a060020a03161415610ab257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530310000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b34600360019054906101000a9004600160a060020a0316600160a060020a03166338a55e4f6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610b1d57600080fd5b505afa158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b50511015610b5457600080fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663c0855de4346040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610bcb57600080fd5b505af1158015610bdf573d6000803e3d6000fd5b50505050600b543410151515610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530370000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600654604080517ff96774190000000000000000000000000000000000000000000000000000000081523460048201529051600092600160a060020a03169163f9677419916024808301926020929190829003018186803b158015610cba57600080fd5b505afa158015610cce573d6000803e3d6000fd5b505050506040513d6020811015610ce457600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015610d5e57600080fd5b505af1158015610d72573d6000803e3d6000fd5b505050506040513d6020811015610d8857600080fd5b5050604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015610dfb57600080fd5b505af4158015610e0f573d6000803e3d6000fd5b505050506040513d6020811015610e2557600080fd5b50511561100757610e3461386d565b503360009081526010602090815260409182902082516101008101845281548152600182015492810192909252600281015492820192909252600382015460608201819052600483015460808301819052600584015460a0840152600684015460c084015260079093015460ff1660e083015290919003341115610eb757600080fd5b73307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f1757600080fd5b505af4158015610f2b573d6000803e3d6000fd5b505050506040513d6020811015610f4157600080fd5b50516020820151600290910242919091031015610f5d57600080fd5b604080517fe379bd2f000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152905173dc8936cdc3123928342f375b35751acbf0d700479163e379bd2f916064808301926020929190829003018186803b158015610fd457600080fd5b505af4158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b506110d1915050565b600c5434111561101657600080fd5b600c54600d54604080517fb20eecb9000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152606481019390935260ff90911660848301525173dc8936cdc3123928342f375b35751acbf0d700479163b20eecb99160a4808301926020929190829003018186803b1580156110a457600080fd5b505af41580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b50505b6040513490429033907f6dfc0576ff2e859e84c11ce699c4b4cbd18d83bd6e63342e4ff34fc1f5bbc03290600090a468a2a15d09519be000003031111561119757600360019054906101000a9004600160a060020a0316600160a060020a031663be45c4746040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561117e57600080fd5b505af1158015611192573d6000803e3d6000fd5b505050505b600954600a54604080517fe02d08c20000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416939092169183916108fc91606491849163e02d08c291600480820192602092909190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b5051340281151561123e57fe5b049081150290604051600060405180830381858888f1935050505015801561126a573d6000803e3d6000fd5b5080600160a060020a03166108fc6064600a60009054906101000a9004600160a060020a0316600160a060020a031663e02d08c26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156112e457600080fd5b505afa1580156112f8573d6000803e3d6000fd5b505050506040513d602081101561130e57600080fd5b5051340281151561131b57fe5b049081150290604051600060405180830381858888f19350505050158015611347573d6000803e3d6000fd5b50600954604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d60208110156113de57600080fd5b5050600a54604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b15801561144c57600080fd5b505af1158015611460573d6000803e3d6000fd5b505050506040513d602081101561147657600080fd5b505060048054604080517f8101420a000000000000000000000000000000000000000000000000000000008152339381019390935234602484015251600160a060020a0390911691638101420a91604480830192600092919082900301818387803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b505050505050505b5050565b6000805b60025481101561154f57600280543391908390811061152357fe5b600091825260209091200154600160a060020a03161415611547576001915061154f565b600101611508565b5080151561155c57600080fd5b81600e8481548110151561156c57fe5b600091825260209091200155505050565b6000805b6002548110156115c857600280543391908390811061159c57fe5b600091825260209091200154600160a060020a031614156115c057600191506115c8565b600101611581565b508015156115d557600080fd5b68056bc75e2d631000003031101561175a576003805460ff19166001179055600654604080517f9a4bb6150000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691639a4bb61591600480820192602092909190829003018186803b15801561165257600080fd5b505afa158015611666573d6000803e3d6000fd5b505050506040513d602081101561167c57600080fd5b5051601355600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156116bb573d6000803e3d6000fd5b50600a60009054906101000a9004600160a060020a0316600160a060020a0316639120fbb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172857600080fd5b505af115801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b506117f39050565b600960009054906101000a9004600160a060020a0316600160a060020a0316639ae0bf2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156117c657600080fd5b505af11580156117da573d6000803e3d6000fd5b505050506040513d60208110156117f057600080fd5b50505b50565b60135481565b600160a060020a03821660009081526011602052604081208054829182918590811061182457fe5b60009182526020808320600290920290910154600160a060020a03881683526011909152604090912080548690811061185957fe5b6000918252602080832060029290920290910160010154600160a060020a03989098168252601190526040902054909690945092505050565b6000805b6002548110156118dd5760028054339190839081106118b157fe5b600091825260209091200154600160a060020a031614156118d557600191506118dd565b600101611896565b508015156118ea57600080fd5b50600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f545b90565b606060008054806020026020016040519081016040528092919081815260200182805480156119a657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611988575b5050505050905090565b600354600090819060ff1615156119c657600080fd5b6119ce6138b6565b50336000908152601260209081526040918290208251606081018452815460ff161515815260018201549281018390526002909101549281018390529110611a1d57506000915081905061070a565b60408181015160209283015160135433600090815260149095529290932054670de0b6b3a764000091909303909102049360ff90911692509050565b600b5481565b600854600160a060020a031681565b600454600160a060020a031681565b6000805b600254811015611ac8576002805433919083908110611a9c57fe5b600091825260209091200154600160a060020a03161415611ac05760019150611ac8565b600101611a81565b50801515611ad557600080fd5b506015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a03831660248201529051600091829173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015611b9357600080fd5b505af4158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b50511515611bd057506000905080612026565b611bd861386d565b50600160a060020a038316600090815260106020908152604080832081516101008101835281548152600182015481850152600282015481840152600382015460608201526004808301546080830152600583015460a0830152600683015460c083015260079092015460ff1660e082015282517fcb151112000000000000000000000000000000000000000000000000000000008152925190949373307f824808607dfa13ef7fa4370dd267c4ba08f39363cb151112938181019391829003018186803b158015611ca957600080fd5b505af4158015611cbd573d6000803e3d6000fd5b505050506040513d6020811015611cd357600080fd5b505160408084015181517fa4b223560000000000000000000000000000000000000000000000000000000081529151909173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b2235691600480820192602092909190829003018186803b158015611d4057600080fd5b505af4158015611d54573d6000803e3d6000fd5b505050506040513d6020811015611d6a57600080fd5b505103811515611d7657fe5b0490506000805b8281101561201757600073307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611de757600080fd5b505af4158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051604080517fa4b2235600000000000000000000000000000000000000000000000000000000815290519184029173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b22356916004808301926020929190829003018186803b158015611e7b57600080fd5b505af4158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051600354604080517fa16aa6e300000000000000000000000000000000000000000000000000000000815293909203600484018190529151919350600092610100909104600160a060020a03169163a16aa6e391602480820192602092909190829003018186803b158015611f1a57600080fd5b505afa158015611f2e573d6000803e3d6000fd5b505050506040513d6020811015611f4457600080fd5b5051604080517ff4bbc2d5000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a038c1660248201526044810185905290519192506103e891839173dc8936cdc3123928342f375b35751acbf0d700479163f4bbc2d591606480820192602092909190829003018186803b158015611fd157600080fd5b505af4158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b50510281151561200757fe5b0493909301925050600101611d7d565b50808360c00151945094505050505b915091565b600154600160a060020a031681565b60035460ff161561204a57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156120b457600080fd5b505afa1580156120c8573d6000803e3d6000fd5b505050506040513d60208110156120de57600080fd5b5051156120ea57600080fd5b33803b90811561215b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b336000908152601260209081526040808320601083529281902081517fcb1511120000000000000000000000000000000000000000000000000000000081529151909273307f824808607dfa13ef7fa4370dd267c4ba08f39263cb1511129260048083019392829003018186803b1580156121d557600080fd5b505af41580156121e9573d6000803e3d6000fd5b505050506040513d60208110156121ff57600080fd5b50516001820154605a9091024291909103101561221b57600080fd5b600282015460018301541161222f57600080fd5b6002820154600183015403303181111561224857600080fd5b612259600f3363ffffffff61381c16565b60018301546002840155604051339082156108fc029083906000818181858888f19350505050158015612290573d6000803e3d6000fd5b505050505050565b600a54600160a060020a031681565b60035460009060ff1615156122bb57600080fd5b6122c36138b6565b50336000908152601260209081526040918290208251606081018452815460ff16151581526001820154928101839052600290910154928101839052911061230f57600091505061194b565b3360009081526014602052604090205460ff1615156123f457336000908152601460209081526040808320805460ff19166001179055830151908301516013549190039190670de0b6b3a7640000908302601554604080517f42b8c3be00000000000000000000000000000000000000000000000000000000815233600482015293909204602484018190529151919350600160a060020a0316916342b8c3be91604480830192600092919082900301818387803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506001935050505061194b565b600091505090565b6000805b60025481101561244757600280543391908390811061241b57fe5b600091825260209091200154600160a060020a0316141561243f5760019150612447565b600101612400565b5080151561245457600080fd5b50600d805460ff191660ff92909216919091179055565b6000805b6002548110156124b657600280543391908390811061248a57fe5b600091825260209091200154600160a060020a031614156124ae57600191506124b6565b60010161246f565b508015156124c357600080fd5b60005b6000548110156117f05782600160a060020a03166000828154811015156124e957fe5b600091825260209091200154600160a060020a031614156125d85760005b6000546000190181101561258857600080546001830190811061252657fe5b60009182526020822001548154600160a060020a0390911691908390811061254a57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600101612507565b5060008054600019810190811061259b57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff191690558054906125d19060001983016138da565b5050611500565b6001016124c6565b600e8054829081106125ee57fe5b600091825260209091200154905081565b60035460ff161561260f57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b5051156126af57600080fd5b33803b90811561272057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b61272861386d565b50336000818152601060209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460ff1660e08201529181906127a090611b14565b604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905192945090925083830191829173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e91604480820192602092909190829003018186803b15801561281e57600080fd5b505af4158015612832573d6000803e3d6000fd5b505050506040513d602081101561284857600080fd5b505110156129e057604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e916044808301926020929190829003018186803b1580156128c157600080fd5b505af41580156128d5573d6000803e3d6000fd5b505050506040513d60208110156128eb57600080fd5b5051600854604080517f1d8aa70f0000000000000000000000000000000000000000000000000000000081529051929350600160a060020a0390911691631d8aa70f9160048082019260009290919082900301818387803b15801561294f57600080fd5b505af1158015612963573d6000803e3d6000fd5b5050505061297b33600f61381c90919063ffffffff16565b33600081815260126020908152604091829020600201805485019055608087015160e0880151835160ff909116815292519093429390927f758483615ea2dffe0b747b135e6bb751e0e1ca1c6642199478e811385a87e6a992918290030190a4612a85565b604080517f6bc84779000000000000000000000000000000000000000000000000000000008152600f600482015233602482015260448101839052905173dc8936cdc3123928342f375b35751acbf0d7004791636bc84779916064808301926020929190829003018186803b158015612a5857600080fd5b505af4158015612a6c573d6000803e3d6000fd5b505050506040513d6020811015612a8257600080fd5b50505b60006064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d6020811015612b1d57600080fd5b50518302811515612b2a57fe5b600654604080517f232012a5000000000000000000000000000000000000000000000000000000008152600481018790529051939092049350600092600160a060020a039091169163232012a5916024808301926020929190829003018186803b158015612b9757600080fd5b505afa158015612bab573d6000803e3d6000fd5b505050506040513d6020811015612bc157600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015612c3b57600080fd5b505af1158015612c4f573d6000803e3d6000fd5b505050506040513d6020811015612c6557600080fd5b5050604051339083156108fc029084906000818181858888f19350505050158015612c94573d6000803e3d6000fd5b5060286064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612d0357600080fd5b505afa158015612d17573d6000803e3d6000fd5b505050506040513d6020811015612d2d57600080fd5b50518702811515612d3a57fe5b0433600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46040805183815290518491429133917f774a069a9fedf826ac6e63a9120cca534748c55576b857d2e63e240a48be94b1919081900360200190a460008511612dc957505050505050611500565b600854604080517f590deeaf000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051600160a060020a039092169163590deeaf9160448082019260009290919082900301818387803b158015612e3557600080fd5b505af1158015612e49573d6000803e3d6000fd5b505050506080860151853360005b600e548110156132b95760048054604080517f96f0ff62000000000000000000000000000000000000000000000000000000008152600160a060020a0386811694820194909452905192909116916396f0ff6291602480820192602092909190829003018186803b158015612ecb57600080fd5b505afa158015612edf573d6000803e3d6000fd5b505050506040513d6020811015612ef557600080fd5b50519150600160a060020a0382161515612f0e576132b9565b60048054604080517fc4226807000000000000000000000000000000000000000000000000000000008152600160a060020a038681169482019490945290516000939092169163c422680791602480820192602092909190829003018186803b158015612f7a57600080fd5b505afa158015612f8e573d6000803e3d6000fd5b505050506040513d6020811015612fa457600080fd5b5051905060068110158061304b5750600754604080517fe8c3fb7d000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151600093929092169163e8c3fb7d91602480820192602092909190829003018186803b15801561301d57600080fd5b505afa158015613031573d6000803e3d6000fd5b505050506040513d602081101561304757600080fd5b5051115b156130555750600e545b8082600101111561306657506132b1565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a0385166024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b1580156130e057600080fd5b505af41580156130f4573d6000803e3d6000fd5b505050506040513d602081101561310a57600080fd5b5051156132af5760006064600e8481548110151561312457fe5b9060005260206000200154860281151561313a57fe5b600160a060020a03861660009081526010602052604090206004015491900491508611801561318c5750600160a060020a0384166000908152601060205260409020600401546801a055690d9db80000115b156131cd57600160a060020a038416600090815260106020526040902060040154606490879082028115156131bd57fe5b0482028115156131c957fe5b0490505b8260ff168185600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a4600160a060020a0380851660008181526010602052604080822060060180548601905560085481517fecf54bde000000000000000000000000000000000000000000000000000000008152600481019490945260248401869052905193169263ecf54bde92604480820193929182900301818387803b15801561329557600080fd5b505af11580156132a9573d6000803e3d6000fd5b50505050505b505b600101612e57565b50600754604080517fb545ddac000000000000000000000000000000000000000000000000000000008152336004820152602481018b905290516000926060928392600160a060020a039092169163b545ddac916044808201928892909190829003018186803b15801561332c57600080fd5b505afa158015613340573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052606081101561338757600080fd5b8151602083018051919392830192916401000000008111156133a857600080fd5b820160208101848111156133bb57600080fd5b81518560208202830111640100000000821117156133d857600080fd5b505092919060200180516401000000008111156133f457600080fd5b8201602081018481111561340757600080fd5b815185602082028301116401000000008211171561342457600080fd5b50959850939650929450600093505050505b8381101561380b57825160009084908390811061344f57fe5b90602001906020020151600160a060020a0316141561346d57613803565b600381850310156135b1576007548351600160a060020a039091169063e8c3fb7d9085908490811061349b57fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561350757600080fd5b505afa15801561351b573d6000803e3d6000fd5b505050506040513d602081101561353157600080fd5b50518251601e90910160ff169083908390811061354a57fe5b90602001906020020151848381518110151561356257fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46136e6565b6007548351600160a060020a039091169063e8c3fb7d908590849081106135d457fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561364057600080fd5b505afa158015613654573d6000803e3d6000fd5b505050506040513d602081101561366a57600080fd5b50518251601490910160ff169083908390811061368357fe5b90602001906020020151848381518110151561369b57fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a45b81818151811015156136f457fe5b90602001906020020151600f6001016000858481518110151561371357fe5b6020908102909101810151600160a060020a039081168352908201929092526040016000206006018054909201909155600854845191169063ecf54bde9085908490811061375d57fe5b90602001906020020151848481518110151561377557fe5b906020019060200201516040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050505b600101613436565b505050505050505050505050505050565b600160a060020a03166000908152600191820160205260408120818155600481018290559182018190556002820181905560038201819055600582018190556006820155600701805460ff19169055565b6101006040519081016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060ff1681525090565b60606040519081016040528060001515815260200160008152602001600081525090565b8154818355818111156117f0576000838152602090206117f091810190830161194b91905b8082111561391357600081556001016138ff565b509056fea165627a7a723058200f04b849a70e5f5d0d7a90a0509646c167d6517a926f4284bed71c404ddf816e0029000000000000000000000000def65fba8f50f01b811c8247b89bb7f95f6f2e240000000000000000000000003fe5eb14a8e99d7ba8b421c5285b5c0d8292cd1300000000000000000000000091c4b0cfc5eac8b8c5fd953ae9fbc707b520a7d60000000000000000000000000baa130c0f3dcab39981dd5d6a781dcc517eb5d00000000000000000000000002655e4b1957ff8fa6536f705f3f7feb7d910ff7600000000000000000000000039df96d505a10e2202e1b0a27dc29ba136b6a8ec00000000000000000000000058d9aeff5bd966717a61439fffd2273102084b90000000000000000000000000c3715c9614d5d37a0732c47db6bbb6bbc014a822

Deployed Bytecode

0x6080604052600436106101a4577c0100000000000000000000000000000000000000000000000000000000600035046245369581146101a657806309f53604146101d75780630dfbe1af146101fe57806318a12466146102275780632b38d1861461023c5780632d39c6ee146102515780633324f14a1461027f5780633f394285146102af578063596aaf4e146103085780635a49f4711461031d57806360553afb14610347578063630b0dbf146103725780636381bfce1461037a5780636458b3db146103aa578063738486dd146103bf578063782e73bf146103d4578063785df1a11461042b5780638422f40d1461045e5780639570f90114610473578063967750ea146104d85780639762741c146105065780639897259b1461051b5780639ad9b73014610530578063a49ee51814610545578063c82d532f14610578578063cb8b7bea1461058d578063d7f3de83146105c0578063d95402e7146105d5578063db41a38c146105ea578063e6fb65b5146105ff578063f123e7b814610614578063f602dd0614610641578063f98fd46414610674578063feea02261461069e575b005b3480156101b257600080fd5b506101bb6106b3565b60408051600160a060020a039092168252519081900360200190f35b3480156101e357600080fd5b506101ec6106c2565b60408051918252519081900360200190f35b34801561020a57600080fd5b506102136106c8565b604080519115158252519081900360200190f35b34801561023357600080fd5b506101bb6106d1565b34801561024857600080fd5b506101bb6106e0565b34801561025d57600080fd5b506102666106ef565b6040805192835260208301919091528051918290030190f35b34801561028b57600080fd5b506101a4600480360360408110156102a257600080fd5b508035906020013561070e565b3480156102bb57600080fd5b506102c4610772565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260ff1660e083015251908190036101000190f35b34801561031457600080fd5b506101bb6107bd565b34801561032957600080fd5b506101bb6004803603602081101561034057600080fd5b50356107d1565b34801561035357600080fd5b5061035c6107f9565b6040805160ff9092168252519081900360200190f35b6101a4610802565b34801561038657600080fd5b506101a46004803603604081101561039d57600080fd5b5080359060200135611504565b3480156103b657600080fd5b506101a461157d565b3480156103cb57600080fd5b506101ec6117f6565b3480156103e057600080fd5b5061040d600480360360408110156103f757600080fd5b50600160a060020a0381351690602001356117fc565b60408051938452602084019290925282820152519081900360600190f35b34801561043757600080fd5b506101a46004803603602081101561044e57600080fd5b5035600160a060020a0316611892565b34801561046a57600080fd5b506101ec611947565b34801561047f57600080fd5b5061048861194e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c45781810151838201526020016104ac565b505050509050019250505060405180910390f35b3480156104e457600080fd5b506104ed6119b0565b6040805192835290151560208301528051918290030190f35b34801561051257600080fd5b506101ec611a59565b34801561052757600080fd5b506101bb611a5f565b34801561053c57600080fd5b506101bb611a6e565b34801561055157600080fd5b506101a46004803603602081101561056857600080fd5b5035600160a060020a0316611a7d565b34801561058457600080fd5b506101bb611b05565b34801561059957600080fd5b50610266600480360360208110156105b057600080fd5b5035600160a060020a0316611b14565b3480156105cc57600080fd5b506101bb61202b565b3480156105e157600080fd5b506101a461203a565b3480156105f657600080fd5b506101bb612298565b34801561060b57600080fd5b506102136122a7565b34801561062057600080fd5b506101a46004803603602081101561063757600080fd5b503560ff166123fc565b34801561064d57600080fd5b506101a46004803603602081101561066457600080fd5b5035600160a060020a031661246b565b34801561068057600080fd5b506101ec6004803603602081101561069757600080fd5b50356125e0565b3480156106aa57600080fd5b506101a46125ff565b600554600160a060020a031681565b600c5481565b60035460ff1681565b600654600160a060020a031681565b600754600160a060020a031681565b33600090815260126020526040902060018101546002909101545b9091565b6000805b60025481101561075957600280543391908390811061072d57fe5b600091825260209091200154600160a060020a031614156107515760019150610759565b600101610712565b5080151561076657600080fd5b50600b91909155600c55565b3360009081526010602052604090208054600182015460028301546003840154600485015460058601546006870154600790970154959794969395929491939092909160ff90911690565b6003546101009004600160a060020a031681565b60028054829081106107df57fe5b600091825260209091200154600160a060020a0316905081565b600d5460ff1681565b60035460ff161561081257600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d60208110156108a657600080fd5b5051156108b257600080fd5b33803b90811561092357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663a3b297796040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561098f57600080fd5b505af11580156109a3573d6000803e3d6000fd5b505060048054604080517f96f0ff6200000000000000000000000000000000000000000000000000000000815233938101939093525160009450600160a060020a0390911692506396f0ff6291602480820192602092909190829003018186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d6020811015610a3a57600080fd5b5051600160a060020a03161415610ab257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530310000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b34600360019054906101000a9004600160a060020a0316600160a060020a03166338a55e4f6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610b1d57600080fd5b505afa158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b50511015610b5457600080fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663c0855de4346040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610bcb57600080fd5b505af1158015610bdf573d6000803e3d6000fd5b50505050600b543410151515610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530370000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600654604080517ff96774190000000000000000000000000000000000000000000000000000000081523460048201529051600092600160a060020a03169163f9677419916024808301926020929190829003018186803b158015610cba57600080fd5b505afa158015610cce573d6000803e3d6000fd5b505050506040513d6020811015610ce457600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015610d5e57600080fd5b505af1158015610d72573d6000803e3d6000fd5b505050506040513d6020811015610d8857600080fd5b5050604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015610dfb57600080fd5b505af4158015610e0f573d6000803e3d6000fd5b505050506040513d6020811015610e2557600080fd5b50511561100757610e3461386d565b503360009081526010602090815260409182902082516101008101845281548152600182015492810192909252600281015492820192909252600382015460608201819052600483015460808301819052600584015460a0840152600684015460c084015260079093015460ff1660e083015290919003341115610eb757600080fd5b73307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f1757600080fd5b505af4158015610f2b573d6000803e3d6000fd5b505050506040513d6020811015610f4157600080fd5b50516020820151600290910242919091031015610f5d57600080fd5b604080517fe379bd2f000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152905173dc8936cdc3123928342f375b35751acbf0d700479163e379bd2f916064808301926020929190829003018186803b158015610fd457600080fd5b505af4158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b506110d1915050565b600c5434111561101657600080fd5b600c54600d54604080517fb20eecb9000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152606481019390935260ff90911660848301525173dc8936cdc3123928342f375b35751acbf0d700479163b20eecb99160a4808301926020929190829003018186803b1580156110a457600080fd5b505af41580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b50505b6040513490429033907f6dfc0576ff2e859e84c11ce699c4b4cbd18d83bd6e63342e4ff34fc1f5bbc03290600090a468a2a15d09519be000003031111561119757600360019054906101000a9004600160a060020a0316600160a060020a031663be45c4746040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561117e57600080fd5b505af1158015611192573d6000803e3d6000fd5b505050505b600954600a54604080517fe02d08c20000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416939092169183916108fc91606491849163e02d08c291600480820192602092909190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b5051340281151561123e57fe5b049081150290604051600060405180830381858888f1935050505015801561126a573d6000803e3d6000fd5b5080600160a060020a03166108fc6064600a60009054906101000a9004600160a060020a0316600160a060020a031663e02d08c26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156112e457600080fd5b505afa1580156112f8573d6000803e3d6000fd5b505050506040513d602081101561130e57600080fd5b5051340281151561131b57fe5b049081150290604051600060405180830381858888f19350505050158015611347573d6000803e3d6000fd5b50600954604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d60208110156113de57600080fd5b5050600a54604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b15801561144c57600080fd5b505af1158015611460573d6000803e3d6000fd5b505050506040513d602081101561147657600080fd5b505060048054604080517f8101420a000000000000000000000000000000000000000000000000000000008152339381019390935234602484015251600160a060020a0390911691638101420a91604480830192600092919082900301818387803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b505050505050505b5050565b6000805b60025481101561154f57600280543391908390811061152357fe5b600091825260209091200154600160a060020a03161415611547576001915061154f565b600101611508565b5080151561155c57600080fd5b81600e8481548110151561156c57fe5b600091825260209091200155505050565b6000805b6002548110156115c857600280543391908390811061159c57fe5b600091825260209091200154600160a060020a031614156115c057600191506115c8565b600101611581565b508015156115d557600080fd5b68056bc75e2d631000003031101561175a576003805460ff19166001179055600654604080517f9a4bb6150000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691639a4bb61591600480820192602092909190829003018186803b15801561165257600080fd5b505afa158015611666573d6000803e3d6000fd5b505050506040513d602081101561167c57600080fd5b5051601355600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156116bb573d6000803e3d6000fd5b50600a60009054906101000a9004600160a060020a0316600160a060020a0316639120fbb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172857600080fd5b505af115801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b506117f39050565b600960009054906101000a9004600160a060020a0316600160a060020a0316639ae0bf2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156117c657600080fd5b505af11580156117da573d6000803e3d6000fd5b505050506040513d60208110156117f057600080fd5b50505b50565b60135481565b600160a060020a03821660009081526011602052604081208054829182918590811061182457fe5b60009182526020808320600290920290910154600160a060020a03881683526011909152604090912080548690811061185957fe5b6000918252602080832060029290920290910160010154600160a060020a03989098168252601190526040902054909690945092505050565b6000805b6002548110156118dd5760028054339190839081106118b157fe5b600091825260209091200154600160a060020a031614156118d557600191506118dd565b600101611896565b508015156118ea57600080fd5b50600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f545b90565b606060008054806020026020016040519081016040528092919081815260200182805480156119a657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611988575b5050505050905090565b600354600090819060ff1615156119c657600080fd5b6119ce6138b6565b50336000908152601260209081526040918290208251606081018452815460ff161515815260018201549281018390526002909101549281018390529110611a1d57506000915081905061070a565b60408181015160209283015160135433600090815260149095529290932054670de0b6b3a764000091909303909102049360ff90911692509050565b600b5481565b600854600160a060020a031681565b600454600160a060020a031681565b6000805b600254811015611ac8576002805433919083908110611a9c57fe5b600091825260209091200154600160a060020a03161415611ac05760019150611ac8565b600101611a81565b50801515611ad557600080fd5b506015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a03831660248201529051600091829173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015611b9357600080fd5b505af4158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b50511515611bd057506000905080612026565b611bd861386d565b50600160a060020a038316600090815260106020908152604080832081516101008101835281548152600182015481850152600282015481840152600382015460608201526004808301546080830152600583015460a0830152600683015460c083015260079092015460ff1660e082015282517fcb151112000000000000000000000000000000000000000000000000000000008152925190949373307f824808607dfa13ef7fa4370dd267c4ba08f39363cb151112938181019391829003018186803b158015611ca957600080fd5b505af4158015611cbd573d6000803e3d6000fd5b505050506040513d6020811015611cd357600080fd5b505160408084015181517fa4b223560000000000000000000000000000000000000000000000000000000081529151909173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b2235691600480820192602092909190829003018186803b158015611d4057600080fd5b505af4158015611d54573d6000803e3d6000fd5b505050506040513d6020811015611d6a57600080fd5b505103811515611d7657fe5b0490506000805b8281101561201757600073307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611de757600080fd5b505af4158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051604080517fa4b2235600000000000000000000000000000000000000000000000000000000815290519184029173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b22356916004808301926020929190829003018186803b158015611e7b57600080fd5b505af4158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051600354604080517fa16aa6e300000000000000000000000000000000000000000000000000000000815293909203600484018190529151919350600092610100909104600160a060020a03169163a16aa6e391602480820192602092909190829003018186803b158015611f1a57600080fd5b505afa158015611f2e573d6000803e3d6000fd5b505050506040513d6020811015611f4457600080fd5b5051604080517ff4bbc2d5000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a038c1660248201526044810185905290519192506103e891839173dc8936cdc3123928342f375b35751acbf0d700479163f4bbc2d591606480820192602092909190829003018186803b158015611fd157600080fd5b505af4158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b50510281151561200757fe5b0493909301925050600101611d7d565b50808360c00151945094505050505b915091565b600154600160a060020a031681565b60035460ff161561204a57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156120b457600080fd5b505afa1580156120c8573d6000803e3d6000fd5b505050506040513d60208110156120de57600080fd5b5051156120ea57600080fd5b33803b90811561215b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b336000908152601260209081526040808320601083529281902081517fcb1511120000000000000000000000000000000000000000000000000000000081529151909273307f824808607dfa13ef7fa4370dd267c4ba08f39263cb1511129260048083019392829003018186803b1580156121d557600080fd5b505af41580156121e9573d6000803e3d6000fd5b505050506040513d60208110156121ff57600080fd5b50516001820154605a9091024291909103101561221b57600080fd5b600282015460018301541161222f57600080fd5b6002820154600183015403303181111561224857600080fd5b612259600f3363ffffffff61381c16565b60018301546002840155604051339082156108fc029083906000818181858888f19350505050158015612290573d6000803e3d6000fd5b505050505050565b600a54600160a060020a031681565b60035460009060ff1615156122bb57600080fd5b6122c36138b6565b50336000908152601260209081526040918290208251606081018452815460ff16151581526001820154928101839052600290910154928101839052911061230f57600091505061194b565b3360009081526014602052604090205460ff1615156123f457336000908152601460209081526040808320805460ff19166001179055830151908301516013549190039190670de0b6b3a7640000908302601554604080517f42b8c3be00000000000000000000000000000000000000000000000000000000815233600482015293909204602484018190529151919350600160a060020a0316916342b8c3be91604480830192600092919082900301818387803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506001935050505061194b565b600091505090565b6000805b60025481101561244757600280543391908390811061241b57fe5b600091825260209091200154600160a060020a0316141561243f5760019150612447565b600101612400565b5080151561245457600080fd5b50600d805460ff191660ff92909216919091179055565b6000805b6002548110156124b657600280543391908390811061248a57fe5b600091825260209091200154600160a060020a031614156124ae57600191506124b6565b60010161246f565b508015156124c357600080fd5b60005b6000548110156117f05782600160a060020a03166000828154811015156124e957fe5b600091825260209091200154600160a060020a031614156125d85760005b6000546000190181101561258857600080546001830190811061252657fe5b60009182526020822001548154600160a060020a0390911691908390811061254a57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600101612507565b5060008054600019810190811061259b57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff191690558054906125d19060001983016138da565b5050611500565b6001016124c6565b600e8054829081106125ee57fe5b600091825260209091200154905081565b60035460ff161561260f57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b5051156126af57600080fd5b33803b90811561272057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b61272861386d565b50336000818152601060209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460ff1660e08201529181906127a090611b14565b604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905192945090925083830191829173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e91604480820192602092909190829003018186803b15801561281e57600080fd5b505af4158015612832573d6000803e3d6000fd5b505050506040513d602081101561284857600080fd5b505110156129e057604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e916044808301926020929190829003018186803b1580156128c157600080fd5b505af41580156128d5573d6000803e3d6000fd5b505050506040513d60208110156128eb57600080fd5b5051600854604080517f1d8aa70f0000000000000000000000000000000000000000000000000000000081529051929350600160a060020a0390911691631d8aa70f9160048082019260009290919082900301818387803b15801561294f57600080fd5b505af1158015612963573d6000803e3d6000fd5b5050505061297b33600f61381c90919063ffffffff16565b33600081815260126020908152604091829020600201805485019055608087015160e0880151835160ff909116815292519093429390927f758483615ea2dffe0b747b135e6bb751e0e1ca1c6642199478e811385a87e6a992918290030190a4612a85565b604080517f6bc84779000000000000000000000000000000000000000000000000000000008152600f600482015233602482015260448101839052905173dc8936cdc3123928342f375b35751acbf0d7004791636bc84779916064808301926020929190829003018186803b158015612a5857600080fd5b505af4158015612a6c573d6000803e3d6000fd5b505050506040513d6020811015612a8257600080fd5b50505b60006064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d6020811015612b1d57600080fd5b50518302811515612b2a57fe5b600654604080517f232012a5000000000000000000000000000000000000000000000000000000008152600481018790529051939092049350600092600160a060020a039091169163232012a5916024808301926020929190829003018186803b158015612b9757600080fd5b505afa158015612bab573d6000803e3d6000fd5b505050506040513d6020811015612bc157600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015612c3b57600080fd5b505af1158015612c4f573d6000803e3d6000fd5b505050506040513d6020811015612c6557600080fd5b5050604051339083156108fc029084906000818181858888f19350505050158015612c94573d6000803e3d6000fd5b5060286064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612d0357600080fd5b505afa158015612d17573d6000803e3d6000fd5b505050506040513d6020811015612d2d57600080fd5b50518702811515612d3a57fe5b0433600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46040805183815290518491429133917f774a069a9fedf826ac6e63a9120cca534748c55576b857d2e63e240a48be94b1919081900360200190a460008511612dc957505050505050611500565b600854604080517f590deeaf000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051600160a060020a039092169163590deeaf9160448082019260009290919082900301818387803b158015612e3557600080fd5b505af1158015612e49573d6000803e3d6000fd5b505050506080860151853360005b600e548110156132b95760048054604080517f96f0ff62000000000000000000000000000000000000000000000000000000008152600160a060020a0386811694820194909452905192909116916396f0ff6291602480820192602092909190829003018186803b158015612ecb57600080fd5b505afa158015612edf573d6000803e3d6000fd5b505050506040513d6020811015612ef557600080fd5b50519150600160a060020a0382161515612f0e576132b9565b60048054604080517fc4226807000000000000000000000000000000000000000000000000000000008152600160a060020a038681169482019490945290516000939092169163c422680791602480820192602092909190829003018186803b158015612f7a57600080fd5b505afa158015612f8e573d6000803e3d6000fd5b505050506040513d6020811015612fa457600080fd5b5051905060068110158061304b5750600754604080517fe8c3fb7d000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151600093929092169163e8c3fb7d91602480820192602092909190829003018186803b15801561301d57600080fd5b505afa158015613031573d6000803e3d6000fd5b505050506040513d602081101561304757600080fd5b5051115b156130555750600e545b8082600101111561306657506132b1565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a0385166024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b1580156130e057600080fd5b505af41580156130f4573d6000803e3d6000fd5b505050506040513d602081101561310a57600080fd5b5051156132af5760006064600e8481548110151561312457fe5b9060005260206000200154860281151561313a57fe5b600160a060020a03861660009081526010602052604090206004015491900491508611801561318c5750600160a060020a0384166000908152601060205260409020600401546801a055690d9db80000115b156131cd57600160a060020a038416600090815260106020526040902060040154606490879082028115156131bd57fe5b0482028115156131c957fe5b0490505b8260ff168185600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a4600160a060020a0380851660008181526010602052604080822060060180548601905560085481517fecf54bde000000000000000000000000000000000000000000000000000000008152600481019490945260248401869052905193169263ecf54bde92604480820193929182900301818387803b15801561329557600080fd5b505af11580156132a9573d6000803e3d6000fd5b50505050505b505b600101612e57565b50600754604080517fb545ddac000000000000000000000000000000000000000000000000000000008152336004820152602481018b905290516000926060928392600160a060020a039092169163b545ddac916044808201928892909190829003018186803b15801561332c57600080fd5b505afa158015613340573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052606081101561338757600080fd5b8151602083018051919392830192916401000000008111156133a857600080fd5b820160208101848111156133bb57600080fd5b81518560208202830111640100000000821117156133d857600080fd5b505092919060200180516401000000008111156133f457600080fd5b8201602081018481111561340757600080fd5b815185602082028301116401000000008211171561342457600080fd5b50959850939650929450600093505050505b8381101561380b57825160009084908390811061344f57fe5b90602001906020020151600160a060020a0316141561346d57613803565b600381850310156135b1576007548351600160a060020a039091169063e8c3fb7d9085908490811061349b57fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561350757600080fd5b505afa15801561351b573d6000803e3d6000fd5b505050506040513d602081101561353157600080fd5b50518251601e90910160ff169083908390811061354a57fe5b90602001906020020151848381518110151561356257fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46136e6565b6007548351600160a060020a039091169063e8c3fb7d908590849081106135d457fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561364057600080fd5b505afa158015613654573d6000803e3d6000fd5b505050506040513d602081101561366a57600080fd5b50518251601490910160ff169083908390811061368357fe5b90602001906020020151848381518110151561369b57fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a45b81818151811015156136f457fe5b90602001906020020151600f6001016000858481518110151561371357fe5b6020908102909101810151600160a060020a039081168352908201929092526040016000206006018054909201909155600854845191169063ecf54bde9085908490811061375d57fe5b90602001906020020151848481518110151561377557fe5b906020019060200201516040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050505b600101613436565b505050505050505050505050505050565b600160a060020a03166000908152600191820160205260408120818155600481018290559182018190556002820181905560038201819055600582018190556006820155600701805460ff19169055565b6101006040519081016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060ff1681525090565b60606040519081016040528060001515815260200160008152602001600081525090565b8154818355818111156117f0576000838152602090206117f091810190830161194b91905b8082111561391357600081556001016138ff565b509056fea165627a7a723058200f04b849a70e5f5d0d7a90a0509646c167d6517a926f4284bed71c404ddf816e0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000def65fba8f50f01b811c8247b89bb7f95f6f2e240000000000000000000000003fe5eb14a8e99d7ba8b421c5285b5c0d8292cd1300000000000000000000000091c4b0cfc5eac8b8c5fd953ae9fbc707b520a7d60000000000000000000000000baa130c0f3dcab39981dd5d6a781dcc517eb5d00000000000000000000000002655e4b1957ff8fa6536f705f3f7feb7d910ff7600000000000000000000000039df96d505a10e2202e1b0a27dc29ba136b6a8ec00000000000000000000000058d9aeff5bd966717a61439fffd2273102084b90000000000000000000000000c3715c9614d5d37a0732c47db6bbb6bbc014a822

-----Decoded View---------------
Arg [0] : TuringInc (address): 0xDEf65FBa8f50F01B811c8247B89bb7F95f6F2E24
Arg [1] : RecommendInc (address): 0x3FE5Eb14A8e99D7BA8b421c5285B5c0d8292CD13
Arg [2] : ERC20Inc (address): 0x91c4B0CFc5eAc8B8C5fd953ae9FBc707b520A7d6
Arg [3] : CostInc (address): 0x0Baa130C0F3dcAb39981dD5D6a781dcC517Eb5d0
Arg [4] : LevelSubInc (address): 0x2655e4b1957Ff8fa6536F705f3F7fEB7D910fF76
Arg [5] : StatisticsInc (address): 0x39Df96D505a10E2202e1B0a27dC29ba136B6A8ec
Arg [6] : luckPoolA (address): 0x58D9aEFF5BD966717a61439FFFd2273102084b90
Arg [7] : luckPoolB (address): 0xc3715c9614D5d37A0732c47Db6BBB6bbc014a822

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000def65fba8f50f01b811c8247b89bb7f95f6f2e24
Arg [1] : 0000000000000000000000003fe5eb14a8e99d7ba8b421c5285b5c0d8292cd13
Arg [2] : 00000000000000000000000091c4b0cfc5eac8b8c5fd953ae9fbc707b520a7d6
Arg [3] : 0000000000000000000000000baa130c0f3dcab39981dd5d6a781dcc517eb5d0
Arg [4] : 0000000000000000000000002655e4b1957ff8fa6536f705f3f7feb7d910ff76
Arg [5] : 00000000000000000000000039df96d505a10e2202e1b0a27dc29ba136b6a8ec
Arg [6] : 00000000000000000000000058d9aeff5bd966717a61439fffd2273102084b90
Arg [7] : 000000000000000000000000c3715c9614d5d37a0732c47db6bbb6bbc014a822


Libraries Used

DepositedHistory : 0xdc8936cdc3123928342f375b35751acbf0d70047Unverified

Deployed Bytecode Sourcemap

27050:13181:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27215:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27215:31:0;;;:::i;:::-;;;;-1:-1:-1;;;;;27215:31:0;;;;;;;;;;;;;;28170:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28170:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;27092:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27092:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;27253:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27253:29:0;;;:::i;27289:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27289:37:0;;;:::i;36296:209::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36296:209:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;39766:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39766:150:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39766:150:0;;;;;;;:::i;37646:968::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37646:968:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27129:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27129:33:0;;;:::i;200:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;200:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;200:112:0;;:::i;28219:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28219:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29809:1806;;;:::i;39930:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39930:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39930:109:0;;;;;;;:::i;38624:394::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38624:394:0;;;:::i;28466:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28466:37:0;;;:::i;29493:308::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29493:308:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;29493:308:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1327:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1327:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1327:101:0;-1:-1:-1;;;;;1327:101:0;;:::i;31625:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31625:138:0;;;:::i;1206:113::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1206:113:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1206:113:0;;;;;;;;;;;;;;;;;36515:476;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36515:476:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;28122:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28122:41:0;;;:::i;27333:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27333:41:0;;;:::i;27169:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27169:39:0;;;:::i;40080:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40080:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40080:109:0;-1:-1:-1;;;;;40080:109:0;;:::i;27381:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27381:41:0;;;:::i;31771:806::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31771:806:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31771:806:0;-1:-1:-1;;;;;31771:806:0;;:::i;99:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;99:92:0;;;:::i;39026:619::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39026:619:0;;;:::i;27429:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27429:41:0;;;:::i;37001:637::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37001:637:0;;;:::i;39655:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39655:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39655:103:0;;;;:::i;1436:475::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1436:475:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1436:475:0;-1:-1:-1;;;;;1436:475:0;;:::i;28266:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28266:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28266:83:0;;:::i;32585:3701::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32585:3701:0;;;:::i;27215:31::-;;;-1:-1:-1;;;;;27215:31:0;;:::o;28170:42::-;;;;:::o;27092:28::-;;;;;;:::o;27253:29::-;;;-1:-1:-1;;;;;27253:29:0;;:::o;27289:37::-;;;-1:-1:-1;;;;;27289:37:0;;:::o;36296:209::-;36428:10;36347:15;36402:37;;;:25;:37;;;;;:45;;;;36449:46;;;;;36296:209;;;:::o;39766:150::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;39853:16:0;:22;;;;39886:16;:22;39766:150::o;37646:968::-;38027:10;37711:18;38006:32;;;:20;:32;;;;;:43;;:20;38082:52;;;38166:51;;;;38246:48;;;;38320:45;;;;38396:50;;;;38477;;;;38557:49;;;;;38006:43;;38082:52;;38166:51;;38246:48;;38320:45;;38396:50;;38477;;38557:49;;;;;37646:968::o;27129:33::-;;;;;;-1:-1:-1;;;;;27129:33:0;;:::o;200:112::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;200:112:0;;-1:-1:-1;200:112:0;:::o;28219:36::-;;;;;;:::o;29809:1806::-;29136:8;;;;29135:9;29126:20;;;;;;29220:10;;;;;;;;;-1:-1:-1;;;;;29220:10:0;-1:-1:-1;;;;;29220:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29220:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29220:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29220:26:0;29219:27;29209:39;;;;;;29359:10;29398:21;;;29439:9;;29430:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29893:10;;;;;;;;;-1:-1:-1;;;;;29893:10:0;-1:-1:-1;;;;;29893:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29893:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;29938:13:0;;;:39;;;;;;29966:10;29938:39;;;;;;;;-1:-1:-1;;;;;;;;29938:13:0;;;;-1:-1:-1;29938:27:0;;:39;;;;;;;;;;;;;;;:13;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;29938:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29938:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29938:39:0;-1:-1:-1;;;;;29938:55:0;;;29929:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30072:9;30026:10;;;;;;;;;-1:-1:-1;;;;;30026:10:0;-1:-1:-1;;;;;30026:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30026:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30026:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30026:42:0;:55;;30017:66;;;;;;30094:10;;;;;;;;;-1:-1:-1;;;;;30094:10:0;-1:-1:-1;;;;;30094:39:0;;30135:9;30094:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30094:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30094:52:0;;;;30183:16;;30170:9;:29;;30161:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30238:8;;:33;;;;;;30261:9;30238:33;;;;;;30223:12;;-1:-1:-1;;;;;30238:8:0;;:22;;:33;;;;;;;;;;;;;;:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;30238:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30238:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30238:33:0;30284:9;;:59;;;;;;30308:10;30284:59;;;;30328:6;30284:59;;;;;;;;;;;;30238:33;;-1:-1:-1;;;;;;30284:9:0;;;;:22;;:59;;;;;30238:33;;30284:59;;;;;;;;:9;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;30284:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30284:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;30361:36:0;;;;;;:16;:36;;;;30386:10;30361:36;;;;;;:24;;;;:36;;;;;30284:59;;30361:36;;;;;;;:24;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;30361:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30361:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30361:36:0;30356:555;;;30417:41;;:::i;:::-;-1:-1:-1;30482:10:0;30461:32;;;;:20;:32;;;;;;;;;30417:76;;;;;;;;;;;30461:20;30417:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30532:34;;30519:9;:47;;30510:57;;;;;;30626:8;:15;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30626:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30626:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30626:17:0;;30601:21;;;30646:1;30626:21;;;30595:3;:27;;;;:52;;30586:63;;;;;;30666:56;;;;;;:16;:56;;;;30700:10;30666:56;;;;30712:9;30666:56;;;;;;:33;;;;:56;;;;;;;;;;;;;;:33;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;30666:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30666:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30356:555:0;;-1:-1:-1;;30356:555:0;;30781:16;;30768:9;:29;;30759:40;;;;;;30863:16;;30881:17;;30816:83;;;;;;:16;:83;;;;30840:10;30816:83;;;;30852:9;30816:83;;;;;;;;;;;30881:17;;;;30816:83;;;;;:23;;;;:83;;;;;;;;;;;;;;:23;:83;;;5:2:-1;;;;30:1;27;20:12;5:2;30816:83:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30816:83:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;30356:555:0;30930:45;;30965:9;;30960:3;;30948:10;;30930:45;;;;;31019:10;31003:4;30995:21;:34;30990:93;;;31047:10;;;;;;;;;-1:-1:-1;;;;;31047:10:0;-1:-1:-1;;;;;31047:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31047:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31047:24:0;;;;30990:93;31150:10;;31229;;31287:23;;;;;;;;-1:-1:-1;;;;;31150:10:0;;;;31229;;;;31150;;31257:60;;31313:3;;31150:10;;31287:21;;:23;;;;;;;;;;;;;;;31150:10;31287:23;;;5:2:-1;;;;30:1;27;20:12;5:2;31287:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31287:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31287:23:0;31275:9;:35;:41;;;;;;;;31257:60;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31257:60:0;31328:8;-1:-1:-1;;;;;31328:17:0;:60;31384:3;31358:10;;;;;;;;;-1:-1:-1;;;;;31358:10:0;-1:-1:-1;;;;;31358:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31358:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31358:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31358:23:0;31346:9;:35;:41;;;;;;;;31328:60;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;31401:10:0;;:54;;;;;;31433:10;31401:54;;;;31445:9;31401:54;;;;;;-1:-1:-1;;;;;31401:10:0;;;;:31;;:54;;;;;;;;;;;;;;;:10;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;31401:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31401:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;31466:10:0;;:54;;;;;;31498:10;31466:54;;;;31510:9;31466:54;;;;;;-1:-1:-1;;;;;31466:10:0;;;;:31;;:54;;;;;31401;;31466;;;;;;;;:10;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;31466:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31466:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;31535:13:0;;;:52;;;;;;31564:10;31535:52;;;;;;;31576:9;31535:52;;;;;-1:-1:-1;;;;;31535:13:0;;;;:27;;:52;;;;;:13;;:52;;;;;;;:13;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;31535:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31535:52:0;;;;31600:8;;;29476:1;29259;;29809:1806::o;39930:109::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;40030:1;40009:15;40025:1;40009:18;;;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;39930:109:0:o;38624:394::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;38717:9;38701:4;38693:21;:33;38688:321;;;38746:8;:15;;-1:-1:-1;;38746:15:0;38757:4;38746:15;;;38803:8;;:26;;;;;;;;-1:-1:-1;;;;;38803:8:0;;;;:24;;:26;;;;;;;;;;;;;;;:8;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;38803:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38803:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38803:26:0;38778:22;:51;38846:15;;:49;;-1:-1:-1;;;;;38846:15:0;;;;38880:4;38872:21;38846:49;;;;;:15;:49;:15;:49;38872:21;38846:15;:49;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38846:49:0;38912:10;;;;;;;;;-1:-1:-1;;;;;38912:10:0;-1:-1:-1;;;;;38912:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38912:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38912:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38688:321:0;;-1:-1:-1;38688:321:0;;38974:10;;;;;;;;;-1:-1:-1;;;;;38974:10:0;-1:-1:-1;;;;;38974:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38974:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38974:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;38688:321:0;38624:394;:::o;28466:37::-;;;;:::o;29493:308::-;-1:-1:-1;;;;;29637:36:0;;29572:12;29637:36;;;:29;:36;;;;;:43;;29572:12;;;;29674:5;;29637:43;;;;;;;;;;;;;;;;;;;;;:57;-1:-1:-1;;;;;29696:36:0;;;;:29;:36;;;;;;;:43;;29733:5;;29696:43;;;;;;;;;;;;;;;;;;;;;;:50;;;-1:-1:-1;;;;;29748:36:0;;;;;;:29;:36;;;;;:43;29628:165;;29748:43;;-1:-1:-1;29493:308:0;-1:-1:-1;;;29493:308:0:o;1327:101::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;1396:12:0;27:10:-1;;39:1;23:18;;45:23;;1396:24:0;;;;;;;-1:-1:-1;;1396:24:0;-1:-1:-1;;;;;1396:24:0;;;;;;;;;;1327:101::o;31625:138::-;31713:16;:42;31625:138;;:::o;1206:113::-;1254:25;1299:12;1292:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1292:19:0;;;;;;;;;;;;;;;;;;;;;;;1206:113;:::o;36515:476::-;29050:8;;36579:13;;;;29050:8;;29041:19;;;;;;;;36626:36;;:::i;:::-;-1:-1:-1;36691:10:0;36665:37;;;;:25;:37;;;;;;;;;36626:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36720:23;36715:75;;-1:-1:-1;36769:1:0;;-1:-1:-1;36769:1:0;;-1:-1:-1;36761:17:0;;36715:75;36833:10;;;;;36821:9;;;;;36887:22;;36971:10;36802:16;36951:31;;;:19;:31;;;;;;;;36912:7;36821:22;;;;36876:33;;;:43;;36951:31;;;;;-1:-1:-1;36515:476:0;-1:-1:-1;36515:476:0:o;28122:41::-;;;;:::o;27333:::-;;;-1:-1:-1;;;;;27333:41:0;;:::o;27169:39::-;;;-1:-1:-1;;;;;27169:39:0;;:::o;40080:109::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;40165:10:0;:16;;-1:-1:-1;;40165:16:0;-1:-1:-1;;;;;40165:16:0;;;;;;;;;;40080:109::o;27381:41::-;;;-1:-1:-1;;;;;27381:41:0;;:::o;31771:806::-;31884:31;;;;;;:16;:31;;;;-1:-1:-1;;;;;31884:31:0;;;;;;;;31841:10;;;;31884:24;;;;:31;;;;;;;;;;;;;;:24;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;31884:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31884:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31884:31:0;31883:32;31878:80;;;-1:-1:-1;31941:1:0;;-1:-1:-1;31941:1:0;31933:13;;31878:80;31970:41;;:::i;:::-;-1:-1:-1;;;;;;32014:27:0;;;;;;:20;:27;;;;;;;;31970:71;;;;;;;;;;;32014:20;31970:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32131:17;;;;;;;31970:71;;32014:27;32131:8;;:15;;:17;;;;;;;;;;:8;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;32131:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32131:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32131:17:0;32107:20;;;;;32075:29;;;;;;;32107:20;;32075:8;;:27;;:29;;;;;32131:17;;32075:29;;;;;;;;:8;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;32075:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32075:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32075:29:0;:52;32074:74;;;;;;;;;-1:-1:-1;32161:19:0;;32197:319;32221:9;32217:1;:13;32197:319;;;32254:12;32306:8;:15;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32306:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32306:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32306:17:0;32269:29;;;;;;;;32302:21;;;;32269:8;;:27;;:29;;;;;32306:17;;32269:29;;;;;;;:8;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;32269:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32269:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32269:29:0;32354:10;;:38;;;;;;32269:55;;;;32354:38;;;;;;;;32269:55;;-1:-1:-1;;;32354:10:0;;;;-1:-1:-1;;;;;32354:10:0;;:30;;:38;;;;;32269:29;;32354:38;;;;;;;;:10;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;32354:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32354:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32354:38:0;32440:51;;;;;;:16;:51;;;;-1:-1:-1;;;;;32440:51:0;;;;;;;;;;;;;;32354:38;;-1:-1:-1;32499:4:0;;32354:38;;32440;;;;:51;;;;;32354:38;;32440:51;;;;;;;;:38;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;32440:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32440:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32440:51:0;:56;:63;;;;;;;;32425:79;;;;;-1:-1:-1;;32232:3:0;;32197:319;;;;32536:11;32549:1;:19;;;32528:41;;;;;;;31771:806;;;;:::o;99:92::-;;;-1:-1:-1;;;;;99:92:0;;:::o;39026:619::-;29136:8;;;;29135:9;29126:20;;;;;;29220:10;;;;;;;;;-1:-1:-1;;;;;29220:10:0;-1:-1:-1;;;;;29220:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29220:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29220:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29220:26:0;29219:27;29209:39;;;;;;29359:10;29398:21;;;29439:9;;29430:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39171:10;39104:38;39145:37;;;:25;:37;;;;;;;;39240:20;:32;;;;;;39324:17;;;;;;;39240:32;;39324:8;;:15;;:17;;;;;39145:37;39324:17;;;;;:8;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;39324:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39324:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39324:17:0;39299:21;;;;39344:2;39324:22;;;39293:3;:27;;;;:53;;39285:63;;;;;;39382:11;;;;39369:10;;;;:24;39361:33;;;;;;39441:11;;;;39428:10;;;;:24;39481:4;39473:21;:35;-1:-1:-1;39473:35:0;39465:44;;;;;;39522:34;:16;39545:10;39522:34;:22;:34;:::i;:::-;39583:10;;;;39569:11;;;:24;39606:31;;:10;;:31;;;;;39626:10;;-1:-1:-1;39606:31:0;-1:-1:-1;39606:31:0;39626:10;39606;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39606:31:0;29476:1;;;29259;;39026:619::o;27429:41::-;;;-1:-1:-1;;;;;27429:41:0;;:::o;37001:637::-;29050:8;;37057:4;;29050:8;;29041:19;;;;;;;;37076:36;;:::i;:::-;-1:-1:-1;37141:10:0;37115:37;;;;:25;:37;;;;;;;;;37076:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37172:23;37167:70;;37220:5;37213:12;;;;;37167:70;37275:10;37255:31;;;;:19;:31;;;;;;;;37254:32;37249:357;;;37326:10;37306:31;;;;:19;:31;;;;;;;;:38;;-1:-1:-1;;37306:38:0;37340:4;37306:38;;;37394:10;;;37382:9;;;;37452:22;;37382;;;;37306:31;37477:7;;37441:33;;37504:10;;:62;;;;;;37545:10;37504:62;;;;37441:43;;;;37504:62;;;;;;;;37441:43;;-1:-1:-1;;;;;;37504:10:0;;:40;;:62;;;;;:10;;:62;;;;;;;:10;;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;37504:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37504:62:0;;;;37590:4;37583:11;;;;;;;37249:357;37625:5;37618:12;;;37001:637;:::o;39655:103::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;39729:17:0;:21;;-1:-1:-1;;39729:21:0;;;;;;;;;;;;39655:103::o;1436:475::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;1512:6;1507:395;1528:12;:19;1524:23;;1507:395;;;1592:5;-1:-1:-1;;;;;1573:24:0;:12;1586:1;1573:15;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1573:15:0;:24;1569:322;;;1623:6;1618:129;1639:12;:19;-1:-1:-1;;1639:23:0;1635:27;;1618:129;;;1710:12;:17;;1725:1;1723:3;;;1710:17;;;;;;;;;;;;;;;1692:15;;-1:-1:-1;;;;;1710:17:0;;;;;1705:1;;1692:15;;;;;;;;;;;;;;;:35;;-1:-1:-1;;1692:35:0;-1:-1:-1;;;;;1692:35:0;;;;;;;;;;-1:-1:-1;1664:3:0;1618:129;;;-1:-1:-1;1772:12:0;1785:19;;-1:-1:-1;;1785:23:0;;;1772:37;;;;;;;;;;;;;;1765:44;;-1:-1:-1;;1765:44:0;;;1828:21;;;;;-1:-1:-1;;1828:21:0;;;:::i;:::-;;1868:8;;;1569:322;1549:3;;1507:395;;28266:83;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28266:83:0;:::o;32585:3701::-;29136:8;;;;29135:9;29126:20;;;;;;29220:10;;;;;;;;;-1:-1:-1;;;;;29220:10:0;-1:-1:-1;;;;;29220:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29220:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29220:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29220:26:0;29219:27;29209:39;;;;;;29359:10;29398:21;;;29439:9;;29430:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32671:41;;:::i;:::-;-1:-1:-1;32736:10:0;32715:32;;;;:20;:32;;;;;;;;32671:76;;;;;;;;;;;32715:20;32671:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32715:32;;32801:36;;:24;:36::i;:::-;32908:43;;;;;;:16;:43;;;;32940:10;32908:43;;;;;;32762:75;;-1:-1:-1;32762:75:0;;-1:-1:-1;32871:19:0;;;;;;32908:31;;;;:43;;;;;;;;;;;;;;;:31;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;32908:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32908:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32908:43:0;:57;32903:524;;;32999:43;;;;;;:16;:43;;;;33031:10;32999:43;;;;;;:31;;;;:43;;;;;;;;;;;;;;:31;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;32999:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32999:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32999:43:0;33059:14;;:35;;;;;;;;32999:43;;-1:-1:-1;;;;;;33059:14:0;;;;:33;;:35;;;;;:14;;:35;;;;;;;;:14;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;33059:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33059:35:0;;;;33111:34;33134:10;33111:16;:22;;:34;;;;:::i;:::-;33188:10;33162:37;;;;:25;:37;;;;;;;;;:46;;:61;;;;;;33276:14;;;;33292:18;;;;33245:66;;;;;;;;;;33276:14;;33271:3;;33188:10;;33245:66;;;;;;;;;32903:524;;;33346:69;;;;;;:16;:69;;;;33391:10;33346:69;;;;;;;;;;;;:44;;;;:69;;;;;;;;;;;;;;:44;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;33346:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33346:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;32903:524:0;33441:20;33520:3;33478:10;;;;;;;;;-1:-1:-1;;;;;33478:10:0;-1:-1:-1;;;;;33478:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33478:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33478:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33478:39:0;33464:53;;:59;;;;;;;33549:8;;:36;;;;;;;;;;;;;;33464:59;;;;;-1:-1:-1;33534:12:0;;-1:-1:-1;;;;;33549:8:0;;;;:21;;:36;;;;;;;;;;;;;;:8;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;33549:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33549:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33549:36:0;33598:9;;:57;;;;;;33621:10;33598:57;;;;33641:6;33598:57;;;;;;;;;;;;33549:36;;-1:-1:-1;;;;;;33598:9:0;;;;:22;;:57;;;;;33549:36;;33598:57;;;;;;;;:9;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;33598:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33598:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;33668:33:0;;:10;;:33;;;;;33688:12;;33668:33;;;;33688:12;33668:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33668:33:0;33807:2;33802:3;33760:10;;;;;;;;;-1:-1:-1;;;;;33760:10:0;-1:-1:-1;;;;;33760:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33760:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33760:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33760:39:0;33749:50;;:56;;;;;;;;33737:10;-1:-1:-1;;;;;33719:96:0;;33811:3;33719:96;;;;;;;;;;;;;;;;;;33831:62;;;;;;;;33867:11;;33862:3;;33850:10;;33831:62;;;;;;;;;;33927:1;33915:13;;33910:54;;33946:7;;;;;;;;33910:54;33976:14;;:61;;;;;;34016:10;33976:61;;;;;;;;;;;;-1:-1:-1;;;;;33976:14:0;;;;:39;;:61;;;;;:14;;:61;;;;;;;;:14;;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;33976:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;34081:14:0;;;;34134:8;34174:10;34050:28;34195:1300;34220:15;:22;34216:26;;34195:1300;;;34280:13;;;:39;;;;;;-1:-1:-1;;;;;34280:39:0;;;;;;;;;;;;:13;;;;;:27;;:39;;;;;;;;;;;;;;;:13;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;34280:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34280:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34280:39:0;;-1:-1:-1;;;;;;34341:26:0;;;34336:76;;;34391:5;;34336:76;34449:13;;;:51;;;;;;-1:-1:-1;;;;;34449:51:0;;;;;;;;;;;;34430:16;;34449:13;;;;:37;;:51;;;;;;;;;;;;;;;:13;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;34449:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34449:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34449:51:0;;-1:-1:-1;34536:1:0;34524:13;;;;:53;;-1:-1:-1;34541:12:0;;:32;;;;;;-1:-1:-1;;;;;34541:32:0;;;;;;;;;34576:1;;34541:12;;;;;:20;;:32;;;;;;;;;;;;;;;:12;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;34541:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34541:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34541:32:0;:36;34524:53;34519:129;;;-1:-1:-1;34610:15:0;:22;34519:129;34681:8;34672:1;34676;34672:5;34671:18;34666:69;;;34711:8;;;34666:69;34758:36;;;;;;:16;:36;;;;-1:-1:-1;;;;;34758:36:0;;;;;;;;:24;;;;:36;;;;;;;;;;;;;;:24;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;34758:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34758:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34758:36:0;34753:731;;;34818:22;34884:3;34863:15;34879:1;34863:18;;;;;;;;;;;;;;;;;;34843:17;:38;:44;;;;;;;-1:-1:-1;;;;;34936:32:0;;;;;;:20;:32;;;;;:45;;;34843:44;;;;-1:-1:-1;34913:68:0;;:128;;;;-1:-1:-1;;;;;;34985:32:0;;;;;;:20;:32;;;;;:45;;;35033:8;-1:-1:-1;34913:128:0;34908:299;;;-1:-1:-1;;;;;35105:32:0;;;;;;:20;:32;;;;;:45;;;35184:3;;35159:20;;35105:51;;:74;;;;;;;;35086:14;:95;:101;;;;;;;;35069:118;;34908:299;35286:1;35234:60;;35264:14;35252:10;-1:-1:-1;;;;;35234:60:0;;35290:3;35234:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35313:32:0;;;;;;;:20;:32;;;;;;:50;;:68;;;;;;35400:14;;:68;;;;;;;;;;;;;;;;;;;;:14;;;:40;;:68;;;;;35313:32;35400:68;;;;;;35313:32;35400:14;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;35400:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35400:68:0;;;;34753:731;;34195:1300;;34244:3;;34195:1300;;;-1:-1:-1;35627:12:0;;:49;;;;;;35654:10;35627:49;;;;;;;;;;;;35509:11;;35535:22;;;;-1:-1:-1;;;;;35627:12:0;;;;:25;;:49;;;;;35509:11;;35627:49;;;;;;;;:12;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;35627:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35627:49:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;35627:49:0;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;35627:49:0;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;0:373;;35627:49:0;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;-1:-1;35603:73:0;;-1:-1:-1;35603:73:0;;-1:-1:-1;35627:49:0;;-1:-1:-1;35693:6:0;;-1:-1:-1;;;;35687:592:0;35709:3;35705:1;:7;35687:592;;;35742:8;;35762:3;;35742:5;;35748:1;;35742:8;;;;;;;;;;;;;;-1:-1:-1;;;;;35742:24:0;;35737:76;;;35788:8;;35737:76;35844:1;35840;35834:3;:7;:11;35829:283;;;35924:12;;35945:8;;-1:-1:-1;;;;;35924:12:0;;;;:20;;35945:5;;35951:1;;35945:8;;;;;;;;;;;;;;35924:30;;;;;;;;;;;;;-1:-1:-1;;;;;35924:30:0;-1:-1:-1;;;;;35924:30:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35924:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35924:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35924:30:0;35900:10;;35919:2;:35;;;35872:89;;;35900:10;;35908:1;;35900:10;;;;;;;;;;;;;;35890:5;35896:1;35890:8;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35872:89:0;;35957:3;35872:89;;;;;;;;;;;;;;;;;;35829:283;;;36059:12;;36080:8;;-1:-1:-1;;;;;36059:12:0;;;;:20;;36080:5;;36086:1;;36080:8;;;;;;;;;;;;;;36059:30;;;;;;;;;;;;;-1:-1:-1;;;;;36059:30:0;-1:-1:-1;;;;;36059:30:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36059:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36059:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36059:30:0;36035:10;;36054:2;:35;;;36007:89;;;36035:10;;36043:1;;36035:10;;;;;;;;;;;;;;36025:5;36031:1;36025:8;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36007:89:0;;36092:3;36007:89;;;;;;;;;;;;;;;;;;35829:283;36180:7;36188:1;36180:10;;;;;;;;;;;;;;;;;;36128:16;:20;;:30;36149:5;36155:1;36149:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36128:30:0;;;;;;;;;;;;;;-1:-1:-1;36128:30:0;:48;;:62;;;;;;;;36205:14;;36246:8;;36205:14;;;:40;;36246:5;;36252:1;;36246:8;;;;;;;;;;;;;;36256:7;36264:1;36256:10;;;;;;;;;;;;;;;;;;36205:62;;;;;;;;;;;;;-1:-1:-1;;;;;36205:62:0;-1:-1:-1;;;;;36205:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36205:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36205:62:0;;;;35687:592;35714:3;;35687:592;;;;29476:1;;;;;;;;;;;;29259;;32585:3701::o;24371:480::-;-1:-1:-1;;;;;24439:15:0;24468:1;24439:15;;;:8;;;;:15;;;;;:30;;;24480:28;;;:32;;;24523:35;;;:39;;;24573:34;;;:38;;;-1:-1:-1;24622:31:0;;:35;;;24711:33;;;:37;;;24759:33;;;:37;24807:32;;:36;;-1:-1:-1;;24807:36:0;;;24371:480::o;27050:13181::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://0f04b849a70e5f5d0d7a90a0509646c167d6517a926f4284bed71c404ddf816e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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