ETH Price: $2,521.59 (-0.44%)

Contract

0x2Acb7C13974FF91b700c318B18e02014B87eb3b0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Registration Ext112425872020-11-12 11:38:031386 days ago1605181083IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0108702728
Registration Ext112425832020-11-12 11:37:201386 days ago1605181040IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.00957728
Registration Ext112425792020-11-12 11:36:551386 days ago1605181015IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0108373128
Registration Ext112425742020-11-12 11:35:591386 days ago1605180959IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0113528528
Registration Ext112425672020-11-12 11:34:211386 days ago1605180861IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0100072228
Registration Ext112425612020-11-12 11:33:331386 days ago1605180813IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.010847728
Registration Ext112425572020-11-12 11:33:101386 days ago1605180790IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0105264927
Users112423212020-11-12 10:42:331386 days ago1605177753IN
0x2Acb7C13...4B87eb3b0
0 ETH0.0010685844.00000023
Users112423182020-11-12 10:41:531386 days ago1605177713IN
0x2Acb7C13...4B87eb3b0
0 ETH0.0010685844.00000023
Users112423162020-11-12 10:41:321386 days ago1605177692IN
0x2Acb7C13...4B87eb3b0
0 ETH0.0010151541.80000023
Registration Ext112422932020-11-12 10:34:151386 days ago1605177255IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0138994244.00000023
Buy New Level112312322020-11-10 17:47:111388 days ago1605030431IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0030352433
Registration Ext112310982020-11-10 17:21:471388 days ago1605028907IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0154438337
Registration Ext112296832020-11-10 11:57:381388 days ago1605009458IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0097997827
Registration Ext112296782020-11-10 11:55:561388 days ago1605009356IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0100952127
Registration Ext112296742020-11-10 11:55:271388 days ago1605009327IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0098926927
Registration Ext112296672020-11-10 11:53:551388 days ago1605009235IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0096498227
Registration Ext112296612020-11-10 11:53:001388 days ago1605009180IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0104602827
Registration Ext112296572020-11-10 11:52:091388 days ago1605009129IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0108870427
Registration Ext112296522020-11-10 11:51:541388 days ago1605009114IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0092349727
Registration Ext112296432020-11-10 11:49:531388 days ago1605008993IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0104502627
Registration Ext112296362020-11-10 11:48:061388 days ago1605008886IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0102095627
Registration Ext112296322020-11-10 11:46:341388 days ago1605008794IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0096498227
Registration Ext112296282020-11-10 11:45:261388 days ago1605008726IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0104602827
Registration Ext112296232020-11-10 11:44:261388 days ago1605008666IN
0x2Acb7C13...4B87eb3b0
0.04 ETH0.0104820427
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
112425872020-11-12 11:38:031386 days ago1605181083
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425872020-11-12 11:38:031386 days ago1605181083
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425832020-11-12 11:37:201386 days ago1605181040
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425832020-11-12 11:37:201386 days ago1605181040
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425792020-11-12 11:36:551386 days ago1605181015
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425792020-11-12 11:36:551386 days ago1605181015
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425742020-11-12 11:35:591386 days ago1605180959
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425742020-11-12 11:35:591386 days ago1605180959
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425672020-11-12 11:34:211386 days ago1605180861
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425672020-11-12 11:34:211386 days ago1605180861
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425612020-11-12 11:33:331386 days ago1605180813
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425612020-11-12 11:33:331386 days ago1605180813
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425572020-11-12 11:33:101386 days ago1605180790
0x2Acb7C13...4B87eb3b0
0.02 ETH
112425572020-11-12 11:33:101386 days ago1605180790
0x2Acb7C13...4B87eb3b0
0.02 ETH
112422932020-11-12 10:34:151386 days ago1605177255
0x2Acb7C13...4B87eb3b0
0.02 ETH
112422932020-11-12 10:34:151386 days ago1605177255
0x2Acb7C13...4B87eb3b0
0.02 ETH
112312322020-11-10 17:47:111388 days ago1605030431
0x2Acb7C13...4B87eb3b0
0.04 ETH
112310982020-11-10 17:21:471388 days ago1605028907
0x2Acb7C13...4B87eb3b0
0.02 ETH
112310982020-11-10 17:21:471388 days ago1605028907
0x2Acb7C13...4B87eb3b0
0.02 ETH
112296832020-11-10 11:57:381388 days ago1605009458
0x2Acb7C13...4B87eb3b0
0.02 ETH
112296832020-11-10 11:57:381388 days ago1605009458
0x2Acb7C13...4B87eb3b0
0.02 ETH
112296782020-11-10 11:55:561388 days ago1605009356
0x2Acb7C13...4B87eb3b0
0.02 ETH
112296782020-11-10 11:55:561388 days ago1605009356
0x2Acb7C13...4B87eb3b0
0.02 ETH
112296742020-11-10 11:55:271388 days ago1605009327
0x2Acb7C13...4B87eb3b0
0.02 ETH
112296742020-11-10 11:55:271388 days ago1605009327
0x2Acb7C13...4B87eb3b0
0.02 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SpeederXContract

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

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

/** 
*SPDX-License-Identifier: BSD-3-Clause
**/

/**
*
* 
*  $$$$$$\                                      $$\                    $$\   $$\
* $$  __$$\                                     $$ |                   $$ |  $$ |
* $$ /  \__| $$$$$$\   $$$$$$\   $$$$$$\   $$$$$$$ | $$$$$$\   $$$$$$\ \$$\ $$  |
* \$$$$$$\  $$  __$$\ $$  __$$\ $$  __$$\ $$  __$$ |$$  __$$\ $$  __$$\ \$$$$  /
*  \____$$\ $$ /  $$ |$$$$$$$$ |$$$$$$$$ |$$ /  $$ |$$$$$$$$ |$$ |  \__|$$  $$<
* $$\   $$ |$$ |  $$ |$$   ____|$$   ____|$$ |  $$ |$$   ____|$$ |     $$  /\$$\
* \$$$$$$  |$$$$$$$  |\$$$$$$$\ \$$$$$$$\ \$$$$$$$ |\$$$$$$$\ $$ |     $$ /  $$ |
*  \______/ $$  ____/  \_______| \_______| \_______| \_______|\__|     \__|  \__|
*           $$ |
*           $$ |
*           \__|
*
**/

pragma solidity >=0.5.0 <0.6.10;

