ETH Price: $2,085.79 (-3.03%)

Contract

0x7712F76D2A52141D44461CDbC8b660506DCAB752
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Rescue Tokens184221552023-10-24 19:19:11862 days ago1698175151IN
0x7712F76D...06DCAB752
0 ETH0.0014479320.52844833
Transfer116015342021-01-06 14:22:571884 days ago1609942977IN
0x7712F76D...06DCAB752
0 ETH0.00446138140
Transfer114772362020-12-18 12:37:201903 days ago1608295040IN
0x7712F76D...06DCAB752
0 ETH0.0013384142.00000145
Withdraw Ether113495402020-11-28 21:36:091922 days ago1606599369IN
0x7712F76D...06DCAB752
0 ETH0.0004045913
Withdraw Ether111410362020-10-27 21:20:421954 days ago1603833642IN
0x7712F76D...06DCAB752
0 ETH0.0011788321
Withdraw Ether111410212020-10-27 21:17:521954 days ago1603833472IN
0x7712F76D...06DCAB752
0 ETH0.0004828521
Transfer110526992020-10-14 8:21:191968 days ago1602663679IN
0x7712F76D...06DCAB752
0 ETH0.0050976453
Transfer107922572020-09-04 3:03:222008 days ago1599188602IN
0x7712F76D...06DCAB752
0 ETH0.00546260
Transfer103456252020-06-27 4:04:392077 days ago1593230679IN
0x7712F76D...06DCAB752
0 ETH0.000860427
Transfer101710982020-05-31 3:14:572104 days ago1590894897IN
0x7712F76D...06DCAB752
0 ETH0.0009560130
Transfer100646332020-05-14 13:47:522121 days ago1589464072IN
0x7712F76D...06DCAB752
0 ETH0.00115555
Transfer99842952020-05-02 3:14:012133 days ago1588389241IN
0x7712F76D...06DCAB752
0 ETH0.000175265.50000023
Transfer99229092020-04-22 14:52:042143 days ago1587567124IN
0x7712F76D...06DCAB752
0 ETH0.0010255815.00000123
Transfer97383432020-03-25 4:24:132171 days ago1585110253IN
0x7712F76D...06DCAB752
0 ETH0.0003186710.00000123
Transfer96454322020-03-10 18:49:342185 days ago1583866174IN
0x7712F76D...06DCAB752
0 ETH0.000159335
Transfer96249042020-03-07 14:52:392189 days ago1583592759IN
0x7712F76D...06DCAB752
0 ETH0.0013065441
Transfer96022172020-03-04 3:22:112192 days ago1583292131IN
0x7712F76D...06DCAB752
0 ETH0.000254938
Transfer95263502020-02-21 11:37:452204 days ago1582285065IN
0x7712F76D...06DCAB752
0 ETH0.000305929.6
Transfer95110262020-02-19 2:50:532206 days ago1582080653IN
0x7712F76D...06DCAB752
0 ETH0.000127464
Transfer95006402020-02-17 12:30:492208 days ago1581942649IN
0x7712F76D...06DCAB752
0 ETH0.0002740413.04999999
Transfer94561882020-02-10 16:24:422214 days ago1581351882IN
0x7712F76D...06DCAB752
0 ETH0.000546978
Transfer92702712020-01-13 3:45:582243 days ago1578887158IN
0x7712F76D...06DCAB752
0 ETH0.000223067
Transfer92191412020-01-05 7:53:462251 days ago1578210826IN
0x7712F76D...06DCAB752
0 ETH0.000159335
Transfer91335682019-12-20 2:32:442267 days ago1576809164IN
0x7712F76D...06DCAB752
0 ETH0.0031867100
Transfer91311782019-12-19 15:11:522268 days ago1576768312IN
0x7712F76D...06DCAB752
0 ETH0.00028689
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-113495402020-11-28 21:36:091922 days ago1606599369
0x7712F76D...06DCAB752
0.17730832 ETH
-111456842020-10-28 14:28:481954 days ago1603895328
0x7712F76D...06DCAB752
0.14184666 ETH
-111456732020-10-28 14:27:201954 days ago1603895240
0x7712F76D...06DCAB752
0.03546166 ETH
-111410362020-10-27 21:20:421954 days ago1603833642
0x7712F76D...06DCAB752
75.67056147 ETH
-110526992020-10-14 8:21:191968 days ago1602663679
0x7712F76D...06DCAB752
0.00406739 ETH
-106369862020-08-11 6:20:452032 days ago1597126845
0x7712F76D...06DCAB752
0.17730832 ETH
-106365622020-08-11 4:47:382032 days ago1597121258
0x7712F76D...06DCAB752
0.24823165 ETH
-105662232020-07-31 8:21:142043 days ago1596183674
0x7712F76D...06DCAB752
0.53192498 ETH
-99229092020-04-22 14:52:042143 days ago1587567124
0x7712F76D...06DCAB752
0.01177002 ETH
-94561882020-02-10 16:24:422214 days ago1581351882
0x7712F76D...06DCAB752
0.00198075 ETH
-90986492019-12-13 6:29:342274 days ago1576218574
0x7712F76D...06DCAB752
0.00094852 ETH
-90986492019-12-13 6:29:342274 days ago1576218574
0x7712F76D...06DCAB752
0.00134811 ETH
-90946302019-12-12 13:38:592275 days ago1576157939
0x7712F76D...06DCAB752
0.01035612 ETH
-90946302019-12-12 13:38:592275 days ago1576157939
0x7712F76D...06DCAB752
0.01471882 ETH
-90945862019-12-12 13:28:292275 days ago1576157309
0x7712F76D...06DCAB752
0.00181989 ETH
-90945862019-12-12 13:28:292275 days ago1576157309
0x7712F76D...06DCAB752
0.00258655 ETH
-90945182019-12-12 13:12:172275 days ago1576156337
0x7712F76D...06DCAB752
0.02593529 ETH
-89784912019-11-22 4:52:032295 days ago1574398323
0x7712F76D...06DCAB752
0.20117403 ETH
-89784912019-11-22 4:52:032295 days ago1574398323
0x7712F76D...06DCAB752
0.28592214 ETH
-89784912019-11-22 4:52:032295 days ago1574398323
0x7712F76D...06DCAB752
0.35557012 ETH
-87841582019-10-21 13:20:102327 days ago1571664010
0x7712F76D...06DCAB752
0.17730832 ETH
-87579552019-10-17 10:11:032331 days ago1571307063
0x7712F76D...06DCAB752
0.01616046 ETH
-87579552019-10-17 10:11:032331 days ago1571307063
0x7712F76D...06DCAB752
0.02296834 ETH
-87211762019-10-11 15:17:542337 days ago1570807074
0x7712F76D...06DCAB752
0.17730832 ETH
-87137632019-10-10 11:18:072338 days ago1570706287
0x7712F76D...06DCAB752
0.01883128 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
VokenShareholders

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2019-08-22
*/

pragma solidity ^0.5.11;

// Voken Shareholders Contract for Voken2.0
//
// More info:
//   https://vision.network
//   https://voken.io
//
// Contact us:
//   support@vision.network
//   support@voken.io


/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow checks.
 */
library SafeMath256 {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * @dev Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}


/**
 * @dev Interface of the ERC20 standard
 */
interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * @dev Interface of an allocation contract
 */
interface IAllocation {
    function reservedOf(address account) external view returns (uint256);
}


/**
 * @dev Interface of Voken2.0
 */
