ETH Price: $3,046.43 (+2.81%)
Gas: 2 Gwei

Contract

0x6d4526d49558258658eEcfF53822c8D9FD3408E4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
Value
Buy New Level134567542021-10-20 20:43:23990 days ago1634762603IN
0x6d4526d4...9FD3408E4
0.1 ETH0.01394265114
Buy New Level134567042021-10-20 20:29:05990 days ago1634761745IN
0x6d4526d4...9FD3408E4
0.05 ETH0.01992365134
Buy New Level119781542021-03-05 11:59:561219 days ago1614945596IN
0x6d4526d4...9FD3408E4
0.05 ETH0.02170383115
Buy New Level119781472021-03-05 11:57:591219 days ago1614945479IN
0x6d4526d4...9FD3408E4
0.05 ETH0.01410374116
Registration Ext119780962021-03-05 11:45:591219 days ago1614944759IN
0x6d4526d4...9FD3408E4
0.05 ETH0.05091593119
Registration Ext115978762021-01-06 0:37:501278 days ago1609893470IN
0x6d4526d4...9FD3408E4
0.05 ETH0.04475742124
Buy New Level115248322020-12-25 19:58:401289 days ago1608926320IN
0x6d4526d4...9FD3408E4
0.05 ETH0.0064194447
Registration Ext115204402020-12-25 3:57:421289 days ago1608868662IN
0x6d4526d4...9FD3408E4
0.05 ETH0.04582801111
Buy New Level114790342020-12-18 19:26:491296 days ago1608319609IN
0x6d4526d4...9FD3408E4
0.4 ETH0.0055928646
Buy New Level114790322020-12-18 19:26:411296 days ago1608319601IN
0x6d4526d4...9FD3408E4
0.2 ETH0.0062007851
Buy New Level114790252020-12-18 19:24:361296 days ago1608319476IN
0x6d4526d4...9FD3408E4
0.1 ETH0.001183248
Buy New Level114790252020-12-18 19:24:361296 days ago1608319476IN
0x6d4526d4...9FD3408E4
0.8 ETH0.0074769746
Buy New Level114790252020-12-18 19:24:361296 days ago1608319476IN
0x6d4526d4...9FD3408E4
0.1 ETH0.0060867246
Buy New Level114790222020-12-18 19:23:101296 days ago1608319390IN
0x6d4526d4...9FD3408E4
0.05 ETH0.005707351
Registration Ext114788262020-12-18 18:40:561296 days ago1608316856IN
0x6d4526d4...9FD3408E4
0.05 ETH0.02037146
Buy New Level114724082020-12-17 18:58:101297 days ago1608231490IN
0x6d4526d4...9FD3408E4
0.4 ETH0.03918129241
Buy New Level114724022020-12-17 18:57:291297 days ago1608231449IN
0x6d4526d4...9FD3408E4
0.2 ETH0.05011388265
Buy New Level114723982020-12-17 18:55:591297 days ago1608231359IN
0x6d4526d4...9FD3408E4
0.1 ETH0.05408438265
Buy New Level114723742020-12-17 18:52:351297 days ago1608231155IN
0x6d4526d4...9FD3408E4
0.05 ETH0.05162675273
Registration Ext114723682020-12-17 18:50:121297 days ago1608231012IN
0x6d4526d4...9FD3408E4
0.05 ETH0.10238695277
Registration Ext114621272020-12-16 5:05:071298 days ago1608095107IN
0x6d4526d4...9FD3408E4
0.05 ETH0.0266154264
Registration Ext114497372020-12-14 7:21:591300 days ago1607930519IN
0x6d4526d4...9FD3408E4
0.05 ETH0.0124933338
Registration Ext114483192020-12-14 2:16:031300 days ago1607912163IN
0x6d4526d4...9FD3408E4
0.05 ETH0.0210552451
Buy New Level114166342020-12-09 4:53:541305 days ago1607489634IN
0x6d4526d4...9FD3408E4
0.1 ETH0.0078341445
Buy New Level114166292020-12-09 4:52:421305 days ago1607489562IN
0x6d4526d4...9FD3408E4
0.05 ETH0.0081823247
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
134567542021-10-20 20:43:23990 days ago1634762603
0x6d4526d4...9FD3408E4
0.09 ETH
134567542021-10-20 20:43:23990 days ago1634762603
0x6d4526d4...9FD3408E4
0.01 ETH
134567042021-10-20 20:29:05990 days ago1634761745
0x6d4526d4...9FD3408E4
0.045 ETH
134567042021-10-20 20:29:05990 days ago1634761745
0x6d4526d4...9FD3408E4
0.005 ETH
119781542021-03-05 11:59:561219 days ago1614945596
0x6d4526d4...9FD3408E4
0.045 ETH
119781542021-03-05 11:59:561219 days ago1614945596
0x6d4526d4...9FD3408E4
0.005 ETH
119781472021-03-05 11:57:591219 days ago1614945479
0x6d4526d4...9FD3408E4
0.045 ETH
119781472021-03-05 11:57:591219 days ago1614945479
0x6d4526d4...9FD3408E4
0.005 ETH
119780962021-03-05 11:45:591219 days ago1614944759
0x6d4526d4...9FD3408E4
0.0225 ETH
119780962021-03-05 11:45:591219 days ago1614944759
0x6d4526d4...9FD3408E4
0.0025 ETH
119780962021-03-05 11:45:591219 days ago1614944759
0x6d4526d4...9FD3408E4
0.0225 ETH
119780962021-03-05 11:45:591219 days ago1614944759
0x6d4526d4...9FD3408E4
0.0025 ETH
115978762021-01-06 0:37:501278 days ago1609893470
0x6d4526d4...9FD3408E4
0.0225 ETH
115978762021-01-06 0:37:501278 days ago1609893470
0x6d4526d4...9FD3408E4
0.0025 ETH
115978762021-01-06 0:37:501278 days ago1609893470
0x6d4526d4...9FD3408E4
0.0225 ETH
115978762021-01-06 0:37:501278 days ago1609893470
0x6d4526d4...9FD3408E4
0.0025 ETH
115248322020-12-25 19:58:401289 days ago1608926320
0x6d4526d4...9FD3408E4
0.045 ETH
115248322020-12-25 19:58:401289 days ago1608926320
0x6d4526d4...9FD3408E4
0.005 ETH
115204402020-12-25 3:57:421289 days ago1608868662
0x6d4526d4...9FD3408E4
0.0225 ETH
115204402020-12-25 3:57:421289 days ago1608868662
0x6d4526d4...9FD3408E4
0.0025 ETH
115204402020-12-25 3:57:421289 days ago1608868662
0x6d4526d4...9FD3408E4
0.0225 ETH
115204402020-12-25 3:57:421289 days ago1608868662
0x6d4526d4...9FD3408E4
0.0025 ETH
114790342020-12-18 19:26:491296 days ago1608319609
0x6d4526d4...9FD3408E4
0.36 ETH
114790342020-12-18 19:26:491296 days ago1608319609
0x6d4526d4...9FD3408E4
0.04 ETH
114790322020-12-18 19:26:411296 days ago1608319601
0x6d4526d4...9FD3408E4
0.18 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SmartContractDondi

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

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

pragma solidity >=0.4.23 <0.7.0;

interface DONDISlotHarvester {
    function register(address user, address referrer) external;
}