contract SpeederXContract {
    struct User {
        uint id;
        address referrer;
        uint partnersCount;
        
        mapping(uint8 => bool) activeF1Levels;
        mapping(uint8 => bool) activeF2Levels;
        
        mapping(uint8 => F1) f1Matrix;
        mapping(uint8 => F2) f2Matrix;
    }
    
    struct F1 {
        address currentReferrer;
        address[] referrals;
        bool blocked;
        uint reinvestCount;
    }
    
    struct F2 {
        address currentReferrer;
        address[] firstLevelReferrals;
        address[] secondLevelReferrals;
        bool blocked;
        uint reinvestCount;

        address closedPart;
    }

    uint8 public constant LAST_LEVEL = 13;
    
    mapping(address => User) public users;
    mapping(uint => address) public idToAddress;
    mapping(uint => address) public userIds;
    mapping(address => uint) public reinvestGlobalCount;
    mapping(address => uint) public balances; 

    uint public lastUserId = 2;
    address public owner;
    
    uint internal reentryStatus;
    uint internal constant entryEnabled = 1;
    uint internal constant entryDisabled = 2;
    
    mapping(uint8 => uint) public levelPrice;
    
    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);
    event SentETH(address indexed receiver, uint8 matrix, uint8 level);
    
    modifier blockReEntry() {
        require(reentryStatus != entryDisabled, "Security Block");
        reentryStatus = entryDisabled;
    
        _;
    
        reentryStatus = entryEnabled;
    }
    
    constructor(address ownerAddress) public {
        levelPrice[1] = 0.02 ether;
        for (uint8 i = 2; i <= LAST_LEVEL; i++) {
            levelPrice[i] = levelPrice[i-1] * 2;
        }
        
        reentryStatus = entryEnabled;
        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].activeF1Levels[i] = true;
            users[ownerAddress].activeF2Levels[i] = true;
        }
        
        userIds[1] = ownerAddress;
    }
    
    fallback() external payable blockReEntry(){
        return registration(msg.sender, bytesToAddress(msg.data));
    }
    receive() external payable blockReEntry() {
        return registration(msg.sender, owner);
    }

    function registrationExt(address referrerAddress) external payable blockReEntry() {
        registration(msg.sender, referrerAddress);
    }
    
    function buyNewLevel(uint8 matrix, uint8 startLevel, uint8 endLevel) external payable blockReEntry() {
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        require(matrix == 1 || matrix == 2, "invalid matrix");
        require(startLevel >= 0 && startLevel < LAST_LEVEL, "invalid startLevel");
        require(endLevel > 1 && endLevel <= LAST_LEVEL, "invalid endLevel");

        if(startLevel == 0){
            require(msg.value == levelPrice[endLevel], "invalid price");
            buyNewEachLevel(matrix, endLevel);
        } else {
            uint amount;
            for (uint8 i = startLevel; i <= endLevel; i++) {
                amount += levelPrice[i] ;
            }
            require(msg.value == amount, "invalid many level price");

            for (uint8 i = startLevel; i <= endLevel; i++) {
                buyNewEachLevel(matrix, i);
            }
        }
    } 

    function buyNewEachLevel(uint8 matrix, uint8 level) private {
        if (matrix == 1) {
            require(!users[msg.sender].activeF1Levels[level], "level already activated");

            if (users[msg.sender].f1Matrix[level-1].blocked) {
                users[msg.sender].f1Matrix[level-1].blocked = false;
            }
    
            address freeF1Referrer = findFreeF1Referrer(msg.sender, level);
            users[msg.sender].f1Matrix[level].currentReferrer = freeF1Referrer;
            users[msg.sender].activeF1Levels[level] = true;
            updateF1Referrer(msg.sender, freeF1Referrer, level);
            
            emit Upgrade(msg.sender, freeF1Referrer, 1, level);

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

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

            address freeF2Referrer = findFreeF2Referrer(msg.sender, level);
            
            users[msg.sender].activeF2Levels[level] = true;
            updateF2Referrer(msg.sender, freeF2Referrer, level);
            
            emit Upgrade(msg.sender, freeF2Referrer, 2, level);
        }
    }  
    
    function registration(address userAddress, address referrerAddress) private {
        require(msg.value == 0.04 ether, "registration cost 0.04");
        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].activeF1Levels[1] = true; 
        users[userAddress].activeF2Levels[1] = true;
        
        
        userIds[lastUserId] = userAddress;
        lastUserId++;
        
        users[referrerAddress].partnersCount++;

        address freeF1Referrer = findFreeF1Referrer(userAddress, 1);
        users[userAddress].f1Matrix[1].currentReferrer = freeF1Referrer;
        updateF1Referrer(userAddress, freeF1Referrer, 1);

        updateF2Referrer(userAddress, findFreeF2Referrer(userAddress, 1), 1);
        
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }
    
    function updateF1Referrer(address userAddress, address referrerAddress, uint8 level) private {
        users[referrerAddress].f1Matrix[level].referrals.push(userAddress);

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

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

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

            if (referrerAddress == owner) {
                return sendETHDividends(referrerAddress, userAddress, 2, level);
            }
            
            address ref = users[referrerAddress].f2Matrix[level].currentReferrer;            
            users[ref].f2Matrix[level].secondLevelReferrals.push(userAddress); 
            
            uint len = users[ref].f2Matrix[level].firstLevelReferrals.length;
            
            if ((len == 2) && 
                (users[ref].f2Matrix[level].firstLevelReferrals[0] == referrerAddress) &&
                (users[ref].f2Matrix[level].firstLevelReferrals[1] == referrerAddress)) {
                if (users[referrerAddress].f2Matrix[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].f2Matrix[level].firstLevelReferrals[0] == referrerAddress) {
                if (users[referrerAddress].f2Matrix[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].f2Matrix[level].firstLevelReferrals[1] == referrerAddress) {
                if (users[referrerAddress].f2Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }

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

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

                updateF2(userAddress, referrerAddress, level, true);
                return updateF2ReferrerSecondLevel(userAddress, referrerAddress, level);
            } else if (users[referrerAddress].f2Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].f2Matrix[level].closedPart) {
                updateF2(userAddress, referrerAddress, level, true);
                return updateF2ReferrerSecondLevel(userAddress, referrerAddress, level);
            } else {
                updateF2(userAddress, referrerAddress, level, false);
                return updateF2ReferrerSecondLevel(userAddress, referrerAddress, level);
            }
        }

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

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

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

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

            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 2, level);
            updateF2Referrer(referrerAddress, freeReferrerAddress, level);
        } else {
            emit Reinvest(owner, address(0), userAddress, 2, level);
            sendETHDividends(owner, userAddress, 2, level);
        }
    }
    
    function findFreeF1Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeF1Levels[level]) {
                return users[userAddress].referrer;
            }
            
            userAddress = users[userAddress].referrer;
        }
    }
    
    function findFreeF2Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeF2Levels[level]) {
                return users[userAddress].referrer;
            }
            
            userAddress = users[userAddress].referrer;
        }
    }
        
    function usersActiveF1Levels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeF1Levels[level];
    }

    function usersActiveF2Levels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeF2Levels[level];
    }

    function usersF1Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, bool) {
        return (users[userAddress].f1Matrix[level].currentReferrer,
                users[userAddress].f1Matrix[level].referrals,
                users[userAddress].f1Matrix[level].blocked);
    }

    function usersF2Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, address[] memory, bool, address) {
        return (users[userAddress].f2Matrix[level].currentReferrer,
                users[userAddress].f2Matrix[level].firstLevelReferrals,
                users[userAddress].f2Matrix[level].secondLevelReferrals,
                users[userAddress].f2Matrix[level].blocked,
                users[userAddress].f2Matrix[level].closedPart);
    }
    
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }

    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].f1Matrix[level].blocked) {
                    emit MissedEthReceive(receiver, _from, 1, level);
                    isExtraDividends = true;
                    receiver = users[receiver].f1Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        } else {
            while (true) {
                if (users[receiver].f2Matrix[level].blocked) {
                    emit MissedEthReceive(receiver, _from, 2, level);
                    isExtraDividends = true;
                    receiver = users[receiver].f2Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        }
    }

    function sendETHDividends(address userAddress, address _from, uint8 matrix, uint8 level) private {
        (address receiver, bool isExtraDividends) = findEthReceiver(userAddress, _from, matrix, level);
        
        (bool success, ) = address(uint160(receiver)).call{ value: levelPrice[level], gas: 40000 }("");

        if (success == false) { 
          (success, ) = address(uint160(receiver)).call{ value: levelPrice[level], gas: 40000 }("");
          require(success, 'Transfer Failed');
        }
        
        emit SentETH(receiver, matrix, level);
        
        if (isExtraDividends) {
            emit SentExtraEthDividends(_from, receiver, matrix, level);
        }
    }
    
    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"}],"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":"receiver","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"SentETH","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"LAST_LEVEL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"matrix","type":"uint8"},{"internalType":"uint8","name":"startLevel","type":"uint8"},{"internalType":"uint8","name":"endLevel","type":"uint8"}],"name":"buyNewLevel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findFreeF1Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findFreeF2Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"levelPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"registrationExt","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"reinvestGlobalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIds","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveF1Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveF2Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersF1Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersF2Matrix","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"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260026005553480156200001657600080fd5b506040516200320a3803806200320a833981810160405260208110156200003c57600080fd5b50516001600052600860205266470de4df8200007fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f5560025b600d60ff821611620000b15760ff6000198201811660009081526008602052604080822054928416825290206002909102905560010162000075565b506001600755600680546001600160a01b0319166001600160a01b038316179055620000dc6200021e565b50604080516060810182526001808252600060208084018281528486018381526001600160a01b038881168086528585529785208751815592518387018054919092166001600160a01b0319918216179091559051600290920191909155918390528290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054909116909317909255905b600d60ff821611620001cd576001600160a01b03831660009081526020818152604080832060ff851684526003810183528184208054600160ff1991821681179092556004909201909352922080549092168117909155016200016f565b5050600160005260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b0319166001600160a01b039290921691909117905562000248565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b612fb280620002586000396000f3fe60806040526004361061010d5760003560e01c80637bfcdd4511610095578063a87430ba11610064578063a87430ba14610520578063cd6f3cd014610579578063ec7da65e146105ac578063ecabdf79146105e8578063ed7b763d146106155761017e565b80637bfcdd45146103ea578063818b3d5d146104935780638da5cb5b146104cf5780639d80272a146104e45761017e565b8063348d4487116100dc578063348d44871461030a57806334bf3e4c1461031f5780634635fd6814610353578063509222cd1461037d578063797eee24146103c45761017e565b80631a7051801461021857806327e235e31461027057806329c70400146102b55780632a2d0c47146102e05761017e565b3661017e576002600754141561015b576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b60026007556006546101779033906001600160a01b031661070e565b6001600755005b600260075414156101c7576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b6002600781905550610177336102136000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0292505050565b61070e565b34801561022457600080fd5b506102546004803603604081101561023b57600080fd5b5080356001600160a01b0316906020013560ff16610a09565b604080516001600160a01b039092168252519081900360200190f35b34801561027c57600080fd5b506102a36004803603602081101561029357600080fd5b50356001600160a01b0316610a9b565b60408051918252519081900360200190f35b3480156102c157600080fd5b506102ca610aad565b6040805160ff9092168252519081900360200190f35b3480156102ec57600080fd5b506102546004803603602081101561030357600080fd5b5035610ab2565b34801561031657600080fd5b506102a3610acd565b6103516004803603606081101561033557600080fd5b5060ff8135811691602081013582169160409091013516610ad3565b005b34801561035f57600080fd5b506102546004803603602081101561037657600080fd5b5035610d85565b34801561038957600080fd5b506103b0600480360360208110156103a057600080fd5b50356001600160a01b0316610da0565b604080519115158252519081900360200190f35b610351600480360360208110156103da57600080fd5b50356001600160a01b0316610dbd565b3480156103f657600080fd5b506104266004803603604081101561040d57600080fd5b5080356001600160a01b0316906020013560ff16610e1d565b604080516001600160a01b0385168152821515918101919091526060602080830182815285519284019290925284516080840191868101910280838360005b8381101561047d578181015183820152602001610465565b5050505090500194505050505060405180910390f35b34801561049f57600080fd5b50610254600480360360408110156104b657600080fd5b5080356001600160a01b0316906020013560ff16610eca565b3480156104db57600080fd5b50610254610f56565b3480156104f057600080fd5b506103b06004803603604081101561050757600080fd5b5080356001600160a01b0316906020013560ff16610f65565b34801561052c57600080fd5b506105536004803603602081101561054357600080fd5b50356001600160a01b0316610f94565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b34801561058557600080fd5b506102a36004803603602081101561059c57600080fd5b50356001600160a01b0316610fbe565b3480156105b857600080fd5b506103b0600480360360408110156105cf57600080fd5b5080356001600160a01b0316906020013560ff16610fd0565b3480156105f457600080fd5b506102a36004803603602081101561060b57600080fd5b503560ff16610fff565b34801561062157600080fd5b506106516004803603604081101561063857600080fd5b5080356001600160a01b0316906020013560ff16611011565b604080516001600160a01b03808816825284151560608301528316608082015260a060208083018281528851928401929092528751929391929184019160c0850191898101910280838360005b838110156106b657818101518382015260200161069e565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156106f55781810151838201526020016106dd565b5050505090500197505050505050505060405180910390f35b34668e1bc9bf04000014610762576040805162461bcd60e51b81526020600482015260166024820152751c9959da5cdd1c985d1a5bdb8818dbdcdd080c0b8c0d60521b604482015290519081900360640190fd5b61076b82610da0565b156107ab576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6107b481610da0565b6107fb576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b813b63ffffffff81161561084d576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b610855612e63565b50604080516060810182526005805482526001600160a01b03808616602080850182815260008688018181528b861680835282855289832089518155935160018086018054929099166001600160a01b03199283161789559251600280870191909155895485528387528b852080548316841790558854821688179098558284526003850186528a8420805460ff199081168517909155838552600490950186528a842080549095168317909455875483528685528983208054909416179092558554820190955591845283905293822001805484019055909161093a908690610a09565b6001600160a01b038681166000908152602081815260408083206001808552600590910190925290912080546001600160a01b0319169284169290921790915590915061098a9086908390611130565b6109a085610999876001610eca565b60016114b2565b6001600160a01b03808616600081815260208181526040808320549489168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a45050505050565b6014015190565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff80871684526003909101909152919020541615610a6f57506001600160a01b0380831660009081526020819052604090206001015416610a95565b6001600160a01b0392831660009081526020819052604090206001015490921691610a0c565b92915050565b60046020526000908152604090205481565b600d81565b6001602052600090815260409020546001600160a01b031681565b60055481565b60026007541415610b1c576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b6002600755610b2a33610da0565b610b655760405162461bcd60e51b8152600401808060200182810382526023815260200180612f5a6023913960400191505060405180910390fd5b8260ff1660011480610b7a57508260ff166002145b610bbc576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b600d60ff831610610c09576040805162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081cdd185c9d13195d995b60721b604482015290519081900360640190fd5b60018160ff16118015610c205750600d60ff821611155b610c64576040805162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a5908195b9913195d995b60821b604482015290519081900360640190fd5b60ff8216610cd15760ff81166000908152600860205260409020543414610cc2576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b604482015290519081900360640190fd5b610ccc8382611e4a565b610d7b565b6000825b8260ff168160ff1611610d025760ff81166000908152600860205260409020549190910190600101610cd5565b50803414610d57576040805162461bcd60e51b815260206004820152601860248201527f696e76616c6964206d616e79206c6576656c2070726963650000000000000000604482015290519081900360640190fd5b825b8260ff168160ff1611610d7857610d708582611e4a565b600101610d59565b50505b5050600160075550565b6002602052600090815260409020546001600160a01b031681565b6001600160a01b0316600090815260208190526040902054151590565b60026007541415610e06576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b6002600755610e15338261070e565b506001600755565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600590910183528184208054600282015460019092018054855181880281018801909652808652969760609789979390911695919493909316929091849190830182828015610eb657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e98575b505050505091509250925092509250925092565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff80871684526004909101909152919020541615610f3057506001600160a01b0380831660009081526020819052604090206001015416610a95565b6001600160a01b0392831660009081526020819052604090206001015490921691610ecd565b6006546001600160a01b031681565b6001600160a01b039190911660009081526020818152604080832060ff94851684526003019091529020541690565b60006020819052908152604090208054600182015460029092015490916001600160a01b03169083565b60036020526000908152604090205481565b6001600160a01b039190911660009081526020818152604080832060ff94851684526004019091529020541690565b60086020526000908152604090205481565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600690910183528184208054600382015460058301546001840180548751818a0281018a0190985280885298996060998a998c998a999784169894976002909501969094169490921692918691908301828280156110b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161109b575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561111557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f7575b50505050509250945094509450945094509295509295909350565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600590910183529083206001908101805491820181558085529284200180546001600160a01b031916948816949094179093559190525460031115611208576001600160a01b0380831660008181526020818152604080832060ff8088168086526005909201845293829020600190810154835191825293810191909152919092168183015290519192861691600080516020612f1a8339815191529181900360600190a3611203828460018461213c565b6114ad565b604080516001815260ff8316602082015260038183015290516001600160a01b038085169290861691600080516020612f1a8339815191529181900360600190a360408051600080825260208083018085526001600160a01b038716835282825284832060ff87168452600501909152929020905161128d9260019092019190612e8d565b506001600160a01b03821660009081526020818152604080832060ff6001860181168552600390910190925290912054161580156112cf575060ff8116600d14155b1561130a576001600160a01b03821660009081526020818152604080832060ff851684526005019091529020600201805460ff191660011790555b6006546001600160a01b0383811691161461142657600061132b8383610a09565b6001600160a01b0384811660009081526020818152604080832060ff8816845260050190915290205491925082811691161461139f576001600160a01b0383811660009081526020818152604080832060ff87168452600501909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380841660008181526020818152604080832060ff88168085526005909101835281842060039081018054600190810191829055878752918552948390209490945581519384529183019190915280518885169486169392600080516020612f3a83398151915292908290030190a4611420838284611130565b506114ad565b60065461143f906001600160a01b03168460018461213c565b600680546001600160a01b0390811660009081526020818152604080832060ff87168085526005909101835281842060030180546001908101909155955482519687529286015280518885169593949290921692600080516020612f3a833981519152929081900390910190a45b505050565b6001600160a01b03821660009081526020818152604080832060ff808616855260049091019092529091205416611530576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915290206001015460021115611a97576001600160a01b0382811660008181526020818152604080832060ff8781168086526006909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988c16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612f1a833981519152916060908290030190a36001600160a01b0383811660009081526020818152604080832060ff86168452600690810190925290912080546001600160a01b0319168584169081179091559054909116141561164857611203828460028461213c565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600691820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978b169790971790965591909352015490918114801561171957506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152812060010180549287169290919061170257fe5b6000918252602090912001546001600160a01b0316145b801561177557506001600160a01b0382811660009081526020818152604080832060ff8816845260060190915290206001908101805492871692909190811061175e57fe5b6000918252602090912001546001600160a01b0316145b1561183a576001600160a01b03841660009081526020818152604080832060ff87168452600601909152902060019081015414156117f357604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611835565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a35b611a85565b80600114806118495750806002145b80156118a157506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152812060010180549287169290919061188a57fe5b6000918252602090912001546001600160a01b0316145b15611965576001600160a01b03841660009081526020818152604080832060ff871684526006019091529020600190810154141561191f57604080516002815260ff8516602082015260038183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611835565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611a85565b8060021480156119c557506001600160a01b0382811660009081526020818152604080832060ff881684526006019091529020600190810180549287169290919081106119ae57fe5b6000918252602090912001546001600160a01b0316145b15611a85576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611a4357604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611a85565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a35b611a90858385612313565b50506114ad565b6001600160a01b0382811660009081526020818152604080832060ff86168085526006909101835290832060028101805460018101825590855292842090920180546001600160a01b031916888616179055909152600501541615611c7b576001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600190810180549091908110611b2f57fe5b60009182526020808320909101546001600160a01b038581168452838352604080852060ff87168652600601909352918320600101805492909116929091611b7357fe5b6000918252602090912001546001600160a01b0316148015611be857506001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611bd157fe5b6000918252602090912001546001600160a01b0316145b15611c0557611bfa8383836001612766565b611203838383612313565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611c4657fe5b6000918252602090912001546001600160a01b03161415611c6e57611bfa8383836001612766565b611bfa8383836000612766565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152902060019081018054928616929091908110611cb957fe5b6000918252602090912001546001600160a01b03161415611ce157611bfa8383836000612766565b6001600160a01b0382811660009081526020818152604080832060ff861684526006019091528120600101805492861692909190611d1b57fe5b6000918252602090912001546001600160a01b03161415611d4357611bfa8383836001612766565b6001600160a01b03821660009081526020818152604080832060ff851684526006019091528120600190810180548392908110611d7c57fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff8616808452600691820183528484206001908101549689168552848452858520918552910190915291812090910180548291908290611de257fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff8616825260060190925290206001015411611e3257611e2d8383836000612766565b611e3f565b611e3f8383836001612766565b6114ad838383612313565b8160ff1660011415611fda573360009081526020818152604080832060ff80861685526003909101909252909120541615611ec6576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526005909101909252909120600201541615611f24573360009081526020818152604080832060ff60001986011684526005019091529020600201805460ff191690555b6000611f303383610a09565b3360008181526020818152604080832060ff8816845260058101835281842080546001600160a01b0319166001600160a01b0388161790556003019091529020805460ff19166001179055909150611f89908284611130565b604080516001815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a350612138565b3360009081526020818152604080832060ff8086168552600490910190925290912054161561204a576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff60001986018116855260069091019092529091206003015416156120a8573360009081526020818152604080832060ff60001986011684526006019091529020600301805460ff191690555b60006120b43383610eca565b3360008181526020818152604080832060ff881684526004019091529020805460ff191660011790559091506120eb9082846114b2565b604080516002815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b5050565b60008061214b86868686612ccf565b60ff8516600090815260086020526040808220549051939550919350916001600160a01b03851691619c409184818181858888f193505050503d80600081146121b0576040519150601f19603f3d011682016040523d82523d6000602084013e6121b5565b606091505b50909150508061226d5760ff84166000908152600860205260408082205490516001600160a01b03861692619c40929190818181858888f193505050503d806000811461221e576040519150601f19603f3d011682016040523d82523d6000602084013e612223565b606091505b5050809150508061226d576040805162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8811985a5b1959608a1b604482015290519081900360640190fd5b6040805160ff80881682528616602082015281516001600160a01b038616927ffc49345a84115f025545e725ad58852804b47f298bc351a93994cac291e4966b928290030190a2811561230a576040805160ff80881682528616602082015281516001600160a01b0380871693908a16927ff0ddc65c0d411f042f723dcfa1b7d13e85a35b7b70761d447c6500411cacf328929081900390910190a35b50505050505050565b6001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600201546004111561235357611203828460028461213c565b6001600160a01b0380831660009081526020818152604080832060ff861680855260069182018452828520549095168452838352818420948452939093018152908290206001018054835181840281018401909452808452606093928301828280156123e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116123ca575b5050505050905080516002141561254557826001600160a01b03168160008151811061241057fe5b60200260200101516001600160a01b031614806124525750826001600160a01b03168160018151811061243f57fe5b60200260200101516001600160a01b0316145b156124b4576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b0319169091179055612545565b80516001141561254557826001600160a01b0316816000815181106124d557fe5b60200260200101516001600160a01b03161415612545576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516125899260019092019190612e8d565b5060408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516125ce9260029092019190612e8d565b506001600160a01b03831660009081526020818152604080832060ff808716855260068201845282852060050180546001600160a01b031916905560018701811685526004909101909252909120541615801561262f575060ff8216600d14155b1561266a576001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600301805460ff191660011790555b6001600160a01b0380841660008181526020818152604080832060ff8816845260069081019092529091206004018054600101905554909116146127065760006126b48484610eca565b604080516002815260ff8616602082015281519293506001600160a01b03808916938186169391891692600080516020612f3a83398151915292908290030190a46127008482856114b2565b50612760565b600654604080516002815260ff8516602082015281516001600160a01b0380891694600094911692600080516020612f3a833981519152929081900390910190a4600654612760906001600160a01b03168560028561213c565b50505050565b80612a16576001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600101805482919082906127a257fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c89161790559589168452838352848420908452019052908120909101805490919061282457fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260060190935291832060010180549183169392881692600080516020612f1a83398151915292600292889291829190829061288457fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600601909152812060010180549293881692600080516020612f1a833981519152926002928892829190829061293457fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff86168452600601909152812060010180549091906129cb57fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b03191691909216179055612760565b6001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600190810180548392908110612a4f57fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905220810180549091908110612ad057fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600601909352918320600190810180549284169493891693600080516020612f1a83398151915293600293899383929091908110612b3357fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526006019091528120600190810180549394891693600080516020612f1a8339815191529360029389939192839291908110612be857fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600190810180549091908110612c8357fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612da5575b6001600160a01b03821660009081526020818152604080832060ff808a1685526005909101909252909120600201541615612d9657604080516001815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600501909152902054166001612da0565b9092509050612e5a565b612ce1565b6001600160a01b03821660009081526020818152604080832060ff808a1685526006909101909252909120600301541615612d9657604080516002815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600601909152902054166001612da5565b94509492505050565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b828054828255906000526020600020908101928215612ee2579160200282015b82811115612ee257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612ead565b50612eee929150612ef2565b5090565b612f1691905b80821115612eee5780546001600160a01b0319168155600101612ef8565b9056fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82a00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a675736572206973206e6f74206578697374732e2052656769737465722066697273742ea264697066735822122043f7e78d4cc8d79624a5a32c3890801c277ca421aa902b25203bcfdf2c740a9064736f6c634300060800330000000000000000000000006b93f4175931f30b16d8c9b5b9b1995b71843746

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80637bfcdd4511610095578063a87430ba11610064578063a87430ba14610520578063cd6f3cd014610579578063ec7da65e146105ac578063ecabdf79146105e8578063ed7b763d146106155761017e565b80637bfcdd45146103ea578063818b3d5d146104935780638da5cb5b146104cf5780639d80272a146104e45761017e565b8063348d4487116100dc578063348d44871461030a57806334bf3e4c1461031f5780634635fd6814610353578063509222cd1461037d578063797eee24146103c45761017e565b80631a7051801461021857806327e235e31461027057806329c70400146102b55780632a2d0c47146102e05761017e565b3661017e576002600754141561015b576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b60026007556006546101779033906001600160a01b031661070e565b6001600755005b600260075414156101c7576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b6002600781905550610177336102136000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0292505050565b61070e565b34801561022457600080fd5b506102546004803603604081101561023b57600080fd5b5080356001600160a01b0316906020013560ff16610a09565b604080516001600160a01b039092168252519081900360200190f35b34801561027c57600080fd5b506102a36004803603602081101561029357600080fd5b50356001600160a01b0316610a9b565b60408051918252519081900360200190f35b3480156102c157600080fd5b506102ca610aad565b6040805160ff9092168252519081900360200190f35b3480156102ec57600080fd5b506102546004803603602081101561030357600080fd5b5035610ab2565b34801561031657600080fd5b506102a3610acd565b6103516004803603606081101561033557600080fd5b5060ff8135811691602081013582169160409091013516610ad3565b005b34801561035f57600080fd5b506102546004803603602081101561037657600080fd5b5035610d85565b34801561038957600080fd5b506103b0600480360360208110156103a057600080fd5b50356001600160a01b0316610da0565b604080519115158252519081900360200190f35b610351600480360360208110156103da57600080fd5b50356001600160a01b0316610dbd565b3480156103f657600080fd5b506104266004803603604081101561040d57600080fd5b5080356001600160a01b0316906020013560ff16610e1d565b604080516001600160a01b0385168152821515918101919091526060602080830182815285519284019290925284516080840191868101910280838360005b8381101561047d578181015183820152602001610465565b5050505090500194505050505060405180910390f35b34801561049f57600080fd5b50610254600480360360408110156104b657600080fd5b5080356001600160a01b0316906020013560ff16610eca565b3480156104db57600080fd5b50610254610f56565b3480156104f057600080fd5b506103b06004803603604081101561050757600080fd5b5080356001600160a01b0316906020013560ff16610f65565b34801561052c57600080fd5b506105536004803603602081101561054357600080fd5b50356001600160a01b0316610f94565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b34801561058557600080fd5b506102a36004803603602081101561059c57600080fd5b50356001600160a01b0316610fbe565b3480156105b857600080fd5b506103b0600480360360408110156105cf57600080fd5b5080356001600160a01b0316906020013560ff16610fd0565b3480156105f457600080fd5b506102a36004803603602081101561060b57600080fd5b503560ff16610fff565b34801561062157600080fd5b506106516004803603604081101561063857600080fd5b5080356001600160a01b0316906020013560ff16611011565b604080516001600160a01b03808816825284151560608301528316608082015260a060208083018281528851928401929092528751929391929184019160c0850191898101910280838360005b838110156106b657818101518382015260200161069e565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156106f55781810151838201526020016106dd565b5050505090500197505050505050505060405180910390f35b34668e1bc9bf04000014610762576040805162461bcd60e51b81526020600482015260166024820152751c9959da5cdd1c985d1a5bdb8818dbdcdd080c0b8c0d60521b604482015290519081900360640190fd5b61076b82610da0565b156107ab576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6107b481610da0565b6107fb576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b813b63ffffffff81161561084d576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b610855612e63565b50604080516060810182526005805482526001600160a01b03808616602080850182815260008688018181528b861680835282855289832089518155935160018086018054929099166001600160a01b03199283161789559251600280870191909155895485528387528b852080548316841790558854821688179098558284526003850186528a8420805460ff199081168517909155838552600490950186528a842080549095168317909455875483528685528983208054909416179092558554820190955591845283905293822001805484019055909161093a908690610a09565b6001600160a01b038681166000908152602081815260408083206001808552600590910190925290912080546001600160a01b0319169284169290921790915590915061098a9086908390611130565b6109a085610999876001610eca565b60016114b2565b6001600160a01b03808616600081815260208181526040808320549489168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a45050505050565b6014015190565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff80871684526003909101909152919020541615610a6f57506001600160a01b0380831660009081526020819052604090206001015416610a95565b6001600160a01b0392831660009081526020819052604090206001015490921691610a0c565b92915050565b60046020526000908152604090205481565b600d81565b6001602052600090815260409020546001600160a01b031681565b60055481565b60026007541415610b1c576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b6002600755610b2a33610da0565b610b655760405162461bcd60e51b8152600401808060200182810382526023815260200180612f5a6023913960400191505060405180910390fd5b8260ff1660011480610b7a57508260ff166002145b610bbc576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b600d60ff831610610c09576040805162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081cdd185c9d13195d995b60721b604482015290519081900360640190fd5b60018160ff16118015610c205750600d60ff821611155b610c64576040805162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a5908195b9913195d995b60821b604482015290519081900360640190fd5b60ff8216610cd15760ff81166000908152600860205260409020543414610cc2576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b604482015290519081900360640190fd5b610ccc8382611e4a565b610d7b565b6000825b8260ff168160ff1611610d025760ff81166000908152600860205260409020549190910190600101610cd5565b50803414610d57576040805162461bcd60e51b815260206004820152601860248201527f696e76616c6964206d616e79206c6576656c2070726963650000000000000000604482015290519081900360640190fd5b825b8260ff168160ff1611610d7857610d708582611e4a565b600101610d59565b50505b5050600160075550565b6002602052600090815260409020546001600160a01b031681565b6001600160a01b0316600090815260208190526040902054151590565b60026007541415610e06576040805162461bcd60e51b815260206004820152600e60248201526d536563757269747920426c6f636b60901b604482015290519081900360640190fd5b6002600755610e15338261070e565b506001600755565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600590910183528184208054600282015460019092018054855181880281018801909652808652969760609789979390911695919493909316929091849190830182828015610eb657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e98575b505050505091509250925092509250925092565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff80871684526004909101909152919020541615610f3057506001600160a01b0380831660009081526020819052604090206001015416610a95565b6001600160a01b0392831660009081526020819052604090206001015490921691610ecd565b6006546001600160a01b031681565b6001600160a01b039190911660009081526020818152604080832060ff94851684526003019091529020541690565b60006020819052908152604090208054600182015460029092015490916001600160a01b03169083565b60036020526000908152604090205481565b6001600160a01b039190911660009081526020818152604080832060ff94851684526004019091529020541690565b60086020526000908152604090205481565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600690910183528184208054600382015460058301546001840180548751818a0281018a0190985280885298996060998a998c998a999784169894976002909501969094169490921692918691908301828280156110b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161109b575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561111557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f7575b50505050509250945094509450945094509295509295909350565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600590910183529083206001908101805491820181558085529284200180546001600160a01b031916948816949094179093559190525460031115611208576001600160a01b0380831660008181526020818152604080832060ff8088168086526005909201845293829020600190810154835191825293810191909152919092168183015290519192861691600080516020612f1a8339815191529181900360600190a3611203828460018461213c565b6114ad565b604080516001815260ff8316602082015260038183015290516001600160a01b038085169290861691600080516020612f1a8339815191529181900360600190a360408051600080825260208083018085526001600160a01b038716835282825284832060ff87168452600501909152929020905161128d9260019092019190612e8d565b506001600160a01b03821660009081526020818152604080832060ff6001860181168552600390910190925290912054161580156112cf575060ff8116600d14155b1561130a576001600160a01b03821660009081526020818152604080832060ff851684526005019091529020600201805460ff191660011790555b6006546001600160a01b0383811691161461142657600061132b8383610a09565b6001600160a01b0384811660009081526020818152604080832060ff8816845260050190915290205491925082811691161461139f576001600160a01b0383811660009081526020818152604080832060ff87168452600501909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380841660008181526020818152604080832060ff88168085526005909101835281842060039081018054600190810191829055878752918552948390209490945581519384529183019190915280518885169486169392600080516020612f3a83398151915292908290030190a4611420838284611130565b506114ad565b60065461143f906001600160a01b03168460018461213c565b600680546001600160a01b0390811660009081526020818152604080832060ff87168085526005909101835281842060030180546001908101909155955482519687529286015280518885169593949290921692600080516020612f3a833981519152929081900390910190a45b505050565b6001600160a01b03821660009081526020818152604080832060ff808616855260049091019092529091205416611530576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915290206001015460021115611a97576001600160a01b0382811660008181526020818152604080832060ff8781168086526006909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988c16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612f1a833981519152916060908290030190a36001600160a01b0383811660009081526020818152604080832060ff86168452600690810190925290912080546001600160a01b0319168584169081179091559054909116141561164857611203828460028461213c565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600691820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978b169790971790965591909352015490918114801561171957506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152812060010180549287169290919061170257fe5b6000918252602090912001546001600160a01b0316145b801561177557506001600160a01b0382811660009081526020818152604080832060ff8816845260060190915290206001908101805492871692909190811061175e57fe5b6000918252602090912001546001600160a01b0316145b1561183a576001600160a01b03841660009081526020818152604080832060ff87168452600601909152902060019081015414156117f357604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611835565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a35b611a85565b80600114806118495750806002145b80156118a157506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152812060010180549287169290919061188a57fe5b6000918252602090912001546001600160a01b0316145b15611965576001600160a01b03841660009081526020818152604080832060ff871684526006019091529020600190810154141561191f57604080516002815260ff8516602082015260038183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611835565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611a85565b8060021480156119c557506001600160a01b0382811660009081526020818152604080832060ff881684526006019091529020600190810180549287169290919081106119ae57fe5b6000918252602090912001546001600160a01b0316145b15611a85576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611a4357604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a3611a85565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612f1a8339815191529181900360600190a35b611a90858385612313565b50506114ad565b6001600160a01b0382811660009081526020818152604080832060ff86168085526006909101835290832060028101805460018101825590855292842090920180546001600160a01b031916888616179055909152600501541615611c7b576001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600190810180549091908110611b2f57fe5b60009182526020808320909101546001600160a01b038581168452838352604080852060ff87168652600601909352918320600101805492909116929091611b7357fe5b6000918252602090912001546001600160a01b0316148015611be857506001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611bd157fe5b6000918252602090912001546001600160a01b0316145b15611c0557611bfa8383836001612766565b611203838383612313565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060058101546001909101805491909316929190611c4657fe5b6000918252602090912001546001600160a01b03161415611c6e57611bfa8383836001612766565b611bfa8383836000612766565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152902060019081018054928616929091908110611cb957fe5b6000918252602090912001546001600160a01b03161415611ce157611bfa8383836000612766565b6001600160a01b0382811660009081526020818152604080832060ff861684526006019091528120600101805492861692909190611d1b57fe5b6000918252602090912001546001600160a01b03161415611d4357611bfa8383836001612766565b6001600160a01b03821660009081526020818152604080832060ff851684526006019091528120600190810180548392908110611d7c57fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff8616808452600691820183528484206001908101549689168552848452858520918552910190915291812090910180548291908290611de257fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff8616825260060190925290206001015411611e3257611e2d8383836000612766565b611e3f565b611e3f8383836001612766565b6114ad838383612313565b8160ff1660011415611fda573360009081526020818152604080832060ff80861685526003909101909252909120541615611ec6576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526005909101909252909120600201541615611f24573360009081526020818152604080832060ff60001986011684526005019091529020600201805460ff191690555b6000611f303383610a09565b3360008181526020818152604080832060ff8816845260058101835281842080546001600160a01b0319166001600160a01b0388161790556003019091529020805460ff19166001179055909150611f89908284611130565b604080516001815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a350612138565b3360009081526020818152604080832060ff8086168552600490910190925290912054161561204a576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff60001986018116855260069091019092529091206003015416156120a8573360009081526020818152604080832060ff60001986011684526006019091529020600301805460ff191690555b60006120b43383610eca565b3360008181526020818152604080832060ff881684526004019091529020805460ff191660011790559091506120eb9082846114b2565b604080516002815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b5050565b60008061214b86868686612ccf565b60ff8516600090815260086020526040808220549051939550919350916001600160a01b03851691619c409184818181858888f193505050503d80600081146121b0576040519150601f19603f3d011682016040523d82523d6000602084013e6121b5565b606091505b50909150508061226d5760ff84166000908152600860205260408082205490516001600160a01b03861692619c40929190818181858888f193505050503d806000811461221e576040519150601f19603f3d011682016040523d82523d6000602084013e612223565b606091505b5050809150508061226d576040805162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8811985a5b1959608a1b604482015290519081900360640190fd5b6040805160ff80881682528616602082015281516001600160a01b038616927ffc49345a84115f025545e725ad58852804b47f298bc351a93994cac291e4966b928290030190a2811561230a576040805160ff80881682528616602082015281516001600160a01b0380871693908a16927ff0ddc65c0d411f042f723dcfa1b7d13e85a35b7b70761d447c6500411cacf328929081900390910190a35b50505050505050565b6001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600201546004111561235357611203828460028461213c565b6001600160a01b0380831660009081526020818152604080832060ff861680855260069182018452828520549095168452838352818420948452939093018152908290206001018054835181840281018401909452808452606093928301828280156123e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116123ca575b5050505050905080516002141561254557826001600160a01b03168160008151811061241057fe5b60200260200101516001600160a01b031614806124525750826001600160a01b03168160018151811061243f57fe5b60200260200101516001600160a01b0316145b156124b4576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b0319169091179055612545565b80516001141561254557826001600160a01b0316816000815181106124d557fe5b60200260200101516001600160a01b03161415612545576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516125899260019092019190612e8d565b5060408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516125ce9260029092019190612e8d565b506001600160a01b03831660009081526020818152604080832060ff808716855260068201845282852060050180546001600160a01b031916905560018701811685526004909101909252909120541615801561262f575060ff8216600d14155b1561266a576001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600301805460ff191660011790555b6001600160a01b0380841660008181526020818152604080832060ff8816845260069081019092529091206004018054600101905554909116146127065760006126b48484610eca565b604080516002815260ff8616602082015281519293506001600160a01b03808916938186169391891692600080516020612f3a83398151915292908290030190a46127008482856114b2565b50612760565b600654604080516002815260ff8516602082015281516001600160a01b0380891694600094911692600080516020612f3a833981519152929081900390910190a4600654612760906001600160a01b03168560028561213c565b50505050565b80612a16576001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600101805482919082906127a257fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c89161790559589168452838352848420908452019052908120909101805490919061282457fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260060190935291832060010180549183169392881692600080516020612f1a83398151915292600292889291829190829061288457fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600601909152812060010180549293881692600080516020612f1a833981519152926002928892829190829061293457fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff86168452600601909152812060010180549091906129cb57fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b03191691909216179055612760565b6001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600190810180548392908110612a4f57fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905220810180549091908110612ad057fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600601909352918320600190810180549284169493891693600080516020612f1a83398151915293600293899383929091908110612b3357fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526006019091528120600190810180549394891693600080516020612f1a8339815191529360029389939192839291908110612be857fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600190810180549091908110612c8357fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612da5575b6001600160a01b03821660009081526020818152604080832060ff808a1685526005909101909252909120600201541615612d9657604080516001815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600501909152902054166001612da0565b9092509050612e5a565b612ce1565b6001600160a01b03821660009081526020818152604080832060ff808a1685526006909101909252909120600301541615612d9657604080516002815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600601909152902054166001612da5565b94509492505050565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b828054828255906000526020600020908101928215612ee2579160200282015b82811115612ee257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612ead565b50612eee929150612ef2565b5090565b612f1691905b80821115612eee5780546001600160a01b0319168155600101612ef8565b9056fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82a00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a675736572206973206e6f74206578697374732e2052656769737465722066697273742ea264697066735822122043f7e78d4cc8d79624a5a32c3890801c277ca421aa902b25203bcfdf2c740a9064736f6c63430006080033

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