interface IVoken2 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function mintWithAllocation(address account, uint256 amount, address allocationContract) external returns (bool);
}


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 */
contract Ownable {
    address internal _owner;
    address internal _newOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event OwnershipAccepted(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the addresses of the current and new owner.
     */
    function owner() public view returns (address currentOwner, address newOwner) {
        currentOwner = _owner;
        newOwner = _newOwner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner(address account) public view returns (bool) {
        return account == _owner;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     *
     * IMPORTANT: Need to run {acceptOwnership} by the new owner.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");

        emit OwnershipTransferred(_owner, newOwner);
        _newOwner = newOwner;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     *
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Accept ownership of the contract.
     *
     * Can only be called by the new owner.
     */
    function acceptOwnership() public {
        require(msg.sender == _newOwner, "Ownable: caller is not the new owner address");
        require(msg.sender != address(0), "Ownable: caller is the zero address");

        emit OwnershipAccepted(_owner, msg.sender);
        _owner = msg.sender;
        _newOwner = address(0);
    }

    /**
     * @dev Rescue compatible ERC20 Token
     *
     * Can only be called by the current owner.
     */
    function rescueTokens(address tokenAddr, address recipient, uint256 amount) external onlyOwner {
        IERC20 _token = IERC20(tokenAddr);
        require(recipient != address(0), "Rescue: recipient is the zero address");
        uint256 balance = _token.balanceOf(address(this));

        require(balance >= amount, "Rescue: amount exceeds balance");
        _token.transfer(recipient, amount);
    }

    /**
     * @dev Withdraw Ether
     *
     * Can only be called by the current owner.
     */
    function withdrawEther(address payable recipient, uint256 amount) external onlyOwner {
        require(recipient != address(0), "Withdraw: recipient is the zero address");

        uint256 balance = address(this).balance;

        require(balance >= amount, "Withdraw: amount exceeds balance");
        recipient.transfer(amount);
    }
}


/**
 * @title Voken Shareholders
 */
contract VokenShareholders is Ownable, IAllocation {
    using SafeMath256 for uint256;
    using Roles for Roles.Role;

    IVoken2 private _VOKEN = IVoken2(0xFfFAb974088Bd5bF3d7E6F522e93Dd7861264cDB);
    Roles.Role private _proxies;

    uint256 private _ALLOCATION_TIMESTAMP = 1598918399; // Sun, 30 Aug 2020 23:59:59 +0000
    uint256 private _ALLOCATION_INTERVAL = 1 days;
    uint256 private _ALLOCATION_STEPS = 60;

    uint256 private _page;
    uint256 private _weis;
    uint256 private _vokens;

    address[] private _shareholders;
    mapping (address => bool) private _isShareholder;

    mapping (address => uint256) private _withdrawPos;
    mapping (uint256 => address[]) private _pageShareholders;
    mapping (uint256 => mapping (address => bool)) private _isPageShareholder;

    mapping (uint256 => uint256) private _pageEndingBlock;
    mapping (uint256 => uint256) private _pageEthers;
    mapping (uint256 => uint256) private _pageVokens;
    mapping (uint256 => uint256) private _pageVokenSum;
    mapping (uint256 => mapping (address => uint256)) private _pageVokenHoldings;
    mapping (uint256 => mapping (address => uint256)) private _pageEtherDividends;

    mapping (address => uint256) private _allocations;

    event ProxyAdded(address indexed account);
    event ProxyRemoved(address indexed account);
    event Dividend(address indexed account, uint256 amount, uint256 page);


    /**
     * @dev Throws if called by account which is not a proxy.
     */
    modifier onlyProxy() {
        require(isProxy(msg.sender), "ProxyRole: caller does not have the Proxy role");
        _;
    }

    /**
     * @dev Returns true if the `account` has the Proxy role.
     */
    function isProxy(address account) public view returns (bool) {
        return _proxies.has(account);
    }

    /**
     * @dev Give an `account` access to the Proxy role.
     *
     * Can only be called by the current owner.
     */
    function addProxy(address account) public onlyOwner {
        _proxies.add(account);
        emit ProxyAdded(account);
    }

    /**
     * @dev Remove an `account` access from the Proxy role.
     *
     * Can only be called by the current owner.
     */
    function removeProxy(address account) public onlyOwner {
        _proxies.remove(account);
        emit ProxyRemoved(account);
    }

    /**
     * @dev Returns the VOKEN main contract address.
     */
    function VOKEN() public view returns (IVoken2) {
        return _VOKEN;
    }

    /**
     * @dev Returns the max page number.
     */
    function page() public view returns (uint256) {
        return _page;
    }

    /**
     * @dev Returns the amount of deposited Ether.
     */
    function weis() public view returns (uint256) {
        return _weis;
    }

    /**
     * @dev Returns the amount of VOKEN holding by all shareholders.
     */
    function vokens() public view returns (uint256) {
        return _vokens;
    }

    /**
     * @dev Returns the shareholders list on `pageNumber`.
     */
    function shareholders(uint256 pageNumber) public view returns (address[] memory) {
        if (pageNumber > 0) {
            return _pageShareholders[pageNumber];
        }

        return _shareholders;
    }

    /**
     * @dev Returns the shareholders counter on `pageNumber`.
     */
    function shareholdersCounter(uint256 pageNumber) public view returns (uint256) {
        if (pageNumber > 0) {
            return _pageShareholders[pageNumber].length;
        }

        return _shareholders.length;
    }

    /**
     * @dev Returns the amount of deposited Ether at `pageNumber`.
     */
    function pageEther(uint256 pageNumber) public view returns (uint256) {
        return _pageEthers[pageNumber];
    }

    /**
     * @dev Returns the amount of deposited Ether till `pageNumber`.
     */
    function pageEtherSum(uint256 pageNumber) public view returns (uint256) {
        uint256 __page = _pageNumber(pageNumber);
        uint256 __amount;

        for (uint256 i = 1; i <= __page; i++) {
            __amount = __amount.add(_pageEthers[i]);
        }

        return __amount;
    }

    /**
     * @dev Returns the amount of VOKEN holding by all shareholders at `pageNumber`.
     */
    function pageVoken(uint256 pageNumber) public view returns (uint256) {
        return _pageVokens[pageNumber];
    }

    /**
     * @dev Returns the amount of VOKEN holding by all shareholders till `pageNumber`.
     */
    function pageVokenSum(uint256 pageNumber) public view returns (uint256) {
        return _pageVokenSum[_pageNumber(pageNumber)];
    }

    /**
     * Returns the ending block number of `pageNumber`.
     */
    function pageEndingBlock(uint256 pageNumber) public view returns (uint256) {
        return _pageEndingBlock[pageNumber];
    }

    /**
     * Returns the page number greater than 0 by `pageNmber`.
     */
    function _pageNumber(uint256 pageNumber) internal view returns (uint256) {
        if (pageNumber > 0) {
            return pageNumber;
        }

        else {
            return _page;
        }
    }

    /**
     * @dev Returns the amount of VOKEN holding by `account` and `pageNumber`.
     */
    function vokenHolding(address account, uint256 pageNumber) public view returns (uint256) {
        uint256 __page;
        uint256 __amount;

        if (pageNumber > 0) {
            __page = pageNumber;
        }

        else {
            __page = _page;
        }

        for (uint256 i = 1; i <= __page; i++) {
            __amount = __amount.add(_pageVokenHoldings[i][account]);
        }

        return __amount;
    }

    /**
     * @dev Returns the ether dividend of `account` on `pageNumber`.
     */
    function etherDividend(address account, uint256 pageNumber) public view returns (uint256 amount,
                                                                                     uint256 dividend,
                                                                                     uint256 remain) {
        if (pageNumber > 0) {
            amount = pageEther(pageNumber).mul(vokenHolding(account, pageNumber)).div(pageVokenSum(pageNumber));
            dividend = _pageEtherDividends[pageNumber][account];
        }

        else {
            for (uint256 i = 1; i <= _page; i++) {
                uint256 __pageEtherDividend = pageEther(i).mul(vokenHolding(account, i)).div(pageVokenSum(i));
                amount = amount.add(__pageEtherDividend);
                dividend = dividend.add(_pageEtherDividends[i][account]);
            }
        }

        remain = amount.sub(dividend);
    }

    /**
     * @dev Returns the allocation of `account`.
     */
    function allocation(address account) public view returns (uint256) {
        return _allocations[account];
    }

    /**
     * @dev Returns the reserved amount of VOKENs by `account`.
     */
    function reservedOf(address account) public view returns (uint256 reserved) {
        reserved = _allocations[account];

        if (now > _ALLOCATION_TIMESTAMP && reserved > 0) {
            uint256 __passed = now.sub(_ALLOCATION_TIMESTAMP).div(_ALLOCATION_INTERVAL).add(1);

            if (__passed > _ALLOCATION_STEPS) {
                reserved = 0;
            }
            else {
                reserved = reserved.sub(reserved.mul(__passed).div(_ALLOCATION_STEPS));
            }
        }
    }


    /**
     * @dev Constructor
     */
    constructor () public {
        _page = 1;

        addProxy(msg.sender);
    }

    /**
     * @dev {Deposit} or {Withdraw}
     */
    function () external payable {
        // deposit
        if (msg.value > 0) {
            _weis = _weis.add(msg.value);
            _pageEthers[_page] = _pageEthers[_page].add(msg.value);
        }

        // withdraw
        else if (_isShareholder[msg.sender]) {
            uint256 __vokenHolding;

            for (uint256 i = 1; i <= _page.sub(1); i++) {
                __vokenHolding = __vokenHolding.add(_pageVokenHoldings[i][msg.sender]);

                if (_withdrawPos[msg.sender] < i) {
                    uint256 __etherAmount = _pageEthers[i].mul(__vokenHolding).div(_pageVokenSum[i]);

                    _withdrawPos[msg.sender] = i;
                    _pageEtherDividends[i][msg.sender] = __etherAmount;

                    msg.sender.transfer(__etherAmount);
                    emit Dividend(msg.sender, __etherAmount, i);
                }
            }
        }

        assert(true);
    }

    /**
     * @dev End the current page.
     */
    function endPage() public onlyProxy {
        require(_pageEthers[_page] > 0, "Ethers on current page is zero.");

        _pageEndingBlock[_page] = block.number;

        _page = _page.add(1);
        _pageVokenSum[_page] = _vokens;

        assert(true);
    }

    /**
     * @dev Push shareholders.
     *
     * Can only be called by a proxy.
     */
    function pushShareholders(address[] memory accounts, uint256[] memory values) public onlyProxy {
        require(accounts.length == values.length, "Shareholders: batch length is not match");

        for (uint256 i = 0; i < accounts.length; i++) {
            address __account = accounts[i];
            uint256 __value = values[i];

            if (!_isShareholder[__account]) {
                _shareholders.push(__account);
                _isShareholder[__account] = true;
            }

            if (!_isPageShareholder[_page][__account]) {
                _pageShareholders[_page].push(__account);
                _isPageShareholder[_page][__account] = true;
            }

            _vokens = _vokens.add(__value);
            _pageVokens[_page] = _pageVokens[_page].add(__value);
            _pageVokenSum[_page] = _vokens;
            _pageVokenHoldings[_page][__account] = _pageVokenHoldings[_page][__account].add(__value);

            _allocations[__account] = _allocations[__account].add(__value);
            assert(_VOKEN.mintWithAllocation(__account, __value, address(this)));
        }

        assert(true);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageVokenSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"page","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageVoken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"etherDividend","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"dividend","type":"uint256"},{"internalType":"uint256","name":"remain","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isProxy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageEther","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"vokenHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"currentOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VOKEN","outputs":[{"internalType":"contract IVoken2","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"shareholders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageEndingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeProxy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"pageEtherSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"reservedOf","outputs":[{"internalType":"uint256","name":"reserved","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"pageNumber","type":"uint256"}],"name":"shareholdersCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endPage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"pushShareholders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ProxyAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ProxyRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"page","type":"uint256"}],"name":"Dividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipAccepted","type":"event"}]

6080604052600280546001600160a01b03191673fffab974088bd5bf3d7e6f522e93dd7861264cdb179055635f4d8eff60045562015180600555603c6006553480156200004b57600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600755620000ae336001600160e01b03620000b416565b620002c4565b620000c8336001600160e01b036200018616565b6200013457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6200014f8160036200019a60201b6200195c1790919060201c565b6040516001600160a01b038216907f919e434c309b1e05df9dba7a1e2827e10cf511d2eb5330b6fffadf34f0632d0690600090a250565b6000546001600160a01b0390811691161490565b620001af82826001600160e01b036200024116565b156200021c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001fee6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611d1a80620002d46000396000f3fe6080604052600436106101815760003560e01c80638da5cb5b116100d1578063c01af79f1161008a578063cea9d26f11610064578063cea9d26f14610786578063db748775146107c9578063f2086e90146107de578063f2fde38b1461091257610181565b8063c01af79f146106ff578063c9322adb14610729578063c975fab41461075c57610181565b80638da5cb5b146105895780639b28fa7b146105c4578063ab377daa146105f5578063b81b86301461066f578063b8ff5e78146106a2578063be116c3b146106cc57610181565b80632f54bf6e1161013e5780636e41494b116101185780636e41494b1461051157806375c032621461052657806379ba50971461053b5780637b773c9d1461055057610181565b80632f54bf6e1461047b57806335f13bc7146104ae578063522f6815146104d857610181565b806303bf492e1461032f5780630df813b91461036b5780631f194fe7146103805780632092a55c146103aa57806323b11d8d146104015780632971038814610434575b34156101d65760085461019a903463ffffffff61094516565b6008556007546000908152601060205260409020546101bf903463ffffffff61094516565b60075460009081526010602052604090205561032d565b336000908152600b602052604090205460ff161561032d57600060015b60075461020790600163ffffffff6109a816565b811161032a57600081815260136020908152604080832033845290915290205461023890839063ffffffff61094516565b336000908152600c602052604090205490925081111561032257600081815260126020908152604080832054601090925282205461028d9190610281908663ffffffff6109ea16565b9063ffffffff610a4316565b336000818152600c602090815260408083208790558683526014825280832084845290915280822084905551929350909183156108fc0291849190818181858888f193505050501580156102e5573d6000803e3d6000fd5b506040805182815260208101849052815133927f282046e7e19a40725faef3fde5fd1e87d1479fa568373b67d549532ef53faf6a928290030190a2505b6001016101f3565b50505b005b34801561033b57600080fd5b506103596004803603602081101561035257600080fd5b5035610a85565b60408051918252519081900360200190f35b34801561037757600080fd5b50610359610aab565b34801561038c57600080fd5b50610359600480360360208110156103a357600080fd5b5035610ab1565b3480156103b657600080fd5b506103e3600480360360408110156103cd57600080fd5b506001600160a01b038135169060200135610ac3565b60408051938452602084019290925282820152519081900360600190f35b34801561040d57600080fd5b5061032d6004803603602081101561042457600080fd5b50356001600160a01b0316610bc7565b34801561044057600080fd5b506104676004803603602081101561045757600080fd5b50356001600160a01b0316610c57565b604080519115158252519081900360200190f35b34801561048757600080fd5b506104676004803603602081101561049e57600080fd5b50356001600160a01b0316610c6a565b3480156104ba57600080fd5b50610359600480360360208110156104d157600080fd5b5035610c7e565b3480156104e457600080fd5b5061032d600480360360408110156104fb57600080fd5b506001600160a01b038135169060200135610c90565b34801561051d57600080fd5b50610359610db0565b34801561053257600080fd5b50610359610db6565b34801561054757600080fd5b5061032d610dbc565b34801561055c57600080fd5b506103596004803603604081101561057357600080fd5b506001600160a01b038135169060200135610e99565b34801561059557600080fd5b5061059e610f02565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b3480156105d057600080fd5b506105d9610f19565b604080516001600160a01b039092168252519081900360200190f35b34801561060157600080fd5b5061061f6004803603602081101561061857600080fd5b5035610f28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561065b578181015183820152602001610643565b505050509050019250505060405180910390f35b34801561067b57600080fd5b506103596004803603602081101561069257600080fd5b50356001600160a01b0316610ffc565b3480156106ae57600080fd5b50610359600480360360208110156106c557600080fd5b5035611017565b3480156106d857600080fd5b5061032d600480360360208110156106ef57600080fd5b50356001600160a01b0316611029565b34801561070b57600080fd5b506103596004803603602081101561072257600080fd5b50356110b9565b34801561073557600080fd5b506103596004803603602081101561074c57600080fd5b50356001600160a01b0316611105565b34801561076857600080fd5b506103596004803603602081101561077f57600080fd5b50356111a8565b34801561079257600080fd5b5061032d600480360360608110156107a957600080fd5b506001600160a01b038135811691602081013590911690604001356111cd565b3480156107d557600080fd5b5061032d6113bb565b3480156107ea57600080fd5b5061032d6004803603604081101561080157600080fd5b81019060208101813564010000000081111561081c57600080fd5b82018360208201111561082e57600080fd5b8035906020019184602083028401116401000000008311171561085057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156108a057600080fd5b8201836020820111156108b257600080fd5b803590602001918460208302840111640100000000831117156108d457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506114a3945050505050565b34801561091e57600080fd5b5061032d6004803603602081101561093557600080fd5b50356001600160a01b03166117f7565b60008282018381101561099f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061099f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061184b565b6000826109f9575060006109a2565b82820282848281610a0657fe5b041461099f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611bdd6021913960400191505060405180910390fd5b600061099f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e2565b600060126000610a9484611944565b81526020019081526020016000205490505b919050565b60075490565b60009081526011602052604090205490565b600080808315610b2857610afb610ad985610a85565b610281610ae68888610e99565b610aef88610c7e565b9063ffffffff6109ea16565b60008581526014602090815260408083206001600160a01b038a1684529091529020549093509150610bae565b60015b6007548111610bac576000610b58610b4283610a85565b610281610b4f8a86610e99565b610aef86610c7e565b9050610b6a858263ffffffff61094516565b60008381526014602090815260408083206001600160a01b038c168452909152902054909550610ba190859063ffffffff61094516565b935050600101610b2b565b505b610bbe838363ffffffff6109a816565b90509250925092565b610bd033610c6a565b610c0f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b610c2060038263ffffffff61195c16565b6040516001600160a01b038216907f919e434c309b1e05df9dba7a1e2827e10cf511d2eb5330b6fffadf34f0632d0690600090a250565b60006109a260038363ffffffff6119dd16565b6000546001600160a01b0390811691161490565b60009081526010602052604090205490565b610c9933610c6a565b610cd8576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b6001600160a01b038216610d1d5760405162461bcd60e51b8152600401808060200182810382526027815260200180611bb66027913960400191505060405180910390fd5b303181811015610d74576040805162461bcd60e51b815260206004820181905260248201527f57697468647261773a20616d6f756e7420657863656564732062616c616e6365604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610daa573d6000803e3d6000fd5b50505050565b60085490565b60095490565b6001546001600160a01b03163314610e055760405162461bcd60e51b815260040180806020018281038252602c815260200180611cba602c913960400191505060405180910390fd5b33610e415760405162461bcd60e51b8152600401808060200182810382526023815260200180611b726023913960400191505060405180910390fd5b6000805460405133926001600160a01b03909216917f357bdeb5828fa83945f38a88510ce5cd7d628dafb346d767efbc693149fdd97c91a3600080546001600160a01b03199081163317909155600180549091169055565b600080808315610eab57839150610eb1565b60075491505b60015b828111610ef95760008181526013602090815260408083206001600160a01b038a168452909152902054610eef90839063ffffffff61094516565b9150600101610eb4565b50949350505050565b6000546001546001600160a01b0391821692911690565b6002546001600160a01b031690565b60608115610f9a576000828152600d602090815260409182902080548351818402810184019094528084529091830182828015610f8e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f70575b50505050509050610aa6565b600a805480602002602001604051908101604052809291908181526020018280548015610ff057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fd2575b50505050509050919050565b6001600160a01b031660009081526015602052604090205490565b6000908152600f602052604090205490565b61103233610c6a565b611071576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61108260038263ffffffff611a4416565b6040516001600160a01b038216907fc19ec636c33767d631869f17e127e7bc2d0237fbd3720cac3cbd73c1360c72f590600090a250565b6000806110c583611944565b9050600060015b8281116110fd576000818152601060205260409020546110f390839063ffffffff61094516565b91506001016110cc565b509392505050565b6001600160a01b0381166000908152601560205260409020546004544211801561112f5750600081115b15610aa65760006111626001611156600554610281600454426109a890919063ffffffff16565b9063ffffffff61094516565b905060065481111561117757600091506111a2565b60065461119f9061119290610281858563ffffffff6109ea16565b839063ffffffff6109a816565b91505b50919050565b600081156111c557506000818152600d6020526040902054610aa6565b5050600a5490565b6111d633610c6a565b611215576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b826001600160a01b03831661125b5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c956025913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156112a557600080fd5b505afa1580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b5051905082811015611328576040805162461bcd60e51b815260206004820152601e60248201527f5265736375653a20616d6f756e7420657863656564732062616c616e63650000604482015290519081900360640190fd5b816001600160a01b031663a9059cbb85856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b505050506040513d60208110156113b257600080fd5b50505050505050565b6113c433610c57565b6113ff5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b600754600090815260106020526040902054611462576040805162461bcd60e51b815260206004820152601f60248201527f457468657273206f6e2063757272656e742070616765206973207a65726f2e00604482015290519081900360640190fd5b600780546000908152600f602052604090204390555461148990600163ffffffff61094516565b600781905560095460009182526012602052604090912055565b6114ac33610c57565b6114e75760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b80518251146115275760405162461bcd60e51b8152600401808060200182810382526027815260200180611c6e6027913960400191505060405180910390fd5b60005b82518110156117f257600083828151811061154157fe5b60200260200101519050600083838151811061155957fe5b6020908102919091018101516001600160a01b0384166000908152600b90925260409091205490915060ff166115ed57600a805460018082019092557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0385169081179091556000908152600b60205260409020805460ff191690911790555b6007546000908152600e602090815260408083206001600160a01b038616845290915290205460ff1661167b57600780546000908152600d602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03891690811790915594548452600e8352818420948452939091529020805460ff191690911790555b60095461168e908263ffffffff61094516565b6009556007546000908152601160205260409020546116b3908263ffffffff61094516565b6007805460009081526011602090815260408083209490945560095483548352601282528483205591548152601382528281206001600160a01b03861682529091522054611707908263ffffffff61094516565b60075460009081526013602090815260408083206001600160a01b0387168452825280832093909355601590522054611746908263ffffffff61094516565b6001600160a01b03808416600081815260156020908152604080832095909555600254855163f19158ef60e01b81526004810194909452602484018790523060448501529451949093169363f19158ef936064808501949193918390030190829087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b505050506040513d60208110156117e057600080fd5b50516117e857fe5b505060010161152a565b505050565b61180033610c6a565b61183f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61184881611aab565b50565b600081848411156118da5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561189f578181015183820152602001611887565b50505050905090810190601f1680156118cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836119315760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561189f578181015183820152602001611887565b5082848161193b57fe5b04949350505050565b60008115611953575080610aa6565b50600754610aa6565b61196682826119dd565b156119b8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216611a245760405162461bcd60e51b8152600401808060200182810382526022815260200180611c4c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611a4e82826119dd565b611a895760405162461bcd60e51b8152600401808060200182810382526021815260200180611b956021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116611af05760405162461bcd60e51b8152600401808060200182810382526026815260200180611b4c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c657220697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6557697468647261773a20726563697069656e7420697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750726f7879526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050726f787920726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573735368617265686f6c646572733a206261746368206c656e677468206973206e6f74206d617463685265736375653a20726563697069656e7420697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206e6577206f776e65722061646472657373a265627a7a72315820df1453a35bf0ca89a94529531314292e5b6e3613b325063c0d67f4628925c39264736f6c634300050b0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373

Deployed Bytecode

0x6080604052600436106101815760003560e01c80638da5cb5b116100d1578063c01af79f1161008a578063cea9d26f11610064578063cea9d26f14610786578063db748775146107c9578063f2086e90146107de578063f2fde38b1461091257610181565b8063c01af79f146106ff578063c9322adb14610729578063c975fab41461075c57610181565b80638da5cb5b146105895780639b28fa7b146105c4578063ab377daa146105f5578063b81b86301461066f578063b8ff5e78146106a2578063be116c3b146106cc57610181565b80632f54bf6e1161013e5780636e41494b116101185780636e41494b1461051157806375c032621461052657806379ba50971461053b5780637b773c9d1461055057610181565b80632f54bf6e1461047b57806335f13bc7146104ae578063522f6815146104d857610181565b806303bf492e1461032f5780630df813b91461036b5780631f194fe7146103805780632092a55c146103aa57806323b11d8d146104015780632971038814610434575b34156101d65760085461019a903463ffffffff61094516565b6008556007546000908152601060205260409020546101bf903463ffffffff61094516565b60075460009081526010602052604090205561032d565b336000908152600b602052604090205460ff161561032d57600060015b60075461020790600163ffffffff6109a816565b811161032a57600081815260136020908152604080832033845290915290205461023890839063ffffffff61094516565b336000908152600c602052604090205490925081111561032257600081815260126020908152604080832054601090925282205461028d9190610281908663ffffffff6109ea16565b9063ffffffff610a4316565b336000818152600c602090815260408083208790558683526014825280832084845290915280822084905551929350909183156108fc0291849190818181858888f193505050501580156102e5573d6000803e3d6000fd5b506040805182815260208101849052815133927f282046e7e19a40725faef3fde5fd1e87d1479fa568373b67d549532ef53faf6a928290030190a2505b6001016101f3565b50505b005b34801561033b57600080fd5b506103596004803603602081101561035257600080fd5b5035610a85565b60408051918252519081900360200190f35b34801561037757600080fd5b50610359610aab565b34801561038c57600080fd5b50610359600480360360208110156103a357600080fd5b5035610ab1565b3480156103b657600080fd5b506103e3600480360360408110156103cd57600080fd5b506001600160a01b038135169060200135610ac3565b60408051938452602084019290925282820152519081900360600190f35b34801561040d57600080fd5b5061032d6004803603602081101561042457600080fd5b50356001600160a01b0316610bc7565b34801561044057600080fd5b506104676004803603602081101561045757600080fd5b50356001600160a01b0316610c57565b604080519115158252519081900360200190f35b34801561048757600080fd5b506104676004803603602081101561049e57600080fd5b50356001600160a01b0316610c6a565b3480156104ba57600080fd5b50610359600480360360208110156104d157600080fd5b5035610c7e565b3480156104e457600080fd5b5061032d600480360360408110156104fb57600080fd5b506001600160a01b038135169060200135610c90565b34801561051d57600080fd5b50610359610db0565b34801561053257600080fd5b50610359610db6565b34801561054757600080fd5b5061032d610dbc565b34801561055c57600080fd5b506103596004803603604081101561057357600080fd5b506001600160a01b038135169060200135610e99565b34801561059557600080fd5b5061059e610f02565b604080516001600160a01b03938416815291909216602082015281519081900390910190f35b3480156105d057600080fd5b506105d9610f19565b604080516001600160a01b039092168252519081900360200190f35b34801561060157600080fd5b5061061f6004803603602081101561061857600080fd5b5035610f28565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561065b578181015183820152602001610643565b505050509050019250505060405180910390f35b34801561067b57600080fd5b506103596004803603602081101561069257600080fd5b50356001600160a01b0316610ffc565b3480156106ae57600080fd5b50610359600480360360208110156106c557600080fd5b5035611017565b3480156106d857600080fd5b5061032d600480360360208110156106ef57600080fd5b50356001600160a01b0316611029565b34801561070b57600080fd5b506103596004803603602081101561072257600080fd5b50356110b9565b34801561073557600080fd5b506103596004803603602081101561074c57600080fd5b50356001600160a01b0316611105565b34801561076857600080fd5b506103596004803603602081101561077f57600080fd5b50356111a8565b34801561079257600080fd5b5061032d600480360360608110156107a957600080fd5b506001600160a01b038135811691602081013590911690604001356111cd565b3480156107d557600080fd5b5061032d6113bb565b3480156107ea57600080fd5b5061032d6004803603604081101561080157600080fd5b81019060208101813564010000000081111561081c57600080fd5b82018360208201111561082e57600080fd5b8035906020019184602083028401116401000000008311171561085057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156108a057600080fd5b8201836020820111156108b257600080fd5b803590602001918460208302840111640100000000831117156108d457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506114a3945050505050565b34801561091e57600080fd5b5061032d6004803603602081101561093557600080fd5b50356001600160a01b03166117f7565b60008282018381101561099f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061099f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061184b565b6000826109f9575060006109a2565b82820282848281610a0657fe5b041461099f5760405162461bcd60e51b8152600401808060200182810382526021815260200180611bdd6021913960400191505060405180910390fd5b600061099f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e2565b600060126000610a9484611944565b81526020019081526020016000205490505b919050565b60075490565b60009081526011602052604090205490565b600080808315610b2857610afb610ad985610a85565b610281610ae68888610e99565b610aef88610c7e565b9063ffffffff6109ea16565b60008581526014602090815260408083206001600160a01b038a1684529091529020549093509150610bae565b60015b6007548111610bac576000610b58610b4283610a85565b610281610b4f8a86610e99565b610aef86610c7e565b9050610b6a858263ffffffff61094516565b60008381526014602090815260408083206001600160a01b038c168452909152902054909550610ba190859063ffffffff61094516565b935050600101610b2b565b505b610bbe838363ffffffff6109a816565b90509250925092565b610bd033610c6a565b610c0f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b610c2060038263ffffffff61195c16565b6040516001600160a01b038216907f919e434c309b1e05df9dba7a1e2827e10cf511d2eb5330b6fffadf34f0632d0690600090a250565b60006109a260038363ffffffff6119dd16565b6000546001600160a01b0390811691161490565b60009081526010602052604090205490565b610c9933610c6a565b610cd8576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b6001600160a01b038216610d1d5760405162461bcd60e51b8152600401808060200182810382526027815260200180611bb66027913960400191505060405180910390fd5b303181811015610d74576040805162461bcd60e51b815260206004820181905260248201527f57697468647261773a20616d6f756e7420657863656564732062616c616e6365604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610daa573d6000803e3d6000fd5b50505050565b60085490565b60095490565b6001546001600160a01b03163314610e055760405162461bcd60e51b815260040180806020018281038252602c815260200180611cba602c913960400191505060405180910390fd5b33610e415760405162461bcd60e51b8152600401808060200182810382526023815260200180611b726023913960400191505060405180910390fd5b6000805460405133926001600160a01b03909216917f357bdeb5828fa83945f38a88510ce5cd7d628dafb346d767efbc693149fdd97c91a3600080546001600160a01b03199081163317909155600180549091169055565b600080808315610eab57839150610eb1565b60075491505b60015b828111610ef95760008181526013602090815260408083206001600160a01b038a168452909152902054610eef90839063ffffffff61094516565b9150600101610eb4565b50949350505050565b6000546001546001600160a01b0391821692911690565b6002546001600160a01b031690565b60608115610f9a576000828152600d602090815260409182902080548351818402810184019094528084529091830182828015610f8e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f70575b50505050509050610aa6565b600a805480602002602001604051908101604052809291908181526020018280548015610ff057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fd2575b50505050509050919050565b6001600160a01b031660009081526015602052604090205490565b6000908152600f602052604090205490565b61103233610c6a565b611071576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61108260038263ffffffff611a4416565b6040516001600160a01b038216907fc19ec636c33767d631869f17e127e7bc2d0237fbd3720cac3cbd73c1360c72f590600090a250565b6000806110c583611944565b9050600060015b8281116110fd576000818152601060205260409020546110f390839063ffffffff61094516565b91506001016110cc565b509392505050565b6001600160a01b0381166000908152601560205260409020546004544211801561112f5750600081115b15610aa65760006111626001611156600554610281600454426109a890919063ffffffff16565b9063ffffffff61094516565b905060065481111561117757600091506111a2565b60065461119f9061119290610281858563ffffffff6109ea16565b839063ffffffff6109a816565b91505b50919050565b600081156111c557506000818152600d6020526040902054610aa6565b5050600a5490565b6111d633610c6a565b611215576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b826001600160a01b03831661125b5760405162461bcd60e51b8152600401808060200182810382526025815260200180611c956025913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156112a557600080fd5b505afa1580156112b9573d6000803e3d6000fd5b505050506040513d60208110156112cf57600080fd5b5051905082811015611328576040805162461bcd60e51b815260206004820152601e60248201527f5265736375653a20616d6f756e7420657863656564732062616c616e63650000604482015290519081900360640190fd5b816001600160a01b031663a9059cbb85856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b505050506040513d60208110156113b257600080fd5b50505050505050565b6113c433610c57565b6113ff5760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b600754600090815260106020526040902054611462576040805162461bcd60e51b815260206004820152601f60248201527f457468657273206f6e2063757272656e742070616765206973207a65726f2e00604482015290519081900360640190fd5b600780546000908152600f602052604090204390555461148990600163ffffffff61094516565b600781905560095460009182526012602052604090912055565b6114ac33610c57565b6114e75760405162461bcd60e51b815260040180806020018281038252602e815260200180611bfe602e913960400191505060405180910390fd5b80518251146115275760405162461bcd60e51b8152600401808060200182810382526027815260200180611c6e6027913960400191505060405180910390fd5b60005b82518110156117f257600083828151811061154157fe5b60200260200101519050600083838151811061155957fe5b6020908102919091018101516001600160a01b0384166000908152600b90925260409091205490915060ff166115ed57600a805460018082019092557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b0385169081179091556000908152600b60205260409020805460ff191690911790555b6007546000908152600e602090815260408083206001600160a01b038616845290915290205460ff1661167b57600780546000908152600d602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03891690811790915594548452600e8352818420948452939091529020805460ff191690911790555b60095461168e908263ffffffff61094516565b6009556007546000908152601160205260409020546116b3908263ffffffff61094516565b6007805460009081526011602090815260408083209490945560095483548352601282528483205591548152601382528281206001600160a01b03861682529091522054611707908263ffffffff61094516565b60075460009081526013602090815260408083206001600160a01b0387168452825280832093909355601590522054611746908263ffffffff61094516565b6001600160a01b03808416600081815260156020908152604080832095909555600254855163f19158ef60e01b81526004810194909452602484018790523060448501529451949093169363f19158ef936064808501949193918390030190829087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b505050506040513d60208110156117e057600080fd5b50516117e857fe5b505060010161152a565b505050565b61180033610c6a565b61183f576040805162461bcd60e51b81526020600482018190526024820152600080516020611c2c833981519152604482015290519081900360640190fd5b61184881611aab565b50565b600081848411156118da5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561189f578181015183820152602001611887565b50505050905090810190601f1680156118cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836119315760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561189f578181015183820152602001611887565b5082848161193b57fe5b04949350505050565b60008115611953575080610aa6565b50600754610aa6565b61196682826119dd565b156119b8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216611a245760405162461bcd60e51b8152600401808060200182810382526022815260200180611c4c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611a4e82826119dd565b611a895760405162461bcd60e51b8152600401808060200182810382526021815260200180611b956021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038116611af05760405162461bcd60e51b8152600401808060200182810382526026815260200180611b4c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c657220697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6557697468647261773a20726563697069656e7420697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7750726f7879526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050726f787920726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f20616464726573735368617265686f6c646572733a206261746368206c656e677468206973206e6f74206d617463685265736375653a20726563697069656e7420697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206e6577206f776e65722061646472657373a265627a7a72315820df1453a35bf0ca89a94529531314292e5b6e3613b325063c0d67f4628925c39264736f6c634300050b0032

Deployed Bytecode Sourcemap

8919:10377:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16809:9;:13;16805:855;;16847:5;;:20;;16857:9;16847:20;:9;:20;:::i;:::-;16839:5;:28;16915:5;;16903:18;;;;:11;:18;;;;;;:33;;16926:9;16903:33;:22;:33;:::i;:::-;16894:5;;16882:18;;;;:11;:18;;;;;:54;16805:855;;;17005:10;16990:26;;;;:14;:26;;;;;;;;16986:674;;;17033:22;17089:1;17072:577;17097:5;;:12;;17107:1;17097:12;:9;:12;:::i;:::-;17092:1;:17;17072:577;;17171:21;;;;:18;:21;;;;;;;;17193:10;17171:33;;;;;;;;17152:53;;:14;;:53;:18;:53;:::i;:::-;17243:10;17230:24;;;;:12;:24;;;;;;17135:70;;-1:-1:-1;17230:28:0;-1:-1:-1;17226:408:0;;;17283:21;17346:16;;;:13;:16;;;;;;;;;17307:11;:14;;;;;;:56;;17346:16;17307:34;;17326:14;17307:34;:18;:34;:::i;:::-;:38;:56;:38;:56;:::i;:::-;17401:10;17388:24;;;;:12;:24;;;;;;;;:28;;;17439:22;;;:19;:22;;;;;:34;;;;;;;;;:50;;;17514:34;17283:80;;-1:-1:-1;17401:10:0;;17514:34;;;;;17283:80;;17514:34;;17388:24;17514:34;17283:80;17401:10;17514:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;17576:38:0;;;;;;;;;;;;;;17585:10;;17576:38;;;;;;;;17226:408;;17111:3;;17072:577;;;;16986:674;;8919:10377;13535:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13535:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13535:136:0;;:::i;:::-;;;;;;;;;;;;;;;;11555:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11555:77:0;;;:::i;13303:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13303:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13303:118:0;;:::i;14830:917::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14830:917:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14830:917:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;10922:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10922:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10922:127:0;-1:-1:-1;;;;;10922:127:0;;:::i;10674:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10674:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10674:108:0;-1:-1:-1;;;;;10674:108:0;;:::i;:::-;;;;;;;;;;;;;;;;;;6630:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6630:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6630:104:0;-1:-1:-1;;;;;6630:104:0;;:::i;12675:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12675:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12675:118:0;;:::i;8527:343::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8527:343:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8527:343:0;;;;;;;;:::i;11710:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11710:77:0;;;:::i;11883:81::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11883:81:0;;;:::i;7547:334::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7547:334:0;;;:::i;14289:445::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14289:445:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14289:445:0;;;;;;;;:::i;6184:149::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6184:149:0;;;:::i;:::-;;;;-1:-1:-1;;;;;6184:149:0;;;;;;;;;;;;;;;;;;;;;;;;11408:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11408:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;11408:79:0;;;;;;;;;;;;;;12050:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12050:215:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12050:215:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12050:215:0;;;;;;;;;;;;;;;;;15823:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15823:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15823:114:0;-1:-1:-1;;;;;15823:114:0;;:::i;13754:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13754:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13754:129:0;;:::i;11193:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11193:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11193:135:0;-1:-1:-1;;;;;11193:135:0;;:::i;12889:302::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12889:302:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12889:302:0;;:::i;16028:518::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16028:518:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16028:518:0;-1:-1:-1;;;;;16028:518:0;;:::i;12354:227::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12354:227:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12354:227:0;;:::i;8007:409::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8007:409:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8007:409:0;;;;;;;;;;;;;;;;;:::i;17753:271::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17753:271:0;;;:::i;18129:1164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18129:1164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18129:1164:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;18129:1164:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18129:1164:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18129:1164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18129:1164:0;;;;;;;;-1:-1:-1;18129:1164:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;18129:1164:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18129:1164:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;18129:1164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18129:1164:0;;-1:-1:-1;18129:1164:0;;-1:-1:-1;;;;;18129:1164:0:i;7312:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7312:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7312:109:0;-1:-1:-1;;;;;7312:109:0;;:::i;442:181::-;500:7;532:5;;;556:6;;;;548:46;;;;;-1:-1:-1;;;548:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;614:1;-1:-1:-1;442:181:0;;;;;:::o;773:136::-;831:7;858:43;862:1;865;858:43;;;;;;;;;;;;;;;;;:3;:43::i;1386:250::-;1444:7;1468:6;1464:47;;-1:-1:-1;1498:1:0;1491:8;;1464:47;1535:5;;;1539:1;1535;:5;:1;1559:5;;;;;:10;1551:56;;;;-1:-1:-1;;;1551:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:132;1861:7;1888:39;1892:1;1895;1888:39;;;;;;;;;;;;;;;;;:3;:39::i;13535:136::-;13598:7;13625:13;:38;13639:23;13651:10;13639:11;:23::i;:::-;13625:38;;;;;;;;;;;;13618:45;;13535:136;;;;:::o;11555:77::-;11619:5;;11555:77;:::o;13303:118::-;13363:7;13390:23;;;:11;:23;;;;;;;13303:118::o;14830:917::-;14911:14;;;15148;;15144:554;;15188:90;15253:24;15266:10;15253:12;:24::i;:::-;15188:60;15214:33;15227:7;15236:10;15214:12;:33::i;:::-;15188:21;15198:10;15188:9;:21::i;:::-;:25;:60;:25;:60;:::i;:90::-;15304:31;;;;:19;:31;;;;;;;;-1:-1:-1;;;;;15304:40:0;;;;;;;;;;15179:99;;-1:-1:-1;15304:40:0;-1:-1:-1;15144:554:0;;;15405:1;15388:299;15413:5;;15408:1;:10;15388:299;;15444:27;15474:63;15521:15;15534:1;15521:12;:15::i;:::-;15474:42;15491:24;15504:7;15513:1;15491:12;:24::i;:::-;15474:12;15484:1;15474:9;:12::i;:63::-;15444:93;-1:-1:-1;15565:31:0;:6;15444:93;15565:31;:10;:31;:::i;:::-;15639:22;;;;:19;:22;;;;;;;;-1:-1:-1;;;;;15639:31:0;;;;;;;;;;15556:40;;-1:-1:-1;15626:45:0;;:8;;:45;:12;:45;:::i;:::-;15615:56;-1:-1:-1;;15420:3:0;;15388:299;;;;15144:554;15719:20;:6;15730:8;15719:20;:10;:20;:::i;:::-;15710:29;;14830:917;;;;;:::o;10922:127::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;10985:21;:8;10998:7;10985:21;:12;:21;:::i;:::-;11022:19;;-1:-1:-1;;;;;11022:19:0;;;;;;;;10922:127;:::o;10674:108::-;10729:4;10753:21;:8;10766:7;10753:21;:12;:21;:::i;6630:104::-;6685:4;6720:6;-1:-1:-1;;;;;6720:6:0;;;6709:17;;;;6630:104::o;12675:118::-;12735:7;12762:23;;;:11;:23;;;;;;;12675:118::o;8527:343::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8631:23:0;;8623:75;;;;-1:-1:-1;;;8623:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8737:4;8729:21;8771:17;;;;8763:62;;;;;-1:-1:-1;;;8763:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8836:26;;-1:-1:-1;;;;;8836:18:0;;;:26;;;;;8855:6;;8836:26;;;;8855:6;8836:18;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8836:26:0;6533:1;8527:343;;:::o;11710:77::-;11774:5;;11710:77;:::o;11883:81::-;11949:7;;11883:81;:::o;7547:334::-;7614:9;;-1:-1:-1;;;;;7614:9:0;7600:10;:23;7592:80;;;;-1:-1:-1;;;7592:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7691:10;7683:72;;;;-1:-1:-1;;;7683:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:6;;;7773:37;;7799:10;;-1:-1:-1;;;;;7791:6:0;;;;7773:37;;;7821:6;:19;;-1:-1:-1;;;;;;7821:19:0;;;7830:10;7821:19;;;;;7851:22;;;;;;;7547:334::o;14289:445::-;14369:7;;;14447:14;;14443:124;;14487:10;14478:19;;14443:124;;;14550:5;;14541:14;;14443:124;14596:1;14579:120;14604:6;14599:1;:11;14579:120;;14656:21;;;;:18;:21;;;;;;;;-1:-1:-1;;;;;14656:30:0;;;;;;;;;;14643:44;;:8;;:44;:12;:44;:::i;:::-;14632:55;-1:-1:-1;14612:3:0;;14579:120;;;-1:-1:-1;14718:8:0;14289:445;-1:-1:-1;;;;14289:445:0:o;6184:149::-;6222:20;6288:6;;6316:9;-1:-1:-1;;;;;6288:6:0;;;;6316:9;;;6184:149::o;11408:79::-;11473:6;;-1:-1:-1;;;;;11473:6:0;11408:79;:::o;12050:215::-;12113:16;12146:14;;12142:83;;12184:29;;;;:17;:29;;;;;;;;;12177:36;;;;;;;;;;;;;;;;;12184:29;;12177:36;;12184:29;12177:36;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12177:36:0;;;;;;;;;;;;;;;;;;;;;;;;;12142:83;12244:13;12237:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12237:20:0;;;;;;;;;;;;;;;;;;;;;;;12050:215;;;:::o;15823:114::-;-1:-1:-1;;;;;15908:21:0;15881:7;15908:21;;;:12;:21;;;;;;;15823:114::o;13754:129::-;13820:7;13847:28;;;:16;:28;;;;;;;13754:129::o;11193:135::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;11259:24;:8;11275:7;11259:24;:15;:24;:::i;:::-;11299:21;;-1:-1:-1;;;;;11299:21:0;;;;;;;;11193:135;:::o;12889:302::-;12952:7;12972:14;12989:23;13001:10;12989:11;:23::i;:::-;12972:40;-1:-1:-1;13023:16:0;13069:1;13052:104;13077:6;13072:1;:11;13052:104;;13129:14;;;;:11;:14;;;;;;13116:28;;:8;;:28;:12;:28;:::i;:::-;13105:39;-1:-1:-1;13085:3:0;;13052:104;;;-1:-1:-1;13175:8:0;12889:302;-1:-1:-1;;;12889:302:0:o;16028:518::-;-1:-1:-1;;;;;16126:21:0;;16086:16;16126:21;;;:12;:21;;;;;;16170;;16164:3;:27;:43;;;;;16206:1;16195:8;:12;16164:43;16160:379;;;16224:16;16243:63;16304:1;16243:56;16278:20;;16243:30;16251:21;;16243:3;:7;;:30;;;;:::i;:56::-;:60;:63;:60;:63;:::i;:::-;16224:82;;16338:17;;16327:8;:28;16323:205;;;16387:1;16376:12;;16323:205;;;16493:17;;16453:59;;16466:45;;:22;:8;16479;16466:22;:12;:22;:::i;:45::-;16453:8;;:59;:12;:59;:::i;:::-;16442:70;;16323:205;16160:379;16028:518;;;:::o;12354:227::-;12424:7;12448:14;;12444:90;;-1:-1:-1;12486:29:0;;;;:17;:29;;;;;:36;12479:43;;12444:90;-1:-1:-1;;12553:13:0;:20;;12354:227::o;8007:409::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;8136:9;-1:-1:-1;;;;;8165:23:0;;8157:73;;;;-1:-1:-1;;;8157:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8259:31;;;-1:-1:-1;;;8259:31:0;;8284:4;8259:31;;;;;;8241:15;;-1:-1:-1;;;;;8259:16:0;;;;;:31;;;;;;;;;;;;;;;:16;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;8259:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8259:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8259:31:0;;-1:-1:-1;8311:17:0;;;;8303:60;;;;;-1:-1:-1;;;8303:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8374:6;-1:-1:-1;;;;;8374:15:0;;8390:9;8401:6;8374:34;;;;;;;;;;;;;-1:-1:-1;;;;;8374:34:0;-1:-1:-1;;;;;8374:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8374:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8374:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;8007:409:0:o;17753:271::-;10495:19;10503:10;10495:7;:19::i;:::-;10487:78;;;;-1:-1:-1;;;10487:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17820:5;;17829:1;17808:18;;;:11;:18;;;;;;17800:66;;;;;-1:-1:-1;;;17800:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17896:5;;;17879:23;;;;:16;:23;;;;;17905:12;17879:38;;17938:5;:12;;17948:1;17938:12;:9;:12;:::i;:::-;17930:5;:20;;;17984:7;;17961:20;;;;:13;:20;;;;;;:30;17753:271::o;18129:1164::-;10495:19;10503:10;10495:7;:19::i;:::-;10487:78;;;;-1:-1:-1;;;10487:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18262:6;:13;18243:8;:15;:32;18235:84;;;;-1:-1:-1;;;18235:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18337:9;18332:929;18356:8;:15;18352:1;:19;18332:929;;;18393:17;18413:8;18422:1;18413:11;;;;;;;;;;;;;;18393:31;;18439:15;18457:6;18464:1;18457:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18488:25:0;;;;;;:14;:25;;;;;;;;18457:9;;-1:-1:-1;18488:25:0;;18483:147;;18534:13;27:10:-1;;39:1;23:18;;;45:23;;;18534:29:0;;;;-1:-1:-1;;;;;;18534:29:0;-1:-1:-1;;;;;18534:29:0;;;;;;;;-1:-1:-1;18582:25:0;;;:14;18534:29;18582:25;;;;:32;;-1:-1:-1;;18582:32:0;;;;;;18483:147;18670:5;;18651:25;;;;:18;:25;;;;;;;;-1:-1:-1;;;;;18651:36:0;;;;;;;;;;;;18646:180;;18726:5;;;18708:24;;;;:17;:24;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;18708:40:0;;;;;;;;;-1:-1:-1;;;;;;18708:40:0;-1:-1:-1;;;;;18708:40:0;;;;;;;;18786:5;;18767:25;;:18;:25;;;;;:36;;;;;;;;;:43;;-1:-1:-1;;18767:43:0;;;;;;18646:180;18852:7;;:20;;18864:7;18852:20;:11;:20;:::i;:::-;18842:7;:30;18920:5;;18908:18;;;;:11;:18;;;;;;:31;;18931:7;18908:31;:22;:31;:::i;:::-;18899:5;;;18887:18;;;;:11;:18;;;;;;;;:52;;;;18977:7;;18968:5;;18954:20;;:13;:20;;;;;:30;19057:5;;19038:25;;:18;:25;;;;;-1:-1:-1;;;;;19038:36:0;;;;;;;;;:49;;19079:7;19038:49;:40;:49;:::i;:::-;19018:5;;18999:25;;;;:18;:25;;;;;;;;-1:-1:-1;;;;;18999:36:0;;;;;;;;;:88;;;;19130:12;:23;;;;:36;;19158:7;19130:36;:27;:36;:::i;:::-;-1:-1:-1;;;;;19104:23:0;;;;;;;:12;:23;;;;;;;;:62;;;;19188:6;;:60;;-1:-1:-1;;;19188:60:0;;;;;;;;;;;;;;;19242:4;19188:60;;;;;;:6;;;;;:25;;:60;;;;;19104:23;;19188:60;;;;;;;;:6;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;19188:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19188:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19188:60:0;19181:68;;;;-1:-1:-1;;18373:3:0;;18332:929;;;-1:-1:-1;18129:1164:0;;:::o;7312:109::-;6466:19;6474:10;6466:7;:19::i;:::-;6458:64;;;;;-1:-1:-1;;;6458:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6458:64:0;;;;;;;;;;;;;;;7385:28;7404:8;7385:18;:28::i;:::-;7312:109;:::o;1079:192::-;1165:7;1201:12;1193:6;;;;1185:29;;;;-1:-1:-1;;;1185:29: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;1185:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1237:5:0;;;1079:192::o;2122:232::-;2208:7;2310:12;2303:5;2295:28;;;;-1:-1:-1;;;2295:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2295:28:0;;2345:1;2341;:5;;;;;;;2122:232;-1:-1:-1;;;;2122:232:0:o;13972:211::-;14036:7;14060:14;;14056:120;;-1:-1:-1;14098:10:0;14091:17;;14056:120;-1:-1:-1;14159:5:0;;14152:12;;3250:178;3328:18;3332:4;3338:7;3328:3;:18::i;:::-;3327:19;3319:63;;;;;-1:-1:-1;;;3319:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3393:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;3393:27:0;3416:4;3393:27;;;3250:178::o;3786:203::-;3858:4;-1:-1:-1;;;;;3883:21:0;;3875:68;;;;-1:-1:-1;;;3875:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3961:20:0;:11;:20;;;;;;;;;;;;;;;3786:203::o;3508:183::-;3588:18;3592:4;3598:7;3588:3;:18::i;:::-;3580:64;;;;-1:-1:-1;;;3580:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3655:20:0;3678:5;3655:20;;;;;;;;;;;:28;;-1:-1:-1;;3655:28:0;;;3508:183::o;6915:234::-;-1:-1:-1;;;;;6989:22:0;;6981:73;;;;-1:-1:-1;;;6981:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:6;;;7072:38;;-1:-1:-1;;;;;7072:38:0;;;;7093:6;;;7072:38;;;7121:9;:20;;-1:-1:-1;;;;;;7121:20:0;-1:-1:-1;;;;;7121:20:0;;;;;;;;;;6915:234::o

Swarm Source

bzzr://df1453a35bf0ca89a94529531314292e5b6e3613b325063c0d67f4628925c392

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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