contract SmartContractDondi {
    
    // user structure
    struct User {
        uint id;
        address referrer;
        uint partnersCount;
        
        mapping(uint8 => bool) activeX3Levels;
        mapping(uint8 => bool) activeX6Levels;
        
        mapping(uint8 => X3) x3Matrix;
        mapping(uint8 => X6) x6Matrix;
    }

    // x3 matrix
    struct X3 {
        address currentReferrer;
        address[] referrals;
        bool blocked;
        uint reinvestCount;
    }
    
    // x6 matrix
    struct X6 {
        address currentReferrer;
        address[] firstLevelReferrals;
        address[] secondLevelReferrals;
        bool blocked;
        uint reinvestCount;

        address closedPart;
    }

    // slot count
    uint8 public constant LAST_LEVEL = 12;
    
    mapping(address => User) public users;
    mapping(uint => address) public idToAddress;
    mapping(uint => address) public userIds;
    mapping(address => uint) public balances; 

    uint public lastUserId = 2;
    address public owner;
    DONDISlotHarvester public harvester = DONDISlotHarvester(0x7BF87882611c9A0FE92FdAAfFC9Ed0d241305EEe);

    mapping(uint8 => uint) public levelPrice;
    
    // signals
    event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
    event Reinvest(address indexed user, address indexed currentReferrer, address indexed caller, uint8 matrix, uint8 level);
    event Upgrade(address indexed user, address indexed referrer, uint8 matrix, uint8 level);
    event NewUserPlace(address indexed user, address indexed referrer, uint8 matrix, uint8 level, uint8 place);
    event MissedEthReceive(address indexed receiver, address indexed from, uint8 matrix, uint8 level);
    event SentExtraEthDividends(address indexed from, address indexed receiver, uint8 matrix, uint8 level);

    // constructor of SmartContractDondi
    constructor(address ownerAddress) public {
        // initial price(ether) per each slot
        levelPrice[1] = 0.025 ether;

        for (uint8 i = 2; i <= LAST_LEVEL; i++) {
            levelPrice[i] = levelPrice[i-1] * 2;
        }
        
        owner = ownerAddress;
        User memory user = User({
            id: 1,
            referrer: address(0),
            partnersCount: uint(0)
        });
        
        users[ownerAddress] = user;
        idToAddress[1] = ownerAddress;
        
        for (uint8 i = 1; i <= LAST_LEVEL; i++) {
            users[ownerAddress].activeX3Levels[i] = true;
            users[ownerAddress].activeX6Levels[i] = true;
        }
        userIds[1] = ownerAddress;
    }

    // external payable functions
    function() external payable {
        if(msg.data.length == 0) {
            return registration(msg.sender, owner);
        }
        
        registration(msg.sender, bytesToAddress(msg.data));
    }

    function getOwner() external view returns(address) {
        return owner;
    }

    // external payable functions
    function registrationExt(address referrerAddress) external payable {
        registration(msg.sender, referrerAddress);
    }
    
    // external payable functions
    function buyNewLevel(uint8 matrix, uint8 level) external payable {
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        require(matrix == 1 || matrix == 2, "invalid matrix");
        require(msg.value == levelPrice[level], "invalid price");
        require(level > 1 && level <= LAST_LEVEL, "invalid level");

        if (matrix == 1) {
            require(!users[msg.sender].activeX3Levels[level], "level already activated");

            if (users[msg.sender].x3Matrix[level-1].blocked) {
                users[msg.sender].x3Matrix[level-1].blocked = false;
            }
    
            address freeX3Referrer = findFreeX3Referrer(msg.sender, level);
            users[msg.sender].x3Matrix[level].currentReferrer = freeX3Referrer;
            users[msg.sender].activeX3Levels[level] = true;
            updateX3Referrer(msg.sender, freeX3Referrer, level);
            
            emit Upgrade(msg.sender, freeX3Referrer, 1, level);

        } else {
            require(!users[msg.sender].activeX6Levels[level], "level already activated"); 

            if (users[msg.sender].x6Matrix[level-1].blocked) {
                users[msg.sender].x6Matrix[level-1].blocked = false;
            }

            address freeX6Referrer = findFreeX6Referrer(msg.sender, level);
            
            users[msg.sender].activeX6Levels[level] = true;
            updateX6Referrer(msg.sender, freeX6Referrer, level);
            
            emit Upgrade(msg.sender, freeX6Referrer, 2, level);
        }
    }

    // pure functions
    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }

    // private functions - find Ethereum Receiver
    function findEthReceiver(address userAddress, address _from, uint8 matrix, uint8 level) private returns(address, bool) {
        address receiver = userAddress;
        bool isExtraDividends;
        if (matrix == 1) {
            while (true) {
                if (users[receiver].x3Matrix[level].blocked) {
                    emit MissedEthReceive(receiver, _from, 1, level);
                    isExtraDividends = true;
                    receiver = users[receiver].x3Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        } else {
            while (true) {
                if (users[receiver].x6Matrix[level].blocked) {
                    emit MissedEthReceive(receiver, _from, 2, level);
                    isExtraDividends = true;
                    receiver = users[receiver].x6Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        }
    }

    // private functions - send Ethereum Dividends
    function sendETHDividends(address userAddress, address _from, uint8 matrix, uint8 level) private {
        (address receiver, bool isExtraDividends) = findEthReceiver(userAddress, _from, matrix, level);

        // new fee logic
        uint256 sendAmount = levelPrice[level] * 90 / 100;
        uint256 feeAmount = levelPrice[level] * 10 / 100;
        
        
        if (!address(uint160(owner)).send(feeAmount)) {
            address(uint160(owner)).transfer(feeAmount);
        }

        if (!address(uint160(receiver)).send(sendAmount)) {
            return address(uint160(receiver)).transfer(sendAmount);
        }
    
        // if (!address(uint160(receiver)).send(levelPrice[level])) {
        //     return address(uint160(receiver)).transfer(address(this).balance);
        // }
        
        
        if (isExtraDividends) {
            emit SentExtraEthDividends(_from, receiver, matrix, level);
        }
    }

    // user register function
    function registration(address userAddress, address referrerAddress) private {
        require(msg.value == 0.05 ether, "registration cost 0.05");
        require(!isUserExists(userAddress), "user exists");
        require(isUserExists(referrerAddress), "referrer not exists");
        
        uint32 size;
        assembly {
            size := extcodesize(userAddress)
        }
        require(size == 0, "cannot be a contract");
        
        User memory user = User({
            id: lastUserId,
            referrer: referrerAddress,
            partnersCount: 0
        });
        
        users[userAddress] = user;
        idToAddress[lastUserId] = userAddress;
        
        users[userAddress].referrer = referrerAddress;
        
        users[userAddress].activeX3Levels[1] = true; 
        users[userAddress].activeX6Levels[1] = true;
        
        
        userIds[lastUserId] = userAddress;
        lastUserId++;
        
        users[referrerAddress].partnersCount++;

        address freeX3Referrer = findFreeX3Referrer(userAddress, 1);
        users[userAddress].x3Matrix[1].currentReferrer = freeX3Referrer;
        updateX3Referrer(userAddress, freeX3Referrer, 1);

        updateX6Referrer(userAddress, findFreeX6Referrer(userAddress, 1), 1);
        // havest
        harvester.register(userAddress, referrerAddress);
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }

    function updateX3Referrer(address userAddress, address referrerAddress, uint8 level) private {
        users[referrerAddress].x3Matrix[level].referrals.push(userAddress);

        if (users[referrerAddress].x3Matrix[level].referrals.length < 3) {
            emit NewUserPlace(userAddress, referrerAddress, 1, level, uint8(users[referrerAddress].x3Matrix[level].referrals.length));
            return sendETHDividends(referrerAddress, userAddress, 1, level);
        }
        
        emit NewUserPlace(userAddress, referrerAddress, 1, level, 3);
        //close matrix
        users[referrerAddress].x3Matrix[level].referrals = new address[](0);
        if (!users[referrerAddress].activeX3Levels[level+1] && level != LAST_LEVEL) {
            users[referrerAddress].x3Matrix[level].blocked = true;
        }

        //create new one by recursion
        if (referrerAddress != owner) {
            //check referrer active level
            address freeReferrerAddress = findFreeX3Referrer(referrerAddress, level);
            if (users[referrerAddress].x3Matrix[level].currentReferrer != freeReferrerAddress) {
                users[referrerAddress].x3Matrix[level].currentReferrer = freeReferrerAddress;
            }
            
            users[referrerAddress].x3Matrix[level].reinvestCount++;
            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 1, level);
            updateX3Referrer(referrerAddress, freeReferrerAddress, level);
        } else {
            sendETHDividends(owner, userAddress, 1, level);
            users[owner].x3Matrix[level].reinvestCount++;
            emit Reinvest(owner, address(0), userAddress, 1, level);
        }
    }

    function updateX6Referrer(address userAddress, address referrerAddress, uint8 level) private {
        require(users[referrerAddress].activeX6Levels[level], "500. Referrer level is inactive");
        
        if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length < 2) {
            users[referrerAddress].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, referrerAddress, 2, level, uint8(users[referrerAddress].x6Matrix[level].firstLevelReferrals.length));
            
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = referrerAddress;

            if (referrerAddress == owner) {
                return sendETHDividends(referrerAddress, userAddress, 2, level);
            }
            
            address ref = users[referrerAddress].x6Matrix[level].currentReferrer;            
            users[ref].x6Matrix[level].secondLevelReferrals.push(userAddress); 
            
            uint len = users[ref].x6Matrix[level].firstLevelReferrals.length;
            
            if ((len == 2) && 
                (users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) &&
                (users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress)) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }  else if ((len == 1 || len == 2) &&
                    users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 3);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 4);
                }
            } else if (len == 2 && users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }

            return updateX6ReferrerSecondLevel(userAddress, ref, level);
        }
        
        users[referrerAddress].x6Matrix[level].secondLevelReferrals.push(userAddress);

        if (users[referrerAddress].x6Matrix[level].closedPart != address(0)) {
            if ((users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]) &&
                (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] ==
                users[referrerAddress].x6Matrix[level].closedPart)) {

                updateX6(userAddress, referrerAddress, level, true);
                return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
            } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].closedPart) {
                updateX6(userAddress, referrerAddress, level, true);
                return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
            } else {
                updateX6(userAddress, referrerAddress, level, false);
                return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
            }
        }

        if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[1] == userAddress) {
            updateX6(userAddress, referrerAddress, level, false);
            return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
        } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == userAddress) {
            updateX6(userAddress, referrerAddress, level, true);
            return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
        }
        
        if (users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length <= 
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length) {
            updateX6(userAddress, referrerAddress, level, false);
        } else {
            updateX6(userAddress, referrerAddress, level, true);
        }
        
        updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
    }

    function updateX6(address userAddress, address referrerAddress, uint8 level, bool x2) private {
        if (!x2) {
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, users[referrerAddress].x6Matrix[level].firstLevelReferrals[0], 2, level, uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length));
            emit NewUserPlace(userAddress, referrerAddress, 2, level, 2 + uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length));
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = users[referrerAddress].x6Matrix[level].firstLevelReferrals[0];
        } else {
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, users[referrerAddress].x6Matrix[level].firstLevelReferrals[1], 2, level, uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length));
            emit NewUserPlace(userAddress, referrerAddress, 2, level, 4 + uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length));
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = users[referrerAddress].x6Matrix[level].firstLevelReferrals[1];
        }
    }
    
    function updateX6ReferrerSecondLevel(address userAddress, address referrerAddress, uint8 level) private {
        if (users[referrerAddress].x6Matrix[level].secondLevelReferrals.length < 4) {
            return sendETHDividends(referrerAddress, userAddress, 2, level);
        }
        
        address[] memory x6 = users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].firstLevelReferrals;
        
        if (x6.length == 2) {
            if (x6[0] == referrerAddress ||
                x6[1] == referrerAddress) {
                users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].closedPart = referrerAddress;
            } else if (x6.length == 1) {
                if (x6[0] == referrerAddress) {
                    users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].closedPart = referrerAddress;
                }
            }
        }
        
        users[referrerAddress].x6Matrix[level].firstLevelReferrals = new address[](0);
        users[referrerAddress].x6Matrix[level].secondLevelReferrals = new address[](0);
        users[referrerAddress].x6Matrix[level].closedPart = address(0);

        if (!users[referrerAddress].activeX6Levels[level+1] && level != LAST_LEVEL) {
            users[referrerAddress].x6Matrix[level].blocked = true;
        }

        users[referrerAddress].x6Matrix[level].reinvestCount++;
        
        if (referrerAddress != owner) {
            address freeReferrerAddress = findFreeX6Referrer(referrerAddress, level);

            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 2, level);
            updateX6Referrer(referrerAddress, freeReferrerAddress, level);
        } else {
            emit Reinvest(owner, address(0), userAddress, 2, level);
            sendETHDividends(owner, userAddress, 2, level);
        }
    }

    // public views - check user
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }

    // public views - get user matrix
    function usersX3Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, bool) {
        return (users[userAddress].x3Matrix[level].currentReferrer,
                users[userAddress].x3Matrix[level].referrals,
                users[userAddress].x3Matrix[level].blocked);
    }

    function usersX6Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, address[] memory, bool, address) {
        return (users[userAddress].x6Matrix[level].currentReferrer,
                users[userAddress].x6Matrix[level].firstLevelReferrals,
                users[userAddress].x6Matrix[level].secondLevelReferrals,
                users[userAddress].x6Matrix[level].blocked,
                users[userAddress].x6Matrix[level].closedPart);
    }

    function usersActiveX3Levels(address userAddress, uint8 level) external view returns(bool) {
        return users[userAddress].activeX3Levels[level];
    }

    function usersActiveX6Levels(address userAddress, uint8 level) external view returns(bool) {
        return users[userAddress].activeX6Levels[level];
    }

    function findFreeX3Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeX3Levels[level]) {
                return users[userAddress].referrer;
            }
            userAddress = users[userAddress].referrer;
        }
    }
    
    function findFreeX6Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeX6Levels[level]) {
                return users[userAddress].referrer;
            }
            userAddress = users[userAddress].referrer;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"MissedEthReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"place","type":"uint8"}],"name":"NewUserPlace","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"currentReferrer","type":"address"},{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"SentExtraEthDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Upgrade","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"LAST_LEVEL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"matrix","type":"uint8"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"buyNewLevel","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findFreeX3Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findFreeX6Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"harvester","outputs":[{"internalType":"contract DONDISlotHarvester","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"levelPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"registrationExt","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIds","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"partnersCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveX3Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveX6Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersX3Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersX6Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

60806040526002600455600680546001600160a01b031916737bf87882611c9a0fe92fdaaffc9ed0d241305eee1790553480156200003c57600080fd5b5060405162002fad38038062002fad833981810160405260208110156200006257600080fd5b5051600160005260076020526658d15e176280007fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285560025b600c60ff821611620000d75760ff600019820181166000908152600760205260408082205492841682529020600290910290556001016200009b565b50600580546001600160a01b0319166001600160a01b038316179055620000fd6200023f565b50604080516060810182526001808252600060208084018281528486018381526001600160a01b038881168086528585529785208751815592518387018054919092166001600160a01b0319918216179091559051600290920191909155918390528290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054909116909317909255905b600c60ff821611620001ee576001600160a01b03831660009081526020818152604080832060ff851684526003810183528184208054600160ff19918216811790925560049092019093529220805490921681179091550162000190565b5050600160005260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b0319166001600160a01b039290921691909117905562000269565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b612d3480620002796000396000f3fe6080604052600436106101145760003560e01c806383ba31b2116100a0578063b2f7543a11610064578063b2f7543a14610558578063be389d5714610594578063e06e8dbd146105bc578063ecabdf79146105f8578063fa45323d1461062557610114565b806383ba31b214610333578063893d20e8146103dc5780638da5cb5b146103f15780639cc102fc14610406578063a87430ba146104ff57610114565b8063348d4487116100e7578063348d4487146102865780634635fd681461029b5780634bdaeac1146102c5578063509222cd146102da578063797eee241461030d57610114565b806307279e2a1461018057806327e235e3146101d057806329c70400146102155780632a2d0c4714610240575b36610135576005546101309033906001600160a01b0316610661565b61017e565b61017e336101796000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109c192505050565b610661565b005b34801561018c57600080fd5b506101bc600480360360408110156101a357600080fd5b5080356001600160a01b0316906020013560ff166109c8565b604080519115158252519081900360200190f35b3480156101dc57600080fd5b50610203600480360360208110156101f357600080fd5b50356001600160a01b03166109fc565b60408051918252519081900360200190f35b34801561022157600080fd5b5061022a610a0e565b6040805160ff9092168252519081900360200190f35b34801561024c57600080fd5b5061026a6004803603602081101561026357600080fd5b5035610a13565b604080516001600160a01b039092168252519081900360200190f35b34801561029257600080fd5b50610203610a2e565b3480156102a757600080fd5b5061026a600480360360208110156102be57600080fd5b5035610a34565b3480156102d157600080fd5b5061026a610a4f565b3480156102e657600080fd5b506101bc600480360360208110156102fd57600080fd5b50356001600160a01b0316610a5e565b61017e6004803603602081101561032357600080fd5b50356001600160a01b0316610a7b565b34801561033f57600080fd5b5061036f6004803603604081101561035657600080fd5b5080356001600160a01b0316906020013560ff16610a88565b604080516001600160a01b0385168152821515918101919091526060602080830182815285519284019290925284516080840191868101910280838360005b838110156103c65781810151838201526020016103ae565b5050505090500194505050505060405180910390f35b3480156103e857600080fd5b5061026a610b35565b3480156103fd57600080fd5b5061026a610b45565b34801561041257600080fd5b506104426004803603604081101561042957600080fd5b5080356001600160a01b0316906020013560ff16610b54565b604080516001600160a01b03808816825284151560608301528316608082015260a060208083018281528851928401929092528751929391929184019160c0850191898101910280838360005b838110156104a757818101518382015260200161048f565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156104e65781810151838201526020016104ce565b5050505090500197505050505050505060405180910390f35b34801561050b57600080fd5b506105326004803603602081101561052257600080fd5b50356001600160a01b0316610c73565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b34801561056457600080fd5b506101bc6004803603604081101561057b57600080fd5b5080356001600160a01b0316906020013560ff16610c9d565b61017e600480360360408110156105aa57600080fd5b5060ff81358116916020013516610ccc565b3480156105c857600080fd5b5061026a600480360360408110156105df57600080fd5b5080356001600160a01b0316906020013560ff16611107565b34801561060457600080fd5b506102036004803603602081101561061b57600080fd5b503560ff16611193565b34801561063157600080fd5b5061026a6004803603604081101561064857600080fd5b5080356001600160a01b0316906020013560ff166111a5565b3466b1a2bc2ec50000146106b5576040805162461bcd60e51b8152602060048201526016602482015275726567697374726174696f6e20636f737420302e303560501b604482015290519081900360640190fd5b6106be82610a5e565b156106fe576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61070781610a5e565b61074e576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b813b63ffffffff8116156107a0576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b6107a8612be9565b50604080516060810182526004805482526001600160a01b03808616602080850182815260008688018181528b861680835282855289832089518155935160018086018054929099166001600160a01b03199283161789559251600280870191909155895485528387528b852080548316841790558854821688179098558284526003850186528a8420805460ff19908116851790915583855294890186528a842080549095168317909455875483528685528983208054909416179092558554820190955591845283905293822001805484019055909161088b9086906111a5565b6001600160a01b038681166000908152602081815260408083206001808552600590910190925290912080546001600160a01b031916928416929092179091559091506108db9086908390611231565b6108f1856108ea876001611107565b60016115a0565b60065460408051632a99dcd560e21b81526001600160a01b03888116600483015287811660248301529151919092169163aa67735491604480830192600092919082900301818387803b15801561094757600080fd5b505af115801561095b573d6000803e3d6000fd5b5050506001600160a01b0380871660008181526020818152604080832054948a1680845292819020548151908152905194955091937f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a9281900390910190a45050505050565b6014015190565b6001600160a01b03821660009081526020818152604080832060ff8086168552600390910190925290912054165b92915050565b60036020526000908152604090205481565b600c81565b6001602052600090815260409020546001600160a01b031681565b60045481565b6002602052600090815260409020546001600160a01b031681565b6006546001600160a01b031681565b6001600160a01b0316600090815260208190526040902054151590565b610a853382610661565b50565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600590910183528184208054600282015460019092018054855181880281018801909652808652969760609789979390911695919493909316929091849190830182828015610b2157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b03575b505050505091509250925092509250925092565b6005546001600160a01b03165b90565b6005546001600160a01b031681565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600690910183528184208054600382015460058301546001840180548751818a0281018a0190985280885298996060998a998c998a99978416989497600290950196909416949092169291869190830182828015610bfc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bde575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610c5857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c3a575b50505050509250945094509450945094509295509295909350565b60006020819052908152604090208054600182015460029092015490916001600160a01b03169083565b6001600160a01b039190911660009081526020818152604080832060ff94851684526004019091529020541690565b610cd533610a5e565b610d105760405162461bcd60e51b8152600401808060200182810382526023815260200180612cdd6023913960400191505060405180910390fd5b8160ff1660011480610d2557508160ff166002145b610d67576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b60ff81166000908152600760205260409020543414610dbd576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b604482015290519081900360640190fd5b60018160ff16118015610dd45750600c60ff821611155b610e15576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081b195d995b609a1b604482015290519081900360640190fd5b8160ff1660011415610fa5573360009081526020818152604080832060ff80861685526003909101909252909120541615610e91576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526005909101909252909120600201541615610eef573360009081526020818152604080832060ff60001986011684526005019091529020600201805460ff191690555b6000610efb33836111a5565b3360008181526020818152604080832060ff8816845260058101835281842080546001600160a01b0319166001600160a01b0388161790556003019091529020805460ff19166001179055909150610f54908284611231565b604080516001815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a350611103565b3360009081526020818152604080832060ff80861685526004909101909252909120541615611015576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526006909101909252909120600301541615611073573360009081526020818152604080832060ff60001986011684526006019091529020600301805460ff191690555b600061107f3383611107565b3360008181526020818152604080832060ff881684526004019091529020805460ff191660011790559091506110b69082846115a0565b604080516002815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b5050565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff8087168452600490910190915291902054161561116d57506001600160a01b03808316600090815260208190526040902060010154166109f6565b6001600160a01b039283166000908152602081905260409020600101549092169161110a565b60076020526000908152604090205481565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff8087168452600390910190915291902054161561120b57506001600160a01b03808316600090815260208190526040902060010154166109f6565b6001600160a01b03928316600090815260208190526040902060010154909216916111a8565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600590910183529083206001908101805491820181558085529284200180546001600160a01b031916948816949094179093559190525460031115611309576001600160a01b0380831660008181526020818152604080832060ff8088168086526005909201845293829020600190810154835191825293810191909152919092168183015290519192861691600080516020612c9d8339815191529181900360600190a36113048284600184611f36565b61159b565b604080516001815260ff8316602082015260038183015290516001600160a01b038085169290861691600080516020612c9d8339815191529181900360600190a360408051600080825260208083018085526001600160a01b038716835282825284832060ff87168452600501909152929020905161138e9260019092019190612c13565b506001600160a01b03821660009081526020818152604080832060ff6001860181168552600390910190925290912054161580156113d0575060ff8116600c14155b1561140b576001600160a01b03821660009081526020818152604080832060ff851684526005019091529020600201805460ff191660011790555b6005546001600160a01b0383811691161461151657600061142c83836111a5565b6001600160a01b0384811660009081526020818152604080832060ff881684526005019091529020549192508281169116146114a0576001600160a01b0383811660009081526020818152604080832060ff87168452600501909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380841660008181526020818152604080832060ff881680855260059091018352928190206003018054600190810190915581519081529182019290925281518885169486169392600080516020612cbd833981519152928290030190a4611510838284611231565b5061159b565b60055461152f906001600160a01b031684600184611f36565b600580546001600160a01b0390811660009081526020818152604080832060ff8716808552908601835281842060030180546001908101909155955482519687529286015280518885169593949290921692600080516020612cbd833981519152929081900390910190a45b505050565b6001600160a01b03821660009081526020818152604080832060ff80861685526004909101909252909120541661161e576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915290206001015460021115611b83576001600160a01b0382811660008181526020818152604080832060ff8781168086526006909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988c16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612c9d833981519152916060908290030190a36001600160a01b0383811660009081526020818152604080832060ff86168452600601909152902080546001600160a01b0319168483169081179091556005549091161415611734576113048284600284611f36565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600691820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978b169790971790965591909352015490918114801561180557506001600160a01b0382811660009081526020818152604080832060ff8816845260060190915281206001018054928716929091906117ee57fe5b6000918252602090912001546001600160a01b0316145b801561186157506001600160a01b0382811660009081526020818152604080832060ff8816845260060190915290206001908101805492871692909190811061184a57fe5b6000918252602090912001546001600160a01b0316145b15611926576001600160a01b03841660009081526020818152604080832060ff87168452600601909152902060019081015414156118df57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611921565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a35b611b71565b80600114806119355750806002145b801561198d57506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152812060010180549287169290919061197657fe5b6000918252602090912001546001600160a01b0316145b15611a51576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611a0b57604080516002815260ff8516602082015260038183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611921565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611b71565b806002148015611ab157506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152902060019081018054928716929091908110611a9a57fe5b6000918252602090912001546001600160a01b0316145b15611b71576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611b2f57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611b71565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a35b611b7c8583856120a0565b505061159b565b6001600160a01b0382811660009081526020818152604080832060ff86168085526006909101835290832060028101805460018101825590855292842090920180546001600160a01b031916888616179055909152600501541615611d67576001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600190810180549091908110611c1b57fe5b60009182526020808320909101546001600160a01b038581168452838352604080852060ff87168652600601909352918320600101805492909116929091611c5f57fe5b6000918252602090912001546001600160a01b0316148015611cd457506001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611cbd57fe5b6000918252602090912001546001600160a01b0316145b15611cf157611ce683838360016124ec565b6113048383836120a0565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611d3257fe5b6000918252602090912001546001600160a01b03161415611d5a57611ce683838360016124ec565b611ce683838360006124ec565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152902060019081018054928616929091908110611da557fe5b6000918252602090912001546001600160a01b03161415611dcd57611ce683838360006124ec565b6001600160a01b0382811660009081526020818152604080832060ff861684526006019091528120600101805492861692909190611e0757fe5b6000918252602090912001546001600160a01b03161415611e2f57611ce683838360016124ec565b6001600160a01b03821660009081526020818152604080832060ff851684526006019091528120600190810180548392908110611e6857fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff8616808452600691820183528484206001908101549689168552848452858520918552910190915291812090910180548291908290611ece57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff8616825260060190925290206001015411611f1e57611f1983838360006124ec565b611f2b565b611f2b83838360016124ec565b61159b8383836120a0565b600080611f4586868686612a55565b60ff85166000908152600760205260408082205460055491519496509294506064605a840281900494600a90940204926001600160a01b03909116916108fc841502918491818181858888f19350505050611fd6576005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fd4573d6000803e3d6000fd5b505b6040516001600160a01b0385169083156108fc029084906000818181858888f1935050505061203f576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015612035573d6000803e3d6000fd5b505050505061209a565b8215612095576040805160ff80891682528716602082015281516001600160a01b0380881693908b16927ff0ddc65c0d411f042f723dcfa1b7d13e85a35b7b70761d447c6500411cacf328929081900390910190a35b505050505b50505050565b6001600160a01b03821660009081526020818152604080832060ff85168452600601909152902060020154600411156120e0576113048284600284611f36565b6001600160a01b0380831660009081526020818152604080832060ff8616808552600691820184528285205490951684528383528184209484529390930181529082902060010180548351818402810184019094528084526060939283018282801561217557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612157575b505050505090508051600214156122d257826001600160a01b03168160008151811061219d57fe5b60200260200101516001600160a01b031614806121df5750826001600160a01b0316816001815181106121cc57fe5b60200260200101516001600160a01b0316145b15612241576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790556122d2565b8051600114156122d257826001600160a01b03168160008151811061226257fe5b60200260200101516001600160a01b031614156122d2576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516123169260019092019190612c13565b5060408051600080825260208083018085526001600160a01b038816835282825284832060ff88168452600601909152929020905161235b9260029092019190612c13565b506001600160a01b03831660009081526020818152604080832060ff808716855260068201845282852060050180546001600160a01b03191690556001870181168552600490910190925290912054161580156123bc575060ff8216600c14155b156123f7576001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600301805460ff191660011790555b6001600160a01b0380841660008181526020818152604080832060ff88168452600601909152902060040180546001019055600554909116146124925760006124408484611107565b604080516002815260ff8616602082015281519293506001600160a01b03808916938186169391891692600080516020612cbd83398151915292908290030190a461248c8482856115a0565b5061209a565b600554604080516002815260ff8516602082015281516001600160a01b0380891694600094911692600080516020612cbd833981519152929081900390910190a460055461209a906001600160a01b031685600285611f36565b8061279c576001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001018054829190829061252857fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905290812090910180549091906125aa57fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260060190935291832060010180549183169392881692600080516020612c9d83398151915292600292889291829190829061260a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600601909152812060010180549293881692600080516020612c9d83398151915292600292889282919082906126ba57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600101805490919061275157fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905561209a565b6001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001908101805483929081106127d557fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c891617905595891684528383528484209084520190522081018054909190811061285657fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600601909352918320600190810180549284169493891693600080516020612c9d833981519152936002938993839290919081106128b957fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526006019091528120600190810180549394891693600080516020612c9d833981519152936002938993919283929190811061296e57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600190810180549091908110612a0957fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612b2b575b6001600160a01b03821660009081526020818152604080832060ff808a1685526005909101909252909120600201541615612b1c57604080516001815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600501909152902054166001612b26565b9092509050612be0565b612a67565b6001600160a01b03821660009081526020818152604080832060ff808a1685526006909101909252909120600301541615612b1c57604080516002815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600601909152902054166001612b2b565b94509492505050565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b828054828255906000526020600020908101928215612c68579160200282015b82811115612c6857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612c33565b50612c74929150612c78565b5090565b610b4291905b80821115612c745780546001600160a01b0319168155600101612c7e56fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82a00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a675736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a72315820f5afca515472f4ac650648922750baa40c4ff2043f9a205b1420f46a2366adf264736f6c634300051100320000000000000000000000001912780ca1056fb9b5f3b4c241881f69ed225861

Deployed Bytecode

0x6080604052600436106101145760003560e01c806383ba31b2116100a0578063b2f7543a11610064578063b2f7543a14610558578063be389d5714610594578063e06e8dbd146105bc578063ecabdf79146105f8578063fa45323d1461062557610114565b806383ba31b214610333578063893d20e8146103dc5780638da5cb5b146103f15780639cc102fc14610406578063a87430ba146104ff57610114565b8063348d4487116100e7578063348d4487146102865780634635fd681461029b5780634bdaeac1146102c5578063509222cd146102da578063797eee241461030d57610114565b806307279e2a1461018057806327e235e3146101d057806329c70400146102155780632a2d0c4714610240575b36610135576005546101309033906001600160a01b0316610661565b61017e565b61017e336101796000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109c192505050565b610661565b005b34801561018c57600080fd5b506101bc600480360360408110156101a357600080fd5b5080356001600160a01b0316906020013560ff166109c8565b604080519115158252519081900360200190f35b3480156101dc57600080fd5b50610203600480360360208110156101f357600080fd5b50356001600160a01b03166109fc565b60408051918252519081900360200190f35b34801561022157600080fd5b5061022a610a0e565b6040805160ff9092168252519081900360200190f35b34801561024c57600080fd5b5061026a6004803603602081101561026357600080fd5b5035610a13565b604080516001600160a01b039092168252519081900360200190f35b34801561029257600080fd5b50610203610a2e565b3480156102a757600080fd5b5061026a600480360360208110156102be57600080fd5b5035610a34565b3480156102d157600080fd5b5061026a610a4f565b3480156102e657600080fd5b506101bc600480360360208110156102fd57600080fd5b50356001600160a01b0316610a5e565b61017e6004803603602081101561032357600080fd5b50356001600160a01b0316610a7b565b34801561033f57600080fd5b5061036f6004803603604081101561035657600080fd5b5080356001600160a01b0316906020013560ff16610a88565b604080516001600160a01b0385168152821515918101919091526060602080830182815285519284019290925284516080840191868101910280838360005b838110156103c65781810151838201526020016103ae565b5050505090500194505050505060405180910390f35b3480156103e857600080fd5b5061026a610b35565b3480156103fd57600080fd5b5061026a610b45565b34801561041257600080fd5b506104426004803603604081101561042957600080fd5b5080356001600160a01b0316906020013560ff16610b54565b604080516001600160a01b03808816825284151560608301528316608082015260a060208083018281528851928401929092528751929391929184019160c0850191898101910280838360005b838110156104a757818101518382015260200161048f565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156104e65781810151838201526020016104ce565b5050505090500197505050505050505060405180910390f35b34801561050b57600080fd5b506105326004803603602081101561052257600080fd5b50356001600160a01b0316610c73565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b34801561056457600080fd5b506101bc6004803603604081101561057b57600080fd5b5080356001600160a01b0316906020013560ff16610c9d565b61017e600480360360408110156105aa57600080fd5b5060ff81358116916020013516610ccc565b3480156105c857600080fd5b5061026a600480360360408110156105df57600080fd5b5080356001600160a01b0316906020013560ff16611107565b34801561060457600080fd5b506102036004803603602081101561061b57600080fd5b503560ff16611193565b34801561063157600080fd5b5061026a6004803603604081101561064857600080fd5b5080356001600160a01b0316906020013560ff166111a5565b3466b1a2bc2ec50000146106b5576040805162461bcd60e51b8152602060048201526016602482015275726567697374726174696f6e20636f737420302e303560501b604482015290519081900360640190fd5b6106be82610a5e565b156106fe576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61070781610a5e565b61074e576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b813b63ffffffff8116156107a0576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b6107a8612be9565b50604080516060810182526004805482526001600160a01b03808616602080850182815260008688018181528b861680835282855289832089518155935160018086018054929099166001600160a01b03199283161789559251600280870191909155895485528387528b852080548316841790558854821688179098558284526003850186528a8420805460ff19908116851790915583855294890186528a842080549095168317909455875483528685528983208054909416179092558554820190955591845283905293822001805484019055909161088b9086906111a5565b6001600160a01b038681166000908152602081815260408083206001808552600590910190925290912080546001600160a01b031916928416929092179091559091506108db9086908390611231565b6108f1856108ea876001611107565b60016115a0565b60065460408051632a99dcd560e21b81526001600160a01b03888116600483015287811660248301529151919092169163aa67735491604480830192600092919082900301818387803b15801561094757600080fd5b505af115801561095b573d6000803e3d6000fd5b5050506001600160a01b0380871660008181526020818152604080832054948a1680845292819020548151908152905194955091937f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a9281900390910190a45050505050565b6014015190565b6001600160a01b03821660009081526020818152604080832060ff8086168552600390910190925290912054165b92915050565b60036020526000908152604090205481565b600c81565b6001602052600090815260409020546001600160a01b031681565b60045481565b6002602052600090815260409020546001600160a01b031681565b6006546001600160a01b031681565b6001600160a01b0316600090815260208190526040902054151590565b610a853382610661565b50565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600590910183528184208054600282015460019092018054855181880281018801909652808652969760609789979390911695919493909316929091849190830182828015610b2157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b03575b505050505091509250925092509250925092565b6005546001600160a01b03165b90565b6005546001600160a01b031681565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600690910183528184208054600382015460058301546001840180548751818a0281018a0190985280885298996060998a998c998a99978416989497600290950196909416949092169291869190830182828015610bfc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bde575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610c5857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c3a575b50505050509250945094509450945094509295509295909350565b60006020819052908152604090208054600182015460029092015490916001600160a01b03169083565b6001600160a01b039190911660009081526020818152604080832060ff94851684526004019091529020541690565b610cd533610a5e565b610d105760405162461bcd60e51b8152600401808060200182810382526023815260200180612cdd6023913960400191505060405180910390fd5b8160ff1660011480610d2557508160ff166002145b610d67576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b60ff81166000908152600760205260409020543414610dbd576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b604482015290519081900360640190fd5b60018160ff16118015610dd45750600c60ff821611155b610e15576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081b195d995b609a1b604482015290519081900360640190fd5b8160ff1660011415610fa5573360009081526020818152604080832060ff80861685526003909101909252909120541615610e91576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526005909101909252909120600201541615610eef573360009081526020818152604080832060ff60001986011684526005019091529020600201805460ff191690555b6000610efb33836111a5565b3360008181526020818152604080832060ff8816845260058101835281842080546001600160a01b0319166001600160a01b0388161790556003019091529020805460ff19166001179055909150610f54908284611231565b604080516001815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a350611103565b3360009081526020818152604080832060ff80861685526004909101909252909120541615611015576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526006909101909252909120600301541615611073573360009081526020818152604080832060ff60001986011684526006019091529020600301805460ff191690555b600061107f3383611107565b3360008181526020818152604080832060ff881684526004019091529020805460ff191660011790559091506110b69082846115a0565b604080516002815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b5050565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff8087168452600490910190915291902054161561116d57506001600160a01b03808316600090815260208190526040902060010154166109f6565b6001600160a01b039283166000908152602081905260409020600101549092169161110a565b60076020526000908152604090205481565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff8087168452600390910190915291902054161561120b57506001600160a01b03808316600090815260208190526040902060010154166109f6565b6001600160a01b03928316600090815260208190526040902060010154909216916111a8565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600590910183529083206001908101805491820181558085529284200180546001600160a01b031916948816949094179093559190525460031115611309576001600160a01b0380831660008181526020818152604080832060ff8088168086526005909201845293829020600190810154835191825293810191909152919092168183015290519192861691600080516020612c9d8339815191529181900360600190a36113048284600184611f36565b61159b565b604080516001815260ff8316602082015260038183015290516001600160a01b038085169290861691600080516020612c9d8339815191529181900360600190a360408051600080825260208083018085526001600160a01b038716835282825284832060ff87168452600501909152929020905161138e9260019092019190612c13565b506001600160a01b03821660009081526020818152604080832060ff6001860181168552600390910190925290912054161580156113d0575060ff8116600c14155b1561140b576001600160a01b03821660009081526020818152604080832060ff851684526005019091529020600201805460ff191660011790555b6005546001600160a01b0383811691161461151657600061142c83836111a5565b6001600160a01b0384811660009081526020818152604080832060ff881684526005019091529020549192508281169116146114a0576001600160a01b0383811660009081526020818152604080832060ff87168452600501909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380841660008181526020818152604080832060ff881680855260059091018352928190206003018054600190810190915581519081529182019290925281518885169486169392600080516020612cbd833981519152928290030190a4611510838284611231565b5061159b565b60055461152f906001600160a01b031684600184611f36565b600580546001600160a01b0390811660009081526020818152604080832060ff8716808552908601835281842060030180546001908101909155955482519687529286015280518885169593949290921692600080516020612cbd833981519152929081900390910190a45b505050565b6001600160a01b03821660009081526020818152604080832060ff80861685526004909101909252909120541661161e576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915290206001015460021115611b83576001600160a01b0382811660008181526020818152604080832060ff8781168086526006909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988c16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612c9d833981519152916060908290030190a36001600160a01b0383811660009081526020818152604080832060ff86168452600601909152902080546001600160a01b0319168483169081179091556005549091161415611734576113048284600284611f36565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600691820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978b169790971790965591909352015490918114801561180557506001600160a01b0382811660009081526020818152604080832060ff8816845260060190915281206001018054928716929091906117ee57fe5b6000918252602090912001546001600160a01b0316145b801561186157506001600160a01b0382811660009081526020818152604080832060ff8816845260060190915290206001908101805492871692909190811061184a57fe5b6000918252602090912001546001600160a01b0316145b15611926576001600160a01b03841660009081526020818152604080832060ff87168452600601909152902060019081015414156118df57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611921565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a35b611b71565b80600114806119355750806002145b801561198d57506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152812060010180549287169290919061197657fe5b6000918252602090912001546001600160a01b0316145b15611a51576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611a0b57604080516002815260ff8516602082015260038183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611921565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611b71565b806002148015611ab157506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152902060019081018054928716929091908110611a9a57fe5b6000918252602090912001546001600160a01b0316145b15611b71576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611b2f57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a3611b71565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612c9d8339815191529181900360600190a35b611b7c8583856120a0565b505061159b565b6001600160a01b0382811660009081526020818152604080832060ff86168085526006909101835290832060028101805460018101825590855292842090920180546001600160a01b031916888616179055909152600501541615611d67576001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600190810180549091908110611c1b57fe5b60009182526020808320909101546001600160a01b038581168452838352604080852060ff87168652600601909352918320600101805492909116929091611c5f57fe5b6000918252602090912001546001600160a01b0316148015611cd457506001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611cbd57fe5b6000918252602090912001546001600160a01b0316145b15611cf157611ce683838360016124ec565b6113048383836120a0565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611d3257fe5b6000918252602090912001546001600160a01b03161415611d5a57611ce683838360016124ec565b611ce683838360006124ec565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152902060019081018054928616929091908110611da557fe5b6000918252602090912001546001600160a01b03161415611dcd57611ce683838360006124ec565b6001600160a01b0382811660009081526020818152604080832060ff861684526006019091528120600101805492861692909190611e0757fe5b6000918252602090912001546001600160a01b03161415611e2f57611ce683838360016124ec565b6001600160a01b03821660009081526020818152604080832060ff851684526006019091528120600190810180548392908110611e6857fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff8616808452600691820183528484206001908101549689168552848452858520918552910190915291812090910180548291908290611ece57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff8616825260060190925290206001015411611f1e57611f1983838360006124ec565b611f2b565b611f2b83838360016124ec565b61159b8383836120a0565b600080611f4586868686612a55565b60ff85166000908152600760205260408082205460055491519496509294506064605a840281900494600a90940204926001600160a01b03909116916108fc841502918491818181858888f19350505050611fd6576005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fd4573d6000803e3d6000fd5b505b6040516001600160a01b0385169083156108fc029084906000818181858888f1935050505061203f576040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015612035573d6000803e3d6000fd5b505050505061209a565b8215612095576040805160ff80891682528716602082015281516001600160a01b0380881693908b16927ff0ddc65c0d411f042f723dcfa1b7d13e85a35b7b70761d447c6500411cacf328929081900390910190a35b505050505b50505050565b6001600160a01b03821660009081526020818152604080832060ff85168452600601909152902060020154600411156120e0576113048284600284611f36565b6001600160a01b0380831660009081526020818152604080832060ff8616808552600691820184528285205490951684528383528184209484529390930181529082902060010180548351818402810184019094528084526060939283018282801561217557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612157575b505050505090508051600214156122d257826001600160a01b03168160008151811061219d57fe5b60200260200101516001600160a01b031614806121df5750826001600160a01b0316816001815181106121cc57fe5b60200260200101516001600160a01b0316145b15612241576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790556122d2565b8051600114156122d257826001600160a01b03168160008151811061226257fe5b60200260200101516001600160a01b031614156122d2576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516123169260019092019190612c13565b5060408051600080825260208083018085526001600160a01b038816835282825284832060ff88168452600601909152929020905161235b9260029092019190612c13565b506001600160a01b03831660009081526020818152604080832060ff808716855260068201845282852060050180546001600160a01b03191690556001870181168552600490910190925290912054161580156123bc575060ff8216600c14155b156123f7576001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600301805460ff191660011790555b6001600160a01b0380841660008181526020818152604080832060ff88168452600601909152902060040180546001019055600554909116146124925760006124408484611107565b604080516002815260ff8616602082015281519293506001600160a01b03808916938186169391891692600080516020612cbd83398151915292908290030190a461248c8482856115a0565b5061209a565b600554604080516002815260ff8516602082015281516001600160a01b0380891694600094911692600080516020612cbd833981519152929081900390910190a460055461209a906001600160a01b031685600285611f36565b8061279c576001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001018054829190829061252857fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905290812090910180549091906125aa57fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260060190935291832060010180549183169392881692600080516020612c9d83398151915292600292889291829190829061260a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600601909152812060010180549293881692600080516020612c9d83398151915292600292889282919082906126ba57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600101805490919061275157fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905561209a565b6001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001908101805483929081106127d557fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c891617905595891684528383528484209084520190522081018054909190811061285657fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600601909352918320600190810180549284169493891693600080516020612c9d833981519152936002938993839290919081106128b957fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526006019091528120600190810180549394891693600080516020612c9d833981519152936002938993919283929190811061296e57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600190810180549091908110612a0957fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612b2b575b6001600160a01b03821660009081526020818152604080832060ff808a1685526005909101909252909120600201541615612b1c57604080516001815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600501909152902054166001612b26565b9092509050612be0565b612a67565b6001600160a01b03821660009081526020818152604080832060ff808a1685526006909101909252909120600301541615612b1c57604080516002815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600601909152902054166001612b2b565b94509492505050565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b828054828255906000526020600020908101928215612c68579160200282015b82811115612c6857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612c33565b50612c74929150612c78565b5090565b610b4291905b80821115612c745780546001600160a01b0319168155600101612c7e56fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82a00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a675736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a72315820f5afca515472f4ac650648922750baa40c4ff2043f9a205b1420f46a2366adf264736f6c63430005110032

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

0000000000000000000000001912780ca1056fb9b5f3b4c241881f69ed225861

-----Decoded View---------------
Arg [0] : ownerAddress (address): 0x1912780CA1056fB9B5f3B4C241881f69Ed225861

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001912780ca1056fb9b5f3b4c241881f69ed225861


Deployed Bytecode Sourcemap

138:20759:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:8;2929:90;;3001:5;;2976:31;;2989:10;;-1:-1:-1;;;;;3001:5:0;2976:12;:31::i;:::-;2969:38;;2929:90;3039:50;3052:10;3064:24;3079:8;;3064:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3064:14:0;;-1:-1:-1;;;3064:24:0:i;:::-;3039:12;:50::i;:::-;138:20759;19882:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19882:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19882:157:0;;-1:-1:-1;;;;;19882:157:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1115:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1115:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1115:40:0;-1:-1:-1;;;;;1115:40:0;;:::i;:::-;;;;;;;;;;;;;;;;925:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;925:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1019:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1019:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1019:43:0;;:::i;:::-;;;;-1:-1:-1;;;;;1019:43:0;;;;;;;;;;;;;;1165:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:26:0;;;:::i;1069:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1069:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1069:39:0;;:::i;1225:100::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1225:100:0;;;:::i;18910:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18910:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18910:110:0;-1:-1:-1;;;;;18910:110:0;;:::i;3230:127::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3230:127:0;-1:-1:-1;;;;;3230:127:0;;:::i;19067:312::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19067:312:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19067:312:0;;-1:-1:-1;;;;;19067:312:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;19067:312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19067:312:0;;;;;;;;;;;;;;;;;;;3105:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3105:82:0;;;:::i;1198:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1198:20:0;;;:::i;19387:487::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19387:487:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19387:487:0;;-1:-1:-1;;;;;19387:487:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;19387:487:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19387:487:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19387:487:0;;;;;;;;;;;;;;;;;;;;;;975:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;975:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;975:37:0;-1:-1:-1;;;;;975:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;975:37:0;;;;;;;;;;;;;;;;;;;;20047:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20047:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20047:157:0;;-1:-1:-1;;;;;20047:157:0;;;;;;;;:::i;3404:1571::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3404:1571:0;;;;;;;;;;;:::i;20559:335::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20559:335:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20559:335:0;;-1:-1:-1;;;;;20559:335:0;;;;;;;;:::i;1334:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1334:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1334:40:0;;;;:::i;20212:335::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20212:335:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20212:335:0;;-1:-1:-1;;;;;20212:335:0;;;;;;;;:::i;7352:1502::-;7447:9;7460:10;7447:23;7439:58;;;;;-1:-1:-1;;;7439:58:0;;;;;;;;;;;;-1:-1:-1;;;7439:58:0;;;;;;;;;;;;;;;7517:25;7530:11;7517:12;:25::i;:::-;7516:26;7508:50;;;;;-1:-1:-1;;;7508:50:0;;;;;;;;;;;;-1:-1:-1;;;7508:50:0;;;;;;;;;;;;;;;7577:29;7590:15;7577:12;:29::i;:::-;7569:61;;;;;-1:-1:-1;;;7569:61:0;;;;;;;;;;;;-1:-1:-1;;;7569:61:0;;;;;;;;;;;;;;;7705:24;;7758:9;;;;7750:42;;;;;-1:-1:-1;;;7750:42:0;;;;;;;;;;;;-1:-1:-1;;;7750:42:0;;;;;;;;;;;;;;;7813:16;;:::i;:::-;-1:-1:-1;7832:117:0;;;;;;;;7856:10;;;7832:117;;-1:-1:-1;;;;;7832:117:0;;;;;;;;;;-1:-1:-1;7832:117:0;;;;;;7970:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7970:25:0;;;;;;;;;;;;;;;;8018:10;;8006:23;;;;;;;;:37;;;;;;;;8064:45;;;;;;;;;8130:36;;;:33;;;:36;;;;;:43;;-1:-1:-1;;8130:43:0;;;;;;;;8185:36;;;:33;;;:36;;;;;:43;;;;;;;;;;8267:10;;8259:19;;;;;;;;:33;;;;;;;;;8303:12;;;;;;;8336:22;;;;;;;;;:36;:38;;;;;;7832:117;;8412:34;;7976:11;;8412:18;:34::i;:::-;-1:-1:-1;;;;;8457:18:0;;;:5;:18;;;;;;;;;;;8485:1;8457:30;;;:27;;;;:30;;;;;;:63;;-1:-1:-1;;;;;;8457:63:0;;;;;;;;;;;;;-1:-1:-1;8531:48:0;;8457:18;;:63;;8531:16;:48::i;:::-;8592:68;8609:11;8622:34;8641:11;8654:1;8622:18;:34::i;:::-;8658:1;8592:16;:68::i;:::-;8690:9;;:48;;;-1:-1:-1;;;8690:48:0;;-1:-1:-1;;;;;8690:48:0;;;;;;;;;;;;;;;;:9;;;;;:18;;:48;;;;;:9;;:48;;;;;;;:9;;:48;;;5:2:-1;;;;30:1;27;20:12;5:2;8690:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;8797:18:0;;;:5;:18;;;;;;;;;;;:21;8754:92;;;8820:22;;;;;;;:25;8754:92;;;;;;;8797:21;;-1:-1:-1;8754:92:0;;;;;;;;;;;;7352:1502;;;;;:::o;5006:158::-;5142:2;5133:12;5127:19;;5104:53::o;19882:157::-;-1:-1:-1;;;;;19991:18:0;;19967:4;19991:18;;;;;;;;;;;:40;;;;;;:33;;;;:40;;;;;;;;19882:157;;;;;:::o;1115:40::-;;;;;;;;;;;;;:::o;925:37::-;960:2;925:37;:::o;1019:43::-;;;;;;;;;;;;-1:-1:-1;;;;;1019:43:0;;:::o;1165:26::-;;;;:::o;1069:39::-;;;;;;;;;;;;-1:-1:-1;;;;;1069:39:0;;:::o;1225:100::-;;;-1:-1:-1;;;;;1225:100:0;;:::o;18910:110::-;-1:-1:-1;;;;;18992:11:0;18967:4;18992:11;;;;;;;;;;:14;:19;;;18910:110::o;3230:127::-;3308:41;3321:10;3333:15;3308:12;:41::i;:::-;3230:127;:::o;19067:312::-;-1:-1:-1;;;;;19196:18:0;;;19144:7;19196:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;19328:42;;;;19196:50;19265:44;;;19188:183;;;;;;;;;;;;;;;;;19144:7;;19153:16;;19144:7;;19196:50;;;;;19265:44;;19328:42;;;;;19188:183;;19265:44;;19188:183;;;19265:44;19188:183;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19188:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19067:312;;;;;:::o;3105:82::-;3174:5;;-1:-1:-1;;;;;3174:5:0;3105:82;;:::o;1198:20::-;;;-1:-1:-1;;;;;1198:20:0;;:::o;19387:487::-;-1:-1:-1;;;;;19543:18:0;;;19464:7;19543:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;19759:42;;;;19820:45;;;;19543:50;19612:54;;19535:331;;;;;;;;;;;;;;;;;19464:7;;19473:16;;;;19464:7;;;;19543:50;;;;19612:54;;19685:55;;;;;19759:42;;;;19820:45;;;;19535:331;19612:54;;19535:331;;;19612:54;19535:331;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19535:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19535:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19387:487;;;;;;;;:::o;975:37::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;975:37:0;;;:::o;20047:157::-;-1:-1:-1;;;;;20156:18:0;;;;20132:4;20156:18;;;;;;;;;;;:40;;;;;;:33;;:40;;;;;;;;20047:157::o;3404:1571::-;3488:24;3501:10;3488:12;:24::i;:::-;3480:72;;;;-1:-1:-1;;;3480:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3571:6;:11;;3581:1;3571:11;:26;;;;3586:6;:11;;3596:1;3586:11;3571:26;3563:53;;;;;-1:-1:-1;;;3563:53:0;;;;;;;;;;;;-1:-1:-1;;;3563:53:0;;;;;;;;;;;;;;;3648:17;;;;;;;:10;:17;;;;;;3635:9;:30;3627:56;;;;;-1:-1:-1;;;3627:56:0;;;;;;;;;;;;-1:-1:-1;;;3627:56:0;;;;;;;;;;;;;;;3710:1;3702:5;:9;;;:32;;;;-1:-1:-1;960:2:0;3715:19;;;;;3702:32;3694:58;;;;;-1:-1:-1;;;3694:58:0;;;;;;;;;;;;-1:-1:-1;;;3694:58:0;;;;;;;;;;;;;;;3769:6;:11;;3779:1;3769:11;3765:1203;;;3812:10;3806:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;3805:40;3797:76;;;;;-1:-1:-1;;;3797:76:0;;;;;;;;;;;;-1:-1:-1;;;3797:76:0;;;;;;;;;;;;;;;3900:10;3894:5;:17;;;;;;;;;;;:35;-1:-1:-1;;3921:7:0;;3894:35;;;;:26;;;;:35;;;;;;:43;;;;3890:135;;;3964:10;4004:5;3958:17;;;;;;;;;;;:35;-1:-1:-1;;3985:7:0;;3958:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;3958:51:0;;;3890:135;4045:22;4070:37;4089:10;4101:5;4070:18;:37::i;:::-;4128:10;4122:5;:17;;;;;;;;;;;:33;;;;;:26;;;:33;;;;;:66;;-1:-1:-1;;;;;;4122:66:0;-1:-1:-1;;;;;4122:66:0;;;;;4203:32;;:39;;;;;:46;;-1:-1:-1;;4203:46:0;-1:-1:-1;4203:46:0;;;4122:66;;-1:-1:-1;4264:51:0;;4122:66;:33;4264:16;:51::i;:::-;4349:45;;;4385:1;4349:45;;;;;;;;;;;-1:-1:-1;;;;;4349:45:0;;;4357:10;;4349:45;;;;;;;;;;;3765:1203;;;;4444:10;4438:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;4437:40;4429:76;;;;;-1:-1:-1;;;4429:76:0;;;;;;;;;;;;-1:-1:-1;;;4429:76:0;;;;;;;;;;;;;;;4533:10;4527:5;:17;;;;;;;;;;;:35;-1:-1:-1;;4554:7:0;;4527:35;;;;:26;;;;:35;;;;;;:43;;;;4523:135;;;4597:10;4637:5;4591:17;;;;;;;;;;;:35;-1:-1:-1;;4618:7:0;;4591:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;4591:51:0;;;4523:135;4674:22;4699:37;4718:10;4730:5;4699:18;:37::i;:::-;4771:10;4765:5;:17;;;;;;;;;;;:39;;;;;:32;;:39;;;;;:46;;-1:-1:-1;;4765:46:0;4807:4;4765:46;;;4674:62;;-1:-1:-1;4826:51:0;;4674:62;4798:5;4826:16;:51::i;:::-;4911:45;;;4947:1;4911:45;;;;;;;;;;;-1:-1:-1;;;;;4911:45:0;;;4919:10;;4911:45;;;;;;;;;;;3765:1203;;3404:1571;;:::o;20559:335::-;20641:7;20661:226;-1:-1:-1;;;;;20699:18:0;;;20693:5;20699:18;;;;;;;;;;;:27;;;;;;20693:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;20689:131;;;-1:-1:-1;;;;;;20777:18:0;;;:5;:18;;;;;;;;;;:27;;;;20770:34;;20689:131;-1:-1:-1;;;;;20848:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;20661:226;;1334:40;;;;;;;;;;;;;:::o;20212:335::-;20294:7;20314:226;-1:-1:-1;;;;;20352:18:0;;;20346:5;20352:18;;;;;;;;;;;:27;;;;;;20346:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;20342:131;;;-1:-1:-1;;;;;;20430:18:0;;;:5;:18;;;;;;;;;;:27;;;;20423:34;;20342:131;-1:-1:-1;;;;;20501:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;20314:226;;8862:1717;-1:-1:-1;;;;;8966:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:48;;;;27:10:-1;;23:18;;;45:23;;8966:66:0;;;;;;;;;-1:-1:-1;;;;;;8966:66:0;;;;;;;;;;;9049:38;;;:55;9107:1;-1:-1:-1;9045:291:0;;;-1:-1:-1;;;;;9130:116:0;;;9189:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;;9173:1;9189:48;;;:55;9130:116;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9130:116:0;;;;;;;;9268:56;9285:15;9302:11;9315:1;9318:5;9268:16;:56::i;:::-;9261:63;;9045:291;9361:55;;;9404:1;9361:55;;;;;;;;;9414:1;9361:55;;;;;;-1:-1:-1;;;;;9361:55:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9361:55:0;;;;;;;;9502:16;;;9516:1;9502:16;;;;;;;;;;-1:-1:-1;;;;;9451:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:67;;;;:48;;;;;9502:16;9451:67;:::i;:::-;-1:-1:-1;;;;;;9534:22:0;;:5;:22;;;;;;;;;;;:46;9578:1;9572:7;;9534:46;;;;:37;;;;:46;;;;;;;;9533:47;:70;;;;-1:-1:-1;9584:19:0;;;960:2;9584:19;;9533:70;9529:156;;;-1:-1:-1;;;;;9620:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;9620:53:0;9669:4;9620:53;;;9529:156;9759:5;;-1:-1:-1;;;;;9740:24:0;;;9759:5;;9740:24;9736:836;;9824:27;9854:42;9873:15;9890:5;9854:18;:42::i;:::-;-1:-1:-1;;;;;9915:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:54;9824:72;;-1:-1:-1;9915:77:0;;;:54;;:77;9911:194;;-1:-1:-1;;;;;10013:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:76;;-1:-1:-1;;;;;;10013:76:0;;;;;;;;;;9911:194;-1:-1:-1;;;;;10133:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;;:52;;:54;;;;;;;;;10207:69;;;;;;;;;;;;;;;;;;;;;10133:22;-1:-1:-1;;;;;;;;;;;10207:69:0;;;;;;;10291:61;10308:15;10325:19;10346:5;10291:16;:61::i;:::-;9736:836;;;;10402:5;;10385:46;;-1:-1:-1;;;;;10402:5:0;10409:11;10402:5;10425;10385:16;:46::i;:::-;10452:5;;;-1:-1:-1;;;;;10452:5:0;;;10446;:12;;;;;;;;;;;:28;;;;;;:21;;;:28;;;;;:42;;:44;;10452:5;10446:44;;;;;;10519:5;;10510:50;;;;;;;;;;;;;;;10446:5;;10519;;;;;-1:-1:-1;;;;;;;;;;;10510:50:0;;;;;;;;;;9736:836;8862:1717;;;:::o;10587:4735::-;-1:-1:-1;;;;;10699:22:0;;:5;:22;;;;;;;;;;;:44;;;;;;:37;;;;:44;;;;;;;;10691:88;;;;;-1:-1:-1;;;10691:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10804:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:65;10872:1;-1:-1:-1;10800:2298:0;;;-1:-1:-1;;;;;10890:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;:58;;;;27:10:-1;;23:18;;;45:23;;10890:76:0;;;;;;;;;;;-1:-1:-1;;;;;;10890:76:0;;;;;;;;;11045:38;;;;:65;;10986:126;;11029:1;10986:126;;;;;;;;;;;;;;;;;;10890:22;;:76;-1:-1:-1;;;;;;;;;;;10986:126:0;;;;;;;;;-1:-1:-1;;;;;11174:18:0;;;:5;:18;;;;;;;;;;;:34;;;;;:27;;:34;;;;;:68;;-1:-1:-1;;;;;;11174:68:0;;;;;;;;;;11282:5;;;;;11263:24;11259:128;;;11315:56;11332:15;11349:11;11362:1;11365:5;11315:16;:56::i;11259:128::-;-1:-1:-1;;;;;11429:22:0;;;11415:11;11429:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;11510:10;;;;;;;;;:26;;;:19;;;:26;;;;;:47;;;;27:10:-1;;11429:54:0;23:18:-1;;;45:23;;11510:65:0;;;;;;;;;;;-1:-1:-1;;;;;;11510:65:0;;;;;;;;;;;11616:26;;;;:46;:53;11429:54;;11703:8;;11702:102;;;;-1:-1:-1;;;;;;11735:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;11735:49:0;:68;11702:102;:193;;;;-1:-1:-1;;;;;;11826:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11826:49:0;:68;11702:193;11698:1313;;;-1:-1:-1;;;;;11920:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;11916:264;;;12020:43;;;12051:1;12020:43;;;;;;;;;12061:1;12020:43;;;;;;-1:-1:-1;;;;;12020:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12020:43:0;;;;;;;;11916:264;;;12117:43;;;12148:1;12117:43;;;;;;;;;12158:1;12117:43;;;;;;-1:-1:-1;;;;;12117:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12117:43:0;;;;;;;;11916:264;11698:1313;;;12207:3;12214:1;12207:8;:20;;;;12219:3;12226:1;12219:8;12207:20;12206:115;;;;-1:-1:-1;;;;;;12253:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;12253:49:0;:68;12206:115;12202:809;;;-1:-1:-1;;;;;12346:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;12342:264;;;12446:43;;;12477:1;12446:43;;;;;;;;;12487:1;12446:43;;;;;;-1:-1:-1;;;;;12446:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12446:43:0;;;;;;;;12342:264;;;12543:43;;;12574:1;12543:43;;;;;;;;;12584:1;12543:43;;;;;;-1:-1:-1;;;;;12543:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12543:43:0;;;;;;;;12202:809;;;12631:3;12638:1;12631:8;:80;;;;-1:-1:-1;;;;;;12643:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12643:49:0;:68;12631:80;12627:384;;;-1:-1:-1;;;;;12736:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;12732:264;;;12836:43;;;12867:1;12836:43;;;;;;;;;12877:1;12836:43;;;;;;-1:-1:-1;;;;;12836:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12836:43:0;;;;;;;;12732:264;;;12933:43;;;12964:1;12933:43;;;;;;;;;12974:1;12933:43;;;;;;-1:-1:-1;;;;;12933:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12933:43:0;;;;;;;;12732:264;13034:52;13062:11;13075:3;13080:5;13034:27;:52::i;:::-;13027:59;;;;10800:2298;-1:-1:-1;;;;;13118:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:59;;;27:10:-1;;39:1;23:18;;45:23;;13118:77:0;;;;;;;;;;;-1:-1:-1;;;;;;13118:77:0;;;;;;;13212:38;;;:49;;;;:63;13208:1082;;-1:-1:-1;;;;;13380:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13297:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;13380:61;13297:58;:61;;13380;;;;;13297:58;;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;13297:61:0;:144;13296:300;;;;-1:-1:-1;;;;;;13546:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;13464:58;;;:61;;13546:49;;;;;13464:58;13546:5;13464:61;;;;;;;;;;;;;;-1:-1:-1;;;;;13464:61:0;:131;13296:300;13292:987;;;13619:51;13628:11;13641:15;13658:5;13665:4;13619:8;:51::i;:::-;13696:64;13724:11;13737:15;13754:5;13696:27;:64::i;13292:987::-;-1:-1:-1;;;;;13869:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;13786:58;;;:61;;13869:49;;;;;13786:58;13869:5;13786:61;;;;;;;;;;;;;;-1:-1:-1;;;;;13786:61:0;:132;13782:497;;;13939:51;13948:11;13961:15;13978:5;13985:4;13939:8;:51::i;13782:497::-;14121:52;14130:11;14143:15;14160:5;14167;14121:8;:52::i;13782:497::-;-1:-1:-1;;;;;14306:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:76;;;;:58;;;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14306:61:0;:76;14302:499;;;14399:52;14408:11;14421:15;14438:5;14445;14399:8;:52::i;14302:499::-;-1:-1:-1;;;;;14559:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:76;;;;:58;;:5;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;14559:61:0;:76;14555:246;;;14652:51;14661:11;14674:15;14691:5;14698:4;14652:8;:51::i;14555:246::-;-1:-1:-1;;;;;14960:22:0;;14954:5;14960:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;14954:5;;14960:58;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14960:61:0;;;14954:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;14960:61;14954:104;;;:111;14831:22;;;;;;;;;;;:38;;;:31;;:38;;;;;;:58;;;:61;;14960;;14831:58;14960:61;;14831;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14831:61:0;14825:68;;;;;;;;;;;;;;;:84;;;;;:77;;:84;;;;;14831:61;14825:104;:111;:240;14821:409;;15082:52;15091:11;15104:15;15121:5;15128;15082:8;:52::i;:::-;14821:409;;;15167:51;15176:11;15189:15;15206:5;15213:4;15167:8;:51::i;:::-;15250:64;15278:11;15291:15;15308:5;15250:27;:64::i;6356:957::-;6465:16;6483:21;6508:50;6524:11;6537:5;6544:6;6552:5;6508:15;:50::i;:::-;6618:17;;;6597:18;6618:17;;;:10;:17;;;;;;;6757:5;;6741:39;;6464:94;;-1:-1:-1;6464:94:0;;-1:-1:-1;6643:3:0;6638:2;6618:22;;:28;;;;6697:2;6677:22;;;:28;;-1:-1:-1;;;;;6757:5:0;;;;6741:39;;;;;6677:28;;6741:39;6597:18;6741:39;6677:28;6757:5;6741:39;;;;;;;6736:116;;6813:5;;6797:43;;-1:-1:-1;;;;;6813:5:0;;;;6797:43;;;;;6830:9;;6813:5;6797:43;6813:5;6797:43;6830:9;6813:5;6797:43;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6797:43:0;6736:116;6869:43;;-1:-1:-1;;;;;6869:31:0;;;:43;;;;;6901:10;;6869:43;;;;6901:10;6869:31;:43;;;;;;;6864:131;;6936:47;;-1:-1:-1;;;;;6936:35:0;;;:47;;;;;6972:10;;6936:47;;;;6972:10;6936:35;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6936:47:0;6929:54;;;;;;6864:131;7203:16;7199:107;;;7241:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7241:53:0;;;;;;;;;;;;;;;;;;;7199:107;6356:957;;;;;;;;;:::o;16959:1909::-;-1:-1:-1;;;;;17078:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:59;;:66;17147:1;-1:-1:-1;17074:166:0;;;17172:56;17189:15;17206:11;17219:1;17222:5;17172:16;:56::i;17074:166::-;-1:-1:-1;;;;;17288:22:0;;;17282:5;17288:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;17282:61;;;;;;;;:77;;;:70;;;;:77;;;;;;17288:54;17282:97;17260:119;;;;;;;;;;;;;;;;;:19;;:119;;;17282:97;17260:119;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17260:119:0;;;;;;;;;;;;;;;;;;;;;;;17404:2;:9;17417:1;17404:14;17400:501;;;17448:15;-1:-1:-1;;;;;17439:24:0;:2;17442:1;17439:5;;;;;;;;;;;;;;-1:-1:-1;;;;;17439:24:0;;:69;;;;17493:15;-1:-1:-1;;;;;17484:24:0;:2;17487:1;17484:5;;;;;;;;;;;;;;-1:-1:-1;;;;;17484:24:0;;17439:69;17435:455;;;-1:-1:-1;;;;;17535:22:0;;;17529:5;17535:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;17529:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;17529:106:0;;;;;;17435:455;;;17661:2;:9;17674:1;17661:14;17657:233;;;17709:15;-1:-1:-1;;;;;17700:24:0;:2;17703:1;17700:5;;;;;;;;;;;;;;-1:-1:-1;;;;;17700:24:0;;17696:179;;;-1:-1:-1;;;;;17755:22:0;;;17749:5;17755:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;17749:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;17749:106:0;;;;;;17696:179;17982:16;;;17996:1;17982:16;;;;;;;;;;-1:-1:-1;;;;;17921:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:77;;;;:58;;;;;17982:16;17921:77;:::i;:::-;-1:-1:-1;18071:16:0;;;18085:1;18071:16;;;;;;;;;;-1:-1:-1;;;;;18009:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:78;;;;:59;;;;;18071:16;18009:78;:::i;:::-;-1:-1:-1;;;;;;18098:22:0;;18158:1;18098:22;;;;;;;;;;;:38;;;;;;:31;;;:38;;;;;:49;;:62;;-1:-1:-1;;;;;;18098:62:0;;;;18216:7;;18178:46;;;;:37;;;;:46;;;;;;;;18177:47;:70;;;;-1:-1:-1;18228:19:0;;;960:2;18228:19;;18177:70;18173:156;;;-1:-1:-1;;;;;18264:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;18264:53:0;18313:4;18264:53;;;18173:156;-1:-1:-1;;;;;18341:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:52;;:54;;;;;;18439:5;;;;;18420:24;18416:445;;18461:27;18491:42;18510:15;18527:5;18491:18;:42::i;:::-;18555:69;;;18615:1;18555:69;;;;;;;;;;;18461:72;;-1:-1:-1;;;;;;18555:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18555:69:0;;;;;;;;18639:61;18656:15;18673:19;18694:5;18639:16;:61::i;:::-;18416:445;;;;18747:5;;18738:50;;;18779:1;18738:50;;;;;;;;;;;-1:-1:-1;;;;;18738:50:0;;;;18762:1;;18747:5;;;-1:-1:-1;;;;;;;;;;;18738:50:0;;;;;;;;;;18820:5;;18803:46;;-1:-1:-1;;;;;18820:5:0;18827:11;18840:1;18843:5;18803:16;:46::i;15330:1617::-;15440:2;15435:1505;;-1:-1:-1;;;;;15465:22:0;;15459:5;15465:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;15459:5;;15465:58;15459:5;;15465:61;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15465:61:0;;;15459:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;15465:61;15459:104;;;27:10:-1;;23:18;;;45:23;;15459:122:0;;;;;;;;;-1:-1:-1;;;;;;15459:122:0;;;;;;;15627:22;;;;;;;;;;;:38;;;:31;:38;;;;;:58;;;:61;;:58;;15465:61;15627;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15712:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;15627:61;15712:58;:61;;15627;;;;15601:218;;;;-1:-1:-1;;;;;;;;;;;15601:218:0;15690:1;;15693:5;;15627:61;;;15712:58;15627:61;;15712;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15712:61:0;15706:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;15712:61;15706:104;:111;15601:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15839:176:0;;;15902:5;15908:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;15839:176;;;;;-1:-1:-1;;;;;;;;;;;15839:176:0;15882:1;;15885:5;;15902;;15908:58;15902:5;;15908:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15908:61:0;15902:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;15908:61;15902:104;:111;15839:176;;;;;;;;;;;;;;;;;15892:1;:122;;;15839:176;;;;;;;;;;;;;;-1:-1:-1;;;;;16116:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:58;;:5;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16063:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;16063:114:0;16116:61;;;;16063:114;;;15435:1505;;;-1:-1:-1;;;;;16216:22:0;;16210:5;16216:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;16210:5;;16216:58;:61;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16216:61:0;;;16210:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;16216:61;16210:104;;;27:10:-1;;23:18;;;45:23;;16210:122:0;;;;;;;;;-1:-1:-1;;;;;;16210:122:0;;;;;;;16378:22;;;;;;;;;;;:38;;;:31;:38;;;:58;;:61;;:58;;16216:61;16378;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16463:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;16378:61;16463:58;;;:61;;16378;;;;16352:218;;;;-1:-1:-1;;;;;;;;;;;16352:218:0;16441:1;;16444:5;;16378:61;;16463:58;;16378:61;16463;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16463:61:0;16457:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;16463:61;16457:104;:111;16352:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16590:176:0;;;16653:5;16659:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;16590:176;;;;;-1:-1:-1;;;;;;;;;;;16590:176:0;16633:1;;16636:5;;16653;;;;16659:58;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16659:61:0;16653:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;16659:61;16653:104;:111;16590:176;;;;;;;;;;;;;;;;;16643:1;:122;;;16590:176;;;;;;;;;;;;;;-1:-1:-1;;;;;16867:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16814:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;16814:114:0;16867:61;;;;16814:114;;;15330:1617;;;;:::o;5223:1073::-;5327:7;;5372:11;5327:7;5440:1;5430:11;;;;5426:863;;;5458:394;-1:-1:-1;;;;;5494:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;5490:347;;;5563:43;;;5597:1;5563:43;;;;;;;;;;;-1:-1:-1;;;;;5563:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5686:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;5648:4;5490:347;;;5790:8;;-1:-1:-1;5800:16:0;-1:-1:-1;5782:35:0;;5490:347;5458:394;;5426:863;-1:-1:-1;;;;;5920:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;5916:347;;;5989:43;;;6023:1;5989:43;;;;;;;;;;;-1:-1:-1;;;;;5989:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6112:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;6074:4;5884:394;;5223:1073;;;;;;;;:::o;138:20759::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;138:20759:0;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;138:20759:0;-1:-1:-1;;;;;138:20759:0;;;;;;;;;;;-1:-1:-1;138:20759:0;;;;;;;-1:-1:-1;138:20759:0;;;-1:-1:-1;138:20759:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;138:20759:0;;;;;;

Swarm Source

bzzr://f5afca515472f4ac650648922750baa40c4ff2043f9a205b1420f46a2366adf2

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.