0000000000000000000000006b93f4175931f30b16d8c9b5b9b1995b71843746

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b93f4175931f30b16d8c9b5b9b1995b71843746


Deployed Bytecode Sourcemap

824:21135:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2012:1;2860:13;;:30;;2852:57;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;;;;2012:1;2920:13;:29;4003:5:::1;::::0;3978:31:::1;::::0;3991:10:::1;::::0;-1:-1:-1;;;;;4003:5:0::1;3978:12;:31::i;:::-;1965:1:::0;2984:13;:28;824:21135;;2012:1;2860:13;;:30;;2852:57;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;;;;2012:1;2920:13;:29;;;;3854:50:::1;3867:10;3879:24;3894:8;;3879:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;3879:14:0::1;::::0;-1:-1:-1;;;3879:24:0:i:1;:::-;3854:12;:50::i;18009:349::-:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18009:349:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18009:349:0;;-1:-1:-1;;;;;18009:349:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;18009:349:0;;;;;;;;;;;;;;1777:40;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1777:40:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1777:40:0;-1:-1:-1;;;;;1777:40:0;;:::i;:::-;;;;;;;;;;;;;;;;1529:37;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1529:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1623:43;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1623:43:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1623:43:0;;:::i;1827:26::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1827:26:0;;;:::i;4179:942::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4179:942:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1673:39;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1673:39:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1673:39:0;;:::i;19880:110::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19880:110:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19880:110:0;-1:-1:-1;;;;;19880:110:0;;:::i;:::-;;;;;;;;;;;;;;;;;;4025:142;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4025:142:0;-1:-1:-1;;;;;4025:142:0;;:::i;19061:312::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19061:312:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19061:312:0;;-1:-1:-1;;;;;19061:312:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;19061: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;19061:312:0;;;;;;;;;;;;;;;;;;;18370:349;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18370:349:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18370:349:0;;-1:-1:-1;;;;;18370:349:0;;;;;;;;:::i;1860:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1860:20:0;;;:::i;18735:155::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18735:155:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18735:155:0;;-1:-1:-1;;;;;18735:155:0;;;;;;;;:::i;1579:37::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1579:37:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1579:37:0;-1:-1:-1;;;;;1579:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1579:37:0;;;;;;;;;;;;;;;;;;;;1719:51;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1719:51:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1719:51:0;-1:-1:-1;;;;;1719:51:0;;:::i;18898:155::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18898:155:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18898:155:0;;-1:-1:-1;;;;;18898:155:0;;;;;;;;:::i;2026:40::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2026:40:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2026:40:0;;;;:::i;19381:487::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19381:487:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19381:487:0;;-1:-1:-1;;;;;19381:487:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;19381: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;19381: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;19381:487:0;;;;;;;;;;;;;;;;;;;;;;6425:1434;6520:9;6533:10;6520:23;6512:58;;;;;-1:-1:-1;;;6512:58:0;;;;;;;;;;;;-1:-1:-1;;;6512:58:0;;;;;;;;;;;;;;;6590:25;6603:11;6590:12;:25::i;:::-;6589:26;6581:50;;;;;-1:-1:-1;;;6581:50:0;;;;;;;;;;;;-1:-1:-1;;;6581:50:0;;;;;;;;;;;;;;;6650:29;6663:15;6650:12;:29::i;:::-;6642:61;;;;;-1:-1:-1;;;6642:61:0;;;;;;;;;;;;-1:-1:-1;;;6642:61:0;;;;;;;;;;;;;;;6778:24;;6831:9;;;;6823:42;;;;;-1:-1:-1;;;6823:42:0;;;;;;;;;;;;-1:-1:-1;;;6823:42:0;;;;;;;;;;;;;;;6886:16;;:::i;:::-;-1:-1:-1;6905:117:0;;;;;;;;6929:10;;;6905:117;;-1:-1:-1;;;;;6905:117:0;;;;;;;;;;-1:-1:-1;6905:117:0;;;;;;7043:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7043:25:0;;;;;;;;;;;;;;;;7091:10;;7079:23;;;;;;;;:37;;;;;;;;7137:45;;;;;;;;;7203:36;;;:33;;;:36;;;;;:43;;-1:-1:-1;;7203:43:0;;;;;;;;7258:36;;;:33;;;;:36;;;;;:43;;;;;;;;;;7340:10;;7332:19;;;;;;;;:33;;;;;;;;;7376:12;;;;;;;7409:22;;;;;;;;;:36;:38;;;;;;6905:117;;7485:34;;7049:11;;7485:18;:34::i;:::-;-1:-1:-1;;;;;7530:18:0;;;:5;:18;;;;;;;;;;;7558:1;7530:30;;;:27;;;;:30;;;;;;:63;;-1:-1:-1;;;;;;7530:63:0;;;;;;;;;;;;;-1:-1:-1;7604:48:0;;7530:18;;:63;;7604:16;:48::i;:::-;7665:68;7682:11;7695:34;7714:11;7727:1;7695:18;:34::i;:::-;7731:1;7665:16;:68::i;:::-;-1:-1:-1;;;;;7802:18:0;;;:5;:18;;;;;;;;;;;:21;7759:92;;;7825:22;;;;;;;:25;7759:92;;;;;;;;;7802:18;7759:92;;;;;;;;;;;6425:1434;;;;;:::o;21798:158::-;21934:2;21925:12;21919:19;;21896:53::o;18009:349::-;18091:7;18111:240;-1:-1:-1;;;;;18149:18:0;;;18143:5;18149:18;;;;;;;;;;;:27;;;;;;18143:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;18139:131;;;-1:-1:-1;;;;;;18227:18:0;;;:5;:18;;;;;;;;;;:27;;;;18220:34;;18139:131;-1:-1:-1;;;;;18312:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;18111:240;;;18009:349;;;;:::o;1777:40::-;;;;;;;;;;;;;:::o;1529:37::-;1564:2;1529:37;:::o;1623:43::-;;;;;;;;;;;;-1:-1:-1;;;;;1623:43:0;;:::o;1827:26::-;;;;:::o;4179:942::-;2012:1;2860:13;;:30;;2852:57;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;;;;2012:1;2920:13;:29;4299:24:::1;4312:10;4299:12;:24::i;:::-;4291:72;;;;-1:-1:-1::0;;;4291:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4382:6;:11;;4392:1;4382:11;:26;;;;4397:6;:11;;4407:1;4397:11;4382:26;4374:53;;;::::0;;-1:-1:-1;;;4374:53:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4374:53:0;;;;;;;;;;;;;::::1;;1564:2;4465:23;::::0;::::1;;4438:73;;;::::0;;-1:-1:-1;;;4438:73:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4438:73:0;;;;;;;;;;;;;::::1;;4541:1;4530:8;:12;;;:38;;;;-1:-1:-1::0;1564:2:0::1;4546:22;::::0;::::1;;;4530:38;4522:67;;;::::0;;-1:-1:-1;;;4522:67:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4522:67:0;;;;;;;;;;;;;::::1;;4605:15;::::0;::::1;4602:512;;4657:20;::::0;::::1;;::::0;;;:10:::1;:20;::::0;;;;;4644:9:::1;:33;4636:59;;;::::0;;-1:-1:-1;;;4636:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;4636:59:0;;;;;;;;;;;;;::::1;;4710:33;4726:6;4734:8;4710:15;:33::i;:::-;4602:512;;;4776:11;4817:10:::0;4802:106:::1;4834:8;4829:13;;:1;:13;;;4802:106;;4878:13;::::0;::::1;;::::0;;;:10:::1;:13;::::0;;;;;4868:23;;;::::1;::::0;4844:3:::1;;4802:106;;;;4943:6;4930:9;:19;4922:56;;;::::0;;-1:-1:-1;;;4922:56:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5010:10:::0;4995:108:::1;5027:8;5022:13;;:1;:13;;;4995:108;;5061:26;5077:6;5085:1;5061:15;:26::i;:::-;5037:3;;4995:108;;;;4602:512;;-1:-1:-1::0;;1965:1:0;2984:13;:28;-1:-1:-1;4179:942:0:o;1673:39::-;;;;;;;;;;;;-1:-1:-1;;;;;1673:39:0;;:::o;19880:110::-;-1:-1:-1;;;;;19962:11:0;19937:4;19962:11;;;;;;;;;;:14;:19;;;19880:110::o;4025:142::-;2012:1;2860:13;;:30;;2852:57;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;-1:-1:-1;;;2852:57:0;;;;;;;;;;;;;;;2012:1;2920:13;:29;4118:41:::1;4131:10;4143:15:::0;4118:12:::1;:41::i;:::-;-1:-1:-1::0;1965:1:0;2984:13;:28;4025:142::o;19061:312::-;-1:-1:-1;;;;;19190:18:0;;;19138:7;19190:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;19322:42;;;;19190:50;19259:44;;;19182:183;;;;;;;;;;;;;;;;;19138:7;;19147:16;;19138:7;;19190:50;;;;;19259:44;;19322:42;;;;;19182:183;;19259:44;;19182:183;;;19259:44;19182:183;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19182:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19061:312;;;;;:::o;18370:349::-;18452:7;18472:240;-1:-1:-1;;;;;18510:18:0;;;18504:5;18510:18;;;;;;;;;;;:27;;;;;;18504:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;18500:131;;;-1:-1:-1;;;;;;18588:18:0;;;:5;:18;;;;;;;;;;:27;;;;18581:34;;18500:131;-1:-1:-1;;;;;18673:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;18472:240;;1860:20;;;-1:-1:-1;;;;;1860:20:0;;:::o;18735:155::-;-1:-1:-1;;;;;18842:18:0;;;;18818:4;18842:18;;;;;;;;;;;:40;;;;;;:33;;:40;;;;;;;;18735:155::o;1579:37::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1579:37:0;;;:::o;1719:51::-;;;;;;;;;;;;;:::o;18898:155::-;-1:-1:-1;;;;;19005:18:0;;;;18981:4;19005:18;;;;;;;;;;;:40;;;;;;:33;;:40;;;;;;;;18898:155::o;2026:40::-;;;;;;;;;;;;;:::o;19381:487::-;-1:-1:-1;;;;;19537:18:0;;;19458:7;19537:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;19753:42;;;;19814:45;;;;19537:50;19606:54;;19529:331;;;;;;;;;;;;;;;;;19458:7;;19467:16;;;;19458:7;;;;19537:50;;;;19606:54;;19679:55;;;;;19753:42;;;;19814:45;;;;19529:331;19606:54;;19529:331;;;19606:54;19529:331;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19529:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19529:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19381:487;;;;;;;;:::o;7871:1823::-;-1:-1:-1;;;;;7975:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:48;;;;27:10:-1;;23:18;;;45:23;;7975:66:0;;;;;;;;;-1:-1:-1;;;;;;7975:66:0;;;;;;;;;;;8058:38;;;:55;8116:1;-1:-1:-1;8054:291:0;;;-1:-1:-1;;;;;8139:116:0;;;8198:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;;8182:1;8198:48;;;:55;8139:116;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8139:116:0;;;;;;;;8277:56;8294:15;8311:11;8324:1;8327:5;8277:16;:56::i;:::-;8270:63;;8054:291;8370:55;;;8413:1;8370:55;;;;;;;;;8423:1;8370:55;;;;;;-1:-1:-1;;;;;8370:55:0;;;;;;;;-1:-1:-1;;;;;;;;;;;8370:55:0;;;;;;;;8511:16;;;8525:1;8511:16;;;;;;;;;;-1:-1:-1;;;;;8460:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:67;;;;:48;;;;;8511:16;8460:67;:::i;:::-;-1:-1:-1;;;;;;8543:22:0;;:5;:22;;;;;;;;;;;:46;8587:1;8581:7;;8543:46;;;;:37;;;;:46;;;;;;;;8542:47;:70;;;;-1:-1:-1;8593:19:0;;;1564:2;8593:19;;8542:70;8538:156;;;-1:-1:-1;;;;;8629:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;8629:53:0;8678:4;8629:53;;;8538:156;8768:5;;-1:-1:-1;;;;;8749:24:0;;;8768:5;;8749:24;8745:942;;8833:27;8863:42;8882:15;8899:5;8863:18;:42::i;:::-;-1:-1:-1;;;;;8924:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:54;8833:72;;-1:-1:-1;8924:77:0;;;:54;;:77;8920:194;;-1:-1:-1;;;;;9022:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:76;;-1:-1:-1;;;;;;9022:76:0;;;;;;;;;;8920:194;-1:-1:-1;;;;;9142:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:52;;;;:54;;;;;;;;;;9211:36;;;;;;;;;;:91;;;;9322:69;;;;;;;;;;;;;;;;;;;;;9142:22;-1:-1:-1;;;;;;;;;;;9322:69:0;;;;;;;;9406:61;9423:15;9440:19;9461:5;9406:16;:61::i;:::-;8745:942;;;;9517:5;;9500:46;;-1:-1:-1;;;;;9517:5:0;9524:11;9517:5;9540;9500:16;:46::i;:::-;9567:5;;;-1:-1:-1;;;;;9567:5:0;;;9561;:12;;;;;;;;;;;:28;;;;;;:21;;;;:28;;;;;:42;;:44;;9567:5;9561:44;;;;;;9634:5;;9625:50;;;;;;;;;;;;;;;9561:5;;9634;;;;;-1:-1:-1;;;;;;;;;;;9625:50:0;;;;;;;;;;8745:942;7871:1823;;;:::o;9702:4749::-;-1:-1:-1;;;;;9814:22:0;;:5;:22;;;;;;;;;;;:44;;;;;;:37;;;;:44;;;;;;;;9806:88;;;;;-1:-1:-1;;;9806:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9919:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:65;9987:1;-1:-1:-1;9915:2312:0;;;-1:-1:-1;;;;;10019:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;:58;;;;27:10:-1;;23:18;;;45:23;;10019:76:0;;;;;;;;;;;-1:-1:-1;;;;;;10019:76:0;;;;;;;;;10174:38;;;;:65;;10115:126;;10158:1;10115:126;;;;;;;;;;;;;;;;;;10019:22;;:76;-1:-1:-1;;;;;;;;;;;10115:126:0;;;;;;;;;-1:-1:-1;;;;;10303:18:0;;;:5;:18;;;;;;;;;;;:34;;;;;:27;;;;:34;;;;;;:68;;-1:-1:-1;;;;;;10303:68:0;;;;;;;;;;10411:5;;;;;10392:24;10388:128;;;10444:56;10461:15;10478:11;10491:1;10494:5;10444:16;:56::i;10388:128::-;-1:-1:-1;;;;;10558:22:0;;;10544:11;10558:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;10639:10;;;;;;;;;:26;;;:19;;;:26;;;;;:47;;;;27:10:-1;;10558:54:0;23:18:-1;;;45:23;;10639:65:0;;;;;;;;;;;-1:-1:-1;;;;;;10639:65:0;;;;;;;;;;;10745:26;;;;:46;:53;10558:54;;10832:8;;10831:102;;;;-1:-1:-1;;;;;;10864:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;10864:49:0;:68;10831:102;:193;;;;-1:-1:-1;;;;;;10955:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10955:49:0;:68;10831:193;10827:1313;;;-1:-1:-1;;;;;11049:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;11045:264;;;11149:43;;;11180:1;11149:43;;;;;;;;;11190:1;11149:43;;;;;;-1:-1:-1;;;;;11149:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;11149:43:0;;;;;;;;11045:264;;;11246:43;;;11277:1;11246:43;;;;;;;;;11287:1;11246:43;;;;;;-1:-1:-1;;;;;11246:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;11246:43:0;;;;;;;;11045:264;10827:1313;;;11336:3;11343:1;11336:8;:20;;;;11348:3;11355:1;11348:8;11336:20;11335:115;;;;-1:-1:-1;;;;;;11382:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;11382:49:0;:68;11335:115;11331:809;;;-1:-1:-1;;;;;11475:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;11471:264;;;11575:43;;;11606:1;11575:43;;;;;;;;;11616:1;11575:43;;;;;;-1:-1:-1;;;;;11575:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;11575:43:0;;;;;;;;11471:264;;;11672:43;;;11703:1;11672:43;;;;;;;;;11713:1;11672:43;;;;;;-1:-1:-1;;;;;11672:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;11672:43:0;;;;;;;;11331:809;;;11760:3;11767:1;11760:8;:80;;;;-1:-1:-1;;;;;;11772:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11772:49:0;:68;11760:80;11756:384;;;-1:-1:-1;;;;;11865:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;11861:264;;;11965:43;;;11996:1;11965:43;;;;;;;;;12006:1;11965:43;;;;;;-1:-1:-1;;;;;11965:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;11965:43:0;;;;;;;;11861:264;;;12062:43;;;12093:1;12062:43;;;;;;;;;12103:1;12062:43;;;;;;-1:-1:-1;;;;;12062:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;12062:43:0;;;;;;;;11861:264;12163:52;12191:11;12204:3;12209:5;12163:27;:52::i;:::-;12156:59;;;;9915:2312;-1:-1:-1;;;;;12247:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:59;;;27:10:-1;;39:1;23:18;;45:23;;12247:77:0;;;;;;;;;;;-1:-1:-1;;;;;;12247:77:0;;;;;;;12341:38;;;:49;;;;:63;12337:1082;;-1:-1:-1;;;;;12509:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12426:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;12509:61;12426:58;:61;;12509;;;;;12426:58;;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;12426:61:0;:144;12425:300;;;;-1:-1:-1;;;;;;12675:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;12593:58;;;:61;;12675:49;;;;;12593:58;12675:5;12593:61;;;;;;;;;;;;;;-1:-1:-1;;;;;12593:61:0;:131;12425:300;12421:987;;;12748:51;12757:11;12770:15;12787:5;12794:4;12748:8;:51::i;:::-;12825:64;12853:11;12866:15;12883:5;12825:27;:64::i;12421:987::-;-1:-1:-1;;;;;12998:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;12915:58;;;:61;;12998:49;;;;;12915:58;12998:5;12915:61;;;;;;;;;;;;;;-1:-1:-1;;;;;12915:61:0;:132;12911:497;;;13068:51;13077:11;13090:15;13107:5;13114:4;13068:8;:51::i;12911:497::-;13250:52;13259:11;13272:15;13289:5;13296;13250:8;:52::i;12911:497::-;-1:-1:-1;;;;;13435:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:76;;;;:58;;;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13435:61:0;:76;13431:499;;;13528:52;13537:11;13550:15;13567:5;13574;13528:8;:52::i;13431:499::-;-1:-1:-1;;;;;13688:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:76;;;;:58;;:5;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;13688:61:0;:76;13684:246;;;13781:51;13790:11;13803:15;13820:5;13827:4;13781:8;:51::i;13684:246::-;-1:-1:-1;;;;;14089:22:0;;14083:5;14089:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;14083:5;;14089:58;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14089:61:0;;;14083:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;14089:61;14083:104;;;:111;13960:22;;;;;;;;;;;:38;;;:31;;:38;;;;;;:58;;;:61;;14089;;13960:58;14089:61;;13960;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13960:61:0;13954:68;;;;;;;;;;;;;;;:84;;;;;:77;;:84;;;;;13960:61;13954:104;:111;:240;13950:409;;14211:52;14220:11;14233:15;14250:5;14257;14211:8;:52::i;:::-;13950:409;;;14296:51;14305:11;14318:15;14335:5;14342:4;14296:8;:51::i;:::-;14379:64;14407:11;14420:15;14437:5;14379:27;:64::i;5130:1281::-;5205:6;:11;;5215:1;5205:11;5201:1203;;;5248:10;5242:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;5241:40;5233:76;;;;;-1:-1:-1;;;5233:76:0;;;;;;;;;;;;-1:-1:-1;;;5233:76:0;;;;;;;;;;;;;;;5336:10;5330:5;:17;;;;;;;;;;;:35;-1:-1:-1;;5357:7:0;;5330:35;;;;:26;;;;:35;;;;;;:43;;;;5326:135;;;5400:10;5440:5;5394:17;;;;;;;;;;;:35;-1:-1:-1;;5421:7:0;;5394:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;5394:51:0;;;5326:135;5481:22;5506:37;5525:10;5537:5;5506:18;:37::i;:::-;5564:10;5558:5;:17;;;;;;;;;;;:33;;;;;:26;;;:33;;;;;:66;;-1:-1:-1;;;;;;5558:66:0;-1:-1:-1;;;;;5558:66:0;;;;;5639:32;;:39;;;;;:46;;-1:-1:-1;;5639:46:0;-1:-1:-1;5639:46:0;;;5558:66;;-1:-1:-1;5700:51:0;;5558:66;:33;5700:16;:51::i;:::-;5785:45;;;5821:1;5785:45;;;;;;;;;;;-1:-1:-1;;;;;5785:45:0;;;5793:10;;5785:45;;;;;;;;;;;5201:1203;;;;5880:10;5874:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;5873:40;5865:76;;;;;-1:-1:-1;;;5865:76:0;;;;;;;;;;;;-1:-1:-1;;;5865:76:0;;;;;;;;;;;;;;;5969:10;5963:5;:17;;;;;;;;;;;:35;-1:-1:-1;;5990:7:0;;5963:35;;;;:26;;;;:35;;;;;;:43;;;;5959:135;;;6033:10;6073:5;6027:17;;;;;;;;;;;:35;-1:-1:-1;;6054:7:0;;6027:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;6027:51:0;;;5959:135;6110:22;6135:37;6154:10;6166:5;6135:18;:37::i;:::-;6207:10;6201:5;:17;;;;;;;;;;;:39;;;;;:32;;:39;;;;;:46;;-1:-1:-1;;6201:46:0;6243:4;6201:46;;;6110:62;;-1:-1:-1;6262:51:0;;6110:62;6234:5;6262:16;:51::i;:::-;6347:45;;;6383:1;6347:45;;;;;;;;;;;-1:-1:-1;;;;;6347:45:0;;;6355:10;;6347:45;;;;;;;;;;;5201:1203;;5130:1281;;:::o;21079:707::-;21188:16;21206:21;21231:50;21247:11;21260:5;21267:6;21275:5;21231:15;:50::i;:::-;21361:17;;;21303:12;21361:17;;;:10;:17;;;;;;;21321:75;;21187:94;;-1:-1:-1;21187:94:0;;-1:-1:-1;21303:12:0;-1:-1:-1;;;;;21321:31:0;;;21385:5;;21303:12;21321:75;21303:12;21321:75;21361:17;21321:31;21385:5;21321:75;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1;21302:94:0;;-1:-1:-1;;21413:16:0;21409:185;;21499:17;;;;;;;:10;:17;;;;;;;21459:75;;-1:-1:-1;;;;;21459:31:0;;;21523:5;;21499:17;21459:75;;21499:17;21459:75;21499:17;21459:31;21523:5;21459:75;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;21445:89:0;;;;;21555:7;21547:35;;;;;-1:-1:-1;;;21547:35:0;;;;;;;;;;;;-1:-1:-1;;;21547:35:0;;;;;;;;;;;;;;;21619:32;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21619:32:0;;;;;;;;;;;21676:16;21672:107;;;21714:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21714:53:0;;;;;;;;;;;;;;;;;;;21672:107;21079:707;;;;;;;:::o;16088:1909::-;-1:-1:-1;;;;;16207:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:59;;:66;16276:1;-1:-1:-1;16203:166:0;;;16301:56;16318:15;16335:11;16348:1;16351:5;16301:16;:56::i;16203:166::-;-1:-1:-1;;;;;16417:22:0;;;16411:5;16417:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;16411:61;;;;;;;;:77;;;:70;;;;:77;;;;;;16417:54;16411:97;16389:119;;;;;;;;;;;;;;;;;:19;;:119;;;16411:97;16389:119;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16389:119:0;;;;;;;;;;;;;;;;;;;;;;;16533:2;:9;16546:1;16533:14;16529:501;;;16577:15;-1:-1:-1;;;;;16568:24:0;:2;16571:1;16568:5;;;;;;;;;;;;;;-1:-1:-1;;;;;16568:24:0;;:69;;;;16622:15;-1:-1:-1;;;;;16613:24:0;:2;16616:1;16613:5;;;;;;;;;;;;;;-1:-1:-1;;;;;16613:24:0;;16568:69;16564:455;;;-1:-1:-1;;;;;16664:22:0;;;16658:5;16664:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;16658:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;16658:106:0;;;;;;16564:455;;;16790:2;:9;16803:1;16790:14;16786:233;;;16838:15;-1:-1:-1;;;;;16829:24:0;:2;16832:1;16829:5;;;;;;;;;;;;;;-1:-1:-1;;;;;16829:24:0;;16825:179;;;-1:-1:-1;;;;;16884:22:0;;;16878:5;16884:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;16878:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;16878:106:0;;;;;;16825:179;17111:16;;;17125:1;17111:16;;;;;;;;;;-1:-1:-1;;;;;17050:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:77;;;;:58;;;;;17111:16;17050:77;:::i;:::-;-1:-1:-1;17200:16:0;;;17214:1;17200:16;;;;;;;;;;-1:-1:-1;;;;;17138:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:78;;;;:59;;;;;17200:16;17138:78;:::i;:::-;-1:-1:-1;;;;;;17227:22:0;;17287:1;17227:22;;;;;;;;;;;:38;;;;;;:31;;;:38;;;;;:49;;:62;;-1:-1:-1;;;;;;17227:62:0;;;;17345:7;;17307:46;;;;:37;;;;:46;;;;;;;;17306:47;:70;;;;-1:-1:-1;17357:19:0;;;1564:2;17357:19;;17306:70;17302:156;;;-1:-1:-1;;;;;17393:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;17393:53:0;17442:4;17393:53;;;17302:156;-1:-1:-1;;;;;17470:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;;;:38;;;;;;:52;;:54;;;;;;17568:5;;;;17549:24;17545:445;;17590:27;17620:42;17639:15;17656:5;17620:18;:42::i;:::-;17684:69;;;17744:1;17684:69;;;;;;;;;;;17590:72;;-1:-1:-1;;;;;;17684:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17684:69:0;;;;;;;;17768:61;17785:15;17802:19;17823:5;17768:16;:61::i;:::-;17545:445;;;;17876:5;;17867:50;;;17908:1;17867:50;;;;;;;;;;;-1:-1:-1;;;;;17867:50:0;;;;17891:1;;17876:5;;;-1:-1:-1;;;;;;;;;;;17867:50:0;;;;;;;;;;17949:5;;17932:46;;-1:-1:-1;;;;;17949:5:0;17956:11;17969:1;17972:5;17932:16;:46::i;:::-;16088:1909;;;;:::o;14459:1617::-;14569:2;14564:1505;;-1:-1:-1;;;;;14594:22:0;;14588:5;14594:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;14588:5;;14594:58;14588:5;;14594:61;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14594:61:0;;;14588:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;14594:61;14588:104;;;27:10:-1;;23:18;;;45:23;;14588:122:0;;;;;;;;;-1:-1:-1;;;;;;14588:122:0;;;;;;;14756:22;;;;;;;;;;;:38;;;:31;:38;;;;;:58;;;:61;;:58;;14594:61;14756;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14841:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;14756:61;14841:58;:61;;14756;;;;14730:218;;;;-1:-1:-1;;;;;;;;;;;14730:218:0;14819:1;;14822:5;;14756:61;;;14841:58;14756:61;;14841;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14841:61:0;14835:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;14841:61;14835:104;:111;14730:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14968:176:0;;;15031:5;15037:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;14968:176;;;;;-1:-1:-1;;;;;;;;;;;14968:176:0;15011:1;;15014:5;;15031;;15037:58;15031:5;;15037:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15037:61:0;15031:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;15037:61;15031:104;:111;14968:176;;;;;;;;;;;;;;;;;15021:1;:122;;;14968:176;;;;;;;;;;;;;;-1:-1:-1;;;;;15245:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:58;;:5;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;15192:114:0;15245:61;;;;15192:114;;;14564:1505;;;-1:-1:-1;;;;;15345:22:0;;15339:5;15345:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;15339:5;;15345:58;:61;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15345:61:0;;;15339:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;15345:61;15339:104;;;27:10:-1;;23:18;;;45:23;;15339:122:0;;;;;;;;;-1:-1:-1;;;;;;15339:122:0;;;;;;;15507:22;;;;;;;;;;;:38;;;:31;:38;;;:58;;:61;;:58;;15345:61;15507;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15592:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;15507:61;15592:58;;;:61;;15507;;;;15481:218;;;;-1:-1:-1;;;;;;;;;;;15481:218:0;15570:1;;15573:5;;15507:61;;15592:58;;15507:61;15592;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15592:61:0;15586:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;15592:61;15586:104;:111;15481:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15719:176:0;;;15782:5;15788:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;15719:176;;;;;-1:-1:-1;;;;;;;;;;;15719:176:0;15762:1;;15765:5;;15782;;;;15788:58;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15788:61:0;15782:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;15788:61;15782:104;:111;15719:176;;;;;;;;;;;;;;;;;15772:1;:122;;;15719:176;;;;;;;;;;;;;;-1:-1:-1;;;;;15996:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15943:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;15943:114:0;15996:61;;;;15943:114;;;14459:1617;;;;:::o;19998:1073::-;20102:7;;20147:11;20102:7;20215:1;20205:11;;;;20201:863;;;20233:394;-1:-1:-1;;;;;20269:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;20265:347;;;20338:43;;;20372:1;20338:43;;;;;;;;;;;-1:-1:-1;;;;;20338:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20461:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;20423:4;20265:347;;;20565:8;;-1:-1:-1;20575:16:0;-1:-1:-1;20557:35:0;;20265:347;20233:394;;20201:863;-1:-1:-1;;;;;20695:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;20691:347;;;20764:43;;;20798:1;20764:43;;;;;;;;;;;-1:-1:-1;;;;;20764:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20887:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;20849:4;20659:394;;19998:1073;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://43f7e78d4cc8d79624a5a32c3890801c277ca421aa902b25203bcfdf2c740a90

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.