Contract 0xc2dA68Cd8B7Fc32CF2fcECC35Ca33471cC91C481 3

 

Contract Overview

EarnX: EarnX Token
Balance:
0 MATIC

MATIC Value:
$0.00
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x34d855e273d0a1a7906ad72a17d2eb4c6bf150d2b3d1891ad31383d21880601fApprove437085792023-06-09 10:02:408 hrs 8 mins ago0xfe2a7aacf71fcdde8b2b16b876cda82cd560a4b8 IN  EarnX: EarnX Token0 MATIC0.012206306563262.016626534
0xcec8d8ed1147d0cbd58f38f3e8e492e4e8c1a125c21dcd30f53bed2d3adc4aedTransfer436830212023-06-08 17:44:101 day 27 mins ago0x5dd697c77e80c7fda3da1cccd5214c3a75503727 IN  EarnX: EarnX Token0 MATIC0.01554165450
0x16e2082188f6fd78c89b4f54f604ba135b9b66641c32fc5949cf8534841d2273Transfer436819372023-06-08 17:04:591 day 1 hr ago0x5dd697c77e80c7fda3da1cccd5214c3a75503727 IN  EarnX: EarnX Token0 MATIC0.02322585450
0x19fb433c3c6e7e478f615f71a757376adb25fed462df4c2ed168f9ff3713fc73Approve427348322023-05-15 12:41:1025 days 5 hrs ago0x0dbba0d183f64fea5b5862979aa463911986d2ca IN  EarnX: EarnX Token0 MATIC0.00748682936 161.625779562
0xb826408e7b3882784ef35a02034c622ff2b6b34962d68873659c875a0fc1c450Transfer394369982023-02-18 16:25:37111 days 1 hr ago0x1786d0ca2b790e80e8c78c4eaa496cae806ff668 IN  EarnX: EarnX Token0 MATIC0.01171225250
0x9fec2c8e9157471a880603f9ce022a749b2bd7c9bde308b0d1c6a4580624a5f5Transfer391834752023-02-11 19:30:31117 days 22 hrs ago0xcda4a75fdde46b571e9f09b74f391b4093f3c7f1 IN  EarnX: EarnX Token0 MATIC0.00535266180
0x9dfb48184a80c4e6cbdc671f5d0205cf56fb38636cf4b55e6b2662732413e1e8Transfer391831172023-02-11 19:17:17117 days 22 hrs ago0xb54f4885ae09555ee9c181bdcc33ae6bcc0e61e5 IN  EarnX: EarnX Token0 MATIC0.007324260521 156.37766129
0xbeb41963fc0a2c4927076b9a8180fc9abc02fd55a69ece0a2788781d1a3394e4Approve386990442023-01-30 9:18:27130 days 8 hrs ago0xb92eea6fc8f6a32f6b1cf5326de1a60f2e9a8220 IN  EarnX: EarnX Token0 MATIC0.016475275415 353.652930408
0x4cc30708ed4251b910cb067a7ad54ccda78415efa6463b3bf6edac50b991f6e9Transfer376663502023-01-04 15:03:17156 days 3 hrs ago0xd778e0ac5cadd11b2cedc3dbd1547898739793a8 IN  EarnX: EarnX Token0 MATIC0.004414766778 94.306427235
0xb7dc749cc26b802acc0f6289d27696d0d3a3ab57b20cc182d1cc3a3db6c9b6c5Approve372375322022-12-24 23:54:53166 days 18 hrs ago0xb54f4885ae09555ee9c181bdcc33ae6bcc0e61e5 IN  EarnX: EarnX Token0 MATIC0.00139861147 30.022141214
0x1e043a3d9468d6df14e3572ad5cfa0b7ead2c7042c6cda45f0892e827d8ef7ecTransfer358523222022-11-20 17:46:13201 days 25 mins ago0x1786d0ca2b790e80e8c78c4eaa496cae806ff668 IN  EarnX: EarnX Token0 MATIC0.0062145180
0x2ee204ece22d13f1afba813d353fccd74af88bff5b142f7be0975560b0eb36a0Transfer349961612022-10-30 18:21:10221 days 23 hrs ago0xce30873a50b5e2461a323c3d225a90d01666ad82 IN  EarnX: EarnX Token0 MATIC0.00535266180
0x0f8b8ff0c7015ff8d663554ba7135d6fe7b2b59f7e21bd6ddd18fb07b876826aTransfer349960252022-10-30 18:16:26221 days 23 hrs ago0xb54f4885ae09555ee9c181bdcc33ae6bcc0e61e5 IN  EarnX: EarnX Token0 MATIC0.00140511 30.00000002
0xd07e02c3413cb71e5ae6f4da99215b6b5b764fc62aebeb6f4a7574c910010d19Transfer347228102022-10-24 1:35:45228 days 16 hrs ago0xce30873a50b5e2461a323c3d225a90d01666ad82 IN  EarnX: EarnX Token0 MATIC0.00534834180
0x0d83e2551584416c54649a73cd4aa311d300b90f74570a60ac3eea1ed5888a39Transfer347222062022-10-24 1:15:01228 days 16 hrs ago0xb54f4885ae09555ee9c181bdcc33ae6bcc0e61e5 IN  EarnX: EarnX Token0 MATIC0.002713553971 78.624111821
0x0c2615fbbe669be16a170fca1df28f65f177efa855ae92b50488e485e6e2eba3Transfer347220632022-10-24 1:10:07228 days 17 hrs ago0xb54f4885ae09555ee9c181bdcc33ae6bcc0e61e5 IN  EarnX: EarnX Token0 MATIC0.00386104418 74.807590726
0x0b1bd6e6be9a651a8bdcbbcc196222e7fed16bcf230a9850775c8539c65a8d76Approve345132002022-10-18 22:25:01233 days 19 hrs ago0xc48c77953d3fe306acf7ec24e1d243470559520c IN  EarnX: EarnX Token0 MATIC0.00882912256 189.523087625
0x8470a4728bf10167a37909d85ae4e59588f9a61d0413ae3777fb50f7b0d49459Approve337290922022-09-29 21:57:55252 days 20 hrs ago0x093df5ca091d7b537f21e1708daed6825733970f IN  EarnX: EarnX Token0 MATIC0.0020544426 44.100000019
0x12d5498f94b809b0b19a4a633cfd01abeede26a2d831b7717a3617cb6b905728Approve330608262022-09-13 17:03:22269 days 1 hr ago0xfe2a7aacf71fcdde8b2b16b876cda82cd560a4b8 IN  EarnX: EarnX Token0 MATIC0.001581594701 33.950000027
0x4def7413a51b2975433ef7da6560509fea976b72fb338637c3388d3fdb477000Transfer319531402022-08-16 9:54:29297 days 8 hrs ago0xe9d2afff18f08375d5b7a8a804e272b6c81ceb9f IN  EarnX: EarnX Token0 MATIC0.004916625003105.00000008
0xdb4013f0ba919c966d7a26b95e825ba6e4a2bc9d7e005ef686dd5cef6e7a214fTransfer302015822022-07-01 4:36:20343 days 13 hrs ago0xdda8fba60ba61809a97769fe326e9f5ecc54944f IN  EarnX: EarnX Token0 MATIC0.004166269509 88.952527056
0x631b66d0c20654055ff4663321d83d18e1cb1a5877d5f00dd5b5f4241e6c75ceTransfer289856792022-05-31 8:40:42374 days 9 hrs ago0xf211fab31eed7f0cae219ab4b39b860f825776bf IN  EarnX: EarnX Token0 MATIC0.00140439 30.000000015
0xab2425b8db94e824d8db2ad62c100bc5108fb84000accf0742c4a2a8dc7671f7Transfer289305522022-05-29 23:20:05375 days 18 hrs ago0xa935433de1e70538269c417a01543b3da8478a48 IN  EarnX: EarnX Token0 MATIC0.001451203002 31.000000051
0x938824d2bf545af43ae77e4a610c1ffade7f7f542cc027503c9a0d7189b4c377Transfer287975582022-05-26 15:42:48379 days 2 hrs ago0x10b6bdd01c10f11ae0687f39f6d4da996eb05585 IN  EarnX: EarnX Token0 MATIC0.001176390056 53.319587373
0x12bf62884b71f97ffec78e38031511967e3257a7ab3f20e19591d6fea1b852a8Mint286313542022-05-22 13:26:05383 days 4 hrs ago0x10b6bdd01c10f11ae0687f39f6d4da996eb05585 IN  EarnX: EarnX Token0.021 MATIC0.000641364077 30.041879126
[ Download CSV Export 

OVERVIEW

EarnX is a utility token for the EarnX exclusive Antique & Unique Physical NFTs powered by Native Arts.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EarnXV2

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-03-02
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;


library Address {

    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }


    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



interface IERC20 {
    function totalSupply() external view returns (uint256);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    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);
}



library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}



abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}



abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}



contract EarnXV2 is Context, IERC20, Ownable {
    using SafeERC20 for IERC20;
    using Address for address;

    mapping (address => uint256) private _balances;
    mapping (address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    uint8 private _decimals;
    string private _name;
    string private _symbol;

    constructor() {
        _name = "EarnX";
        _symbol = "EarnX";
        _decimals = 18;
        _totalSupply = 69100000 * 10 ** 18;
        _balances[_msgSender()] = _totalSupply;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() external view virtual override returns (string memory) {
        return _name;
    }

    function symbol() external view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() external view virtual override returns (uint8) {
        return _decimals;
    }

    function totalSupply() external view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
        require(recipient != _msgSender());
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) external view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    unchecked {
        _approve(sender, _msgSender(), currentAllowance - amount);
    }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    unchecked {
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    }

        return true;
    }

    function mint(uint256 amount) external onlyOwner returns (bool) {
        _mint(_msgSender(), amount);
        return true;
    }

    function burn(uint256 amount) external virtual {
        _burn(_msgSender(), amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
        _balances[sender] = senderBalance - amount;
    }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    unchecked {
        _balances[account] = accountBalance - amount;
    }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}


    function rescueToken(address tokenAddress, address to) external onlyOwner {
        uint256 amount = IERC20(tokenAddress).balanceOf(address(this));
        IERC20(tokenAddress).safeTransfer(to,amount);
    }

    function rescue(address to) external payable onlyOwner {
        require(payable(to).send(address(this).balance));
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"rescue","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506200001d3362000114565b6040805180820190915260058082526408ac2e4dcb60db1b602090920191825262000049918162000164565b506040805180820190915260058082526408ac2e4dcb60db1b6020909201918252620000789160069162000164565b506004805460ff191660121790556a39287e81851d575b800000600381905560016000620000a33390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200010691815260200190565b60405180910390a362000247565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805462000172906200020a565b90600052602060002090601f016020900481019282620001965760008555620001e1565b82601f10620001b157805160ff1916838001178555620001e1565b82800160010185558215620001e1579182015b82811115620001e1578251825591602001919060010190620001c4565b50620001ef929150620001f3565b5090565b5b80821115620001ef5760008155600101620001f4565b600181811c908216806200021f57607f821691505b602082108114156200024157634e487b7160e01b600052602260045260246000fd5b50919050565b61129f80620002576000396000f3fe6080604052600436106101095760003560e01c8063715018a611610095578063a0712d6811610064578063a0712d68146102c7578063a457c2d7146102e7578063a9059cbb14610307578063dd62ed3e14610327578063f2fde38b1461036d57600080fd5b8063715018a614610262578063839006f2146102775780638da5cb5b1461028a57806395d89b41146102b257600080fd5b8063313ce567116100dc578063313ce567146101a857806339509351146101ca57806342966c68146101ea5780634707d0001461020c57806370a082311461022c57600080fd5b806306fdde031461010e578063095ea7b31461013957806318160ddd1461016957806323b872dd14610188575b600080fd5b34801561011a57600080fd5b5061012361038d565b6040516101309190611046565b60405180910390f35b34801561014557600080fd5b50610159610154366004611090565b61041f565b6040519015158152602001610130565b34801561017557600080fd5b506003545b604051908152602001610130565b34801561019457600080fd5b506101596101a33660046110ba565b610435565b3480156101b457600080fd5b5060045460405160ff9091168152602001610130565b3480156101d657600080fd5b506101596101e5366004611090565b6104e6565b3480156101f657600080fd5b5061020a6102053660046110f6565b610522565b005b34801561021857600080fd5b5061020a61022736600461110f565b61052f565b34801561023857600080fd5b5061017a610247366004611142565b6001600160a01b031660009081526001602052604090205490565b34801561026e57600080fd5b5061020a6105df565b61020a610285366004611142565b610615565b34801561029657600080fd5b506000546040516001600160a01b039091168152602001610130565b3480156102be57600080fd5b5061012361066c565b3480156102d357600080fd5b506101596102e23660046110f6565b61067b565b3480156102f357600080fd5b50610159610302366004611090565b6106b9565b34801561031357600080fd5b50610159610322366004611090565b610752565b34801561033357600080fd5b5061017a61034236600461110f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561037957600080fd5b5061020a610388366004611142565b610775565b60606005805461039c9061115d565b80601f01602080910402602001604051908101604052809291908181526020018280546103c89061115d565b80156104155780601f106103ea57610100808354040283529160200191610415565b820191906000526020600020905b8154815290600101906020018083116103f857829003601f168201915b5050505050905090565b600061042c33848461080d565b50600192915050565b6000610442848484610931565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104cc5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104d9853385840361080d565b60019150505b9392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161042c91859061051d9086906111ae565b61080d565b61052c3382610b01565b50565b6000546001600160a01b031633146105595760405162461bcd60e51b81526004016104c3906111c6565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c491906111fb565b90506105da6001600160a01b0384168383610c4f565b505050565b6000546001600160a01b031633146106095760405162461bcd60e51b81526004016104c3906111c6565b6106136000610ca1565b565b6000546001600160a01b0316331461063f5760405162461bcd60e51b81526004016104c3906111c6565b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505061052c57600080fd5b60606006805461039c9061115d565b600080546001600160a01b031633146106a65760405162461bcd60e51b81526004016104c3906111c6565b6106b03383610cf1565b5060015b919050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561073b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104c3565b610748338585840361080d565b5060019392505050565b60006001600160a01b03831633141561076a57600080fd5b61042c338484610931565b6000546001600160a01b0316331461079f5760405162461bcd60e51b81526004016104c3906111c6565b6001600160a01b0381166108045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c3565b61052c81610ca1565b6001600160a01b03831661086f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b0382166108d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109955760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b0382166109f75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b6001600160a01b03831660009081526001602052604090205481811015610a6f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104c3565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610aa69084906111ae565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610af291815260200190565b60405180910390a35b50505050565b6001600160a01b038216610b615760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104c3565b6001600160a01b03821660009081526001602052604090205481811015610bd55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104c3565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610c04908490611214565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526105da908490610dd0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216610d475760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104c3565b8060036000828254610d5991906111ae565b90915550506001600160a01b03821660009081526001602052604081208054839290610d869084906111ae565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000610e25826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ea29092919063ffffffff16565b8051909150156105da5780806020019051810190610e43919061122b565b6105da5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016104c3565b6060610eb18484600085610eb9565b949350505050565b606082471015610f1a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016104c3565b843b610f685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104c3565b600080866001600160a01b03168587604051610f84919061124d565b60006040518083038185875af1925050503d8060008114610fc1576040519150601f19603f3d011682016040523d82523d6000602084013e610fc6565b606091505b5091509150610fd6828286610fe1565b979650505050505050565b60608315610ff05750816104df565b8251156110005782518084602001fd5b8160405162461bcd60e51b81526004016104c39190611046565b60005b8381101561103557818101518382015260200161101d565b83811115610afb5750506000910152565b602081526000825180602084015261106581604085016020870161101a565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146106b457600080fd5b600080604083850312156110a357600080fd5b6110ac83611079565b946020939093013593505050565b6000806000606084860312156110cf57600080fd5b6110d884611079565b92506110e660208501611079565b9150604084013590509250925092565b60006020828403121561110857600080fd5b5035919050565b6000806040838503121561112257600080fd5b61112b83611079565b915061113960208401611079565b90509250929050565b60006020828403121561115457600080fd5b6104df82611079565b600181811c9082168061117157607f821691505b6020821081141561119257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156111c1576111c1611198565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561120d57600080fd5b5051919050565b60008282101561122657611226611198565b500390565b60006020828403121561123d57600080fd5b815180151581146104df57600080fd5b6000825161125f81846020870161101a565b919091019291505056fea26469706673582212202e4bf17a8ce576dd43e5a3b0f24d700c883663634d372f724e64dd40576c0c8a64736f6c634300080a0033

Deployed ByteCode Sourcemap

7161:5722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7802:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8782:171;;;;;;;;;;-1:-1:-1;8782:171:0;;;;;:::i;:::-;;:::i;:::-;;;1267:14:1;;1260:22;1242:41;;1230:2;1215:18;8782:171:0;1102:187:1;8136:110:0;;;;;;;;;;-1:-1:-1;8226:12:0;;8136:110;;;1440:25:1;;;1428:2;1413:18;8136:110:0;1294:177:1;8961:448:0;;;;;;;;;;-1:-1:-1;8961:448:0;;;;;:::i;:::-;;:::i;8026:102::-;;;;;;;;;;-1:-1:-1;8111:9:0;;8026:102;;8111:9;;;;1951:36:1;;1939:2;1924:18;8026:102:0;1809:184:1;9417:217:0;;;;;;;;;;-1:-1:-1;9417:217:0;;;;;:::i;:::-;;:::i;10193:93::-;;;;;;;;;;-1:-1:-1;10193:93:0;;;;;:::i;:::-;;:::i;:::-;;12538:210;;;;;;;;;;-1:-1:-1;12538:210:0;;;;;:::i;:::-;;:::i;8254:129::-;;;;;;;;;;-1:-1:-1;8254:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;8357:18:0;8330:7;8357:18;;;:9;:18;;;;;;;8254:129;6639:103;;;;;;;;;;;;;:::i;12756:122::-;;;;;;:::i;:::-;;:::i;6416:87::-;;;;;;;;;;-1:-1:-1;6462:7:0;6489:6;6416:87;;-1:-1:-1;;;;;6489:6:0;;;2785:51:1;;2773:2;2758:18;6416:87:0;2639:203:1;7912:106:0;;;;;;;;;;;;;:::i;10053:132::-;;;;;;;;;;-1:-1:-1;10053:132:0;;;;;:::i;:::-;;:::i;9642:403::-;;;;;;;;;;-1:-1:-1;9642:403:0;;;;;:::i;:::-;;:::i;8391:222::-;;;;;;;;;;-1:-1:-1;8391:222:0;;;;;:::i;:::-;;:::i;8621:153::-;;;;;;;;;;-1:-1:-1;8621:153:0;;;;;:::i;:::-;-1:-1:-1;;;;;8739:18:0;;;8712:7;8739:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8621:153;6750:201;;;;;;;;;;-1:-1:-1;6750:201:0;;;;;:::i;:::-;;:::i;7802:102::-;7858:13;7891:5;7884:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7802:102;:::o;8782:171::-;8867:4;8884:39;5939:10;8907:7;8916:6;8884:8;:39::i;:::-;-1:-1:-1;8941:4:0;8782:171;;;;:::o;8961:448::-;9069:4;9086:36;9096:6;9104:9;9115:6;9086:9;:36::i;:::-;-1:-1:-1;;;;;9162:19:0;;9135:24;9162:19;;;:11;:19;;;;;;;;5939:10;9162:33;;;;;;;;9214:26;;;;9206:79;;;;-1:-1:-1;;;9206:79:0;;3434:2:1;9206:79:0;;;3416:21:1;3473:2;3453:18;;;3446:30;3512:34;3492:18;;;3485:62;-1:-1:-1;;;3563:18:1;;;3556:38;3611:19;;9206:79:0;;;;;;;;;9313:57;9322:6;5939:10;9363:6;9344:16;:25;9313:8;:57::i;:::-;9397:4;9390:11;;;8961:448;;;;;;:::o;9417:217::-;5939:10;9507:4;9556:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9556:34:0;;;;;;;;;;9507:4;;9524:80;;9547:7;;9556:47;;9593:10;;9556:47;:::i;:::-;9524:8;:80::i;10193:93::-;10251:27;5939:10;10271:6;10251:5;:27::i;:::-;10193:93;:::o;12538:210::-;6462:7;6489:6;-1:-1:-1;;;;;6489:6:0;5939:10;6551:23;6543:68;;;;-1:-1:-1;;;6543:68:0;;;;;;;:::i;:::-;12640:45:::1;::::0;-1:-1:-1;;;12640:45:0;;12679:4:::1;12640:45;::::0;::::1;2785:51:1::0;12623:14:0::1;::::0;-1:-1:-1;;;;;12640:30:0;::::1;::::0;::::1;::::0;2758:18:1;;12640:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12623:62:::0;-1:-1:-1;12696:44:0::1;-1:-1:-1::0;;;;;12696:33:0;::::1;12730:2:::0;12623:62;12696:33:::1;:44::i;:::-;12612:136;12538:210:::0;;:::o;6639:103::-;6462:7;6489:6;-1:-1:-1;;;;;6489:6:0;5939:10;6551:23;6543:68;;;;-1:-1:-1;;;6543:68:0;;;;;;;:::i;:::-;6704:30:::1;6731:1;6704:18;:30::i;:::-;6639:103::o:0;12756:122::-;6462:7;6489:6;-1:-1:-1;;;;;6489:6:0;5939:10;6551:23;6543:68;;;;-1:-1:-1;;;6543:68:0;;;;;;;:::i;:::-;12830:39:::1;::::0;-1:-1:-1;;;;;12830:16:0;::::1;::::0;12847:21:::1;12830:39:::0;::::1;;;::::0;::::1;::::0;;;12847:21;12830:16;:39;::::1;;;;;;12822:48;;;::::0;::::1;7912:106:::0;7970:13;8003:7;7996:14;;;;;:::i;10053:132::-;10111:4;6489:6;;-1:-1:-1;;;;;6489:6:0;5939:10;6551:23;6543:68;;;;-1:-1:-1;;;6543:68:0;;;;;;;:::i;:::-;10128:27:::1;5939:10:::0;10148:6:::1;10128:5;:27::i;:::-;-1:-1:-1::0;10173:4:0::1;6622:1;10053:132:::0;;;:::o;9642:403::-;5939:10;9737:4;9781:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9781:34:0;;;;;;;;;;9834:35;;;;9826:85;;;;-1:-1:-1;;;9826:85:0;;4658:2:1;9826:85:0;;;4640:21:1;4697:2;4677:18;;;4670:30;4736:34;4716:18;;;4709:62;-1:-1:-1;;;4787:18:1;;;4780:35;4832:19;;9826:85:0;4456:401:1;9826:85:0;9939:67;5939:10;9962:7;9990:15;9971:16;:34;9939:8;:67::i;:::-;-1:-1:-1;10033:4:0;;9642:403;-1:-1:-1;;;9642:403:0:o;8391:222::-;8479:4;-1:-1:-1;;;;;8504:25:0;;5939:10;8504:25;;8496:34;;;;;;8541:42;5939:10;8565:9;8576:6;8541:9;:42::i;6750:201::-;6462:7;6489:6;-1:-1:-1;;;;;6489:6:0;5939:10;6551:23;6543:68;;;;-1:-1:-1;;;6543:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6839:22:0;::::1;6831:73;;;::::0;-1:-1:-1;;;6831:73:0;;5064:2:1;6831:73:0::1;::::0;::::1;5046:21:1::0;5103:2;5083:18;;;5076:30;5142:34;5122:18;;;5115:62;-1:-1:-1;;;5193:18:1;;;5186:36;5239:19;;6831:73:0::1;4862:402:1::0;6831:73:0::1;6915:28;6934:8;6915:18;:28::i;11983:346::-:0;-1:-1:-1;;;;;12085:19:0;;12077:68;;;;-1:-1:-1;;;12077:68:0;;5471:2:1;12077:68:0;;;5453:21:1;5510:2;5490:18;;;5483:30;5549:34;5529:18;;;5522:62;-1:-1:-1;;;5600:18:1;;;5593:34;5644:19;;12077:68:0;5269:400:1;12077:68:0;-1:-1:-1;;;;;12164:21:0;;12156:68;;;;-1:-1:-1;;;12156:68:0;;5876:2:1;12156:68:0;;;5858:21:1;5915:2;5895:18;;;5888:30;5954:34;5934:18;;;5927:62;-1:-1:-1;;;6005:18:1;;;5998:32;6047:19;;12156:68:0;5674:398:1;12156:68:0;-1:-1:-1;;;;;12237:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12289:32;;1440:25:1;;;12289:32:0;;1413:18:1;12289:32:0;;;;;;;11983:346;;;:::o;10294:687::-;-1:-1:-1;;;;;10400:20:0;;10392:70;;;;-1:-1:-1;;;10392:70:0;;6279:2:1;10392:70:0;;;6261:21:1;6318:2;6298:18;;;6291:30;6357:34;6337:18;;;6330:62;-1:-1:-1;;;6408:18:1;;;6401:35;6453:19;;10392:70:0;6077:401:1;10392:70:0;-1:-1:-1;;;;;10481:23:0;;10473:71;;;;-1:-1:-1;;;10473:71:0;;6685:2:1;10473:71:0;;;6667:21:1;6724:2;6704:18;;;6697:30;6763:34;6743:18;;;6736:62;-1:-1:-1;;;6814:18:1;;;6807:33;6857:19;;10473:71:0;6483:399:1;10473:71:0;-1:-1:-1;;;;;10641:17:0;;10617:21;10641:17;;;:9;:17;;;;;;10677:23;;;;10669:74;;;;-1:-1:-1;;;10669:74:0;;7089:2:1;10669:74:0;;;7071:21:1;7128:2;7108:18;;;7101:30;7167:34;7147:18;;;7140:62;-1:-1:-1;;;7218:18:1;;;7211:36;7264:19;;10669:74:0;6887:402:1;10669:74:0;-1:-1:-1;;;;;10771:17:0;;;;;;;:9;:17;;;;;;10791:22;;;10771:42;;10831:20;;;;;;;;:30;;10807:6;;10771:17;10831:30;;10807:6;;10831:30;:::i;:::-;;;;;;;;10896:9;-1:-1:-1;;;;;10879:35:0;10888:6;-1:-1:-1;;;;;10879:35:0;;10907:6;10879:35;;;;1440:25:1;;1428:2;1413:18;;1294:177;10879:35:0;;;;;;;;10927:46;10381:600;10294:687;;;:::o;11396:579::-;-1:-1:-1;;;;;11480:21:0;;11472:67;;;;-1:-1:-1;;;11472:67:0;;7496:2:1;11472:67:0;;;7478:21:1;7535:2;7515:18;;;7508:30;7574:34;7554:18;;;7547:62;-1:-1:-1;;;7625:18:1;;;7618:31;7666:19;;11472:67:0;7294:397:1;11472:67:0;-1:-1:-1;;;;;11639:18:0;;11614:22;11639:18;;;:9;:18;;;;;;11676:24;;;;11668:71;;;;-1:-1:-1;;;11668:71:0;;7898:2:1;11668:71:0;;;7880:21:1;7937:2;7917:18;;;7910:30;7976:34;7956:18;;;7949:62;-1:-1:-1;;;8027:18:1;;;8020:32;8069:19;;11668:71:0;7696:398:1;11668:71:0;-1:-1:-1;;;;;11767:18:0;;;;;;:9;:18;;;;;11788:23;;;11767:44;;11829:12;:22;;11805:6;;11767:18;11829:22;;11805:6;;11829:22;:::i;:::-;;;;-1:-1:-1;;11869:37:0;;1440:25:1;;;11895:1:0;;-1:-1:-1;;;;;11869:37:0;;;;;1428:2:1;1413:18;11869:37:0;;;;;;;12612:136:::1;12538:210:::0;;:::o;4880:211::-;5024:58;;;-1:-1:-1;;;;;8421:32:1;;5024:58:0;;;8403:51:1;8470:18;;;;8463:34;;;5024:58:0;;;;;;;;;;8376:18:1;;;;5024:58:0;;;;;;;;-1:-1:-1;;;;;5024:58:0;-1:-1:-1;;;5024:58:0;;;4997:86;;5017:5;;4997:19;:86::i;6959:191::-;7033:16;7052:6;;-1:-1:-1;;;;;7069:17:0;;;-1:-1:-1;;;;;;7069:17:0;;;;;;7102:40;;7052:6;;;;;;;7102:40;;7033:16;7102:40;7022:128;6959:191;:::o;10989:399::-;-1:-1:-1;;;;;11073:21:0;;11065:65;;;;-1:-1:-1;;;11065:65:0;;8710:2:1;11065:65:0;;;8692:21:1;8749:2;8729:18;;;8722:30;8788:33;8768:18;;;8761:61;8839:18;;11065:65:0;8508:355:1;11065:65:0;11221:6;11205:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11238:18:0;;;;;;:9;:18;;;;;:28;;11260:6;;11238:18;:28;;11260:6;;11238:28;:::i;:::-;;;;-1:-1:-1;;11282:37:0;;1440:25:1;;;-1:-1:-1;;;;;11282:37:0;;;11299:1;;11282:37;;1428:2:1;1413:18;11282:37:0;;;;;;;10989:399;;:::o;5099:716::-;5523:23;5549:69;5577:4;5549:69;;;;;;;;;;;;;;;;;5557:5;-1:-1:-1;;;;;5549:27:0;;;:69;;;;;:::i;:::-;5633:17;;5523:95;;-1:-1:-1;5633:21:0;5629:179;;5730:10;5719:30;;;;;;;;;;;;:::i;:::-;5711:85;;;;-1:-1:-1;;;5711:85:0;;9352:2:1;5711:85:0;;;9334:21:1;9391:2;9371:18;;;9364:30;9430:34;9410:18;;;9403:62;-1:-1:-1;;;9481:18:1;;;9474:40;9531:19;;5711:85:0;9150:406:1;994:229:0;1131:12;1163:52;1185:6;1193:4;1199:1;1202:12;1163:21;:52::i;:::-;1156:59;994:229;-1:-1:-1;;;;994:229:0:o;1499:510::-;1669:12;1727:5;1702:21;:30;;1694:81;;;;-1:-1:-1;;;1694:81:0;;9763:2:1;1694:81:0;;;9745:21:1;9802:2;9782:18;;;9775:30;9841:34;9821:18;;;9814:62;-1:-1:-1;;;9892:18:1;;;9885:36;9938:19;;1694:81:0;9561:402:1;1694:81:0;412:20;;1786:60;;;;-1:-1:-1;;;1786:60:0;;10170:2:1;1786:60:0;;;10152:21:1;10209:2;10189:18;;;10182:30;10248:31;10228:18;;;10221:59;10297:18;;1786:60:0;9968:353:1;1786:60:0;1860:12;1874:23;1901:6;-1:-1:-1;;;;;1901:11:0;1920:5;1927:4;1901:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:73;;;;1950:51;1967:7;1976:10;1988:12;1950:16;:51::i;:::-;1943:58;1499:510;-1:-1:-1;;;;;;;1499:510:0:o;3239:712::-;3389:12;3418:7;3414:530;;;-1:-1:-1;3449:10:0;3442:17;;3414:530;3563:17;;:21;3559:374;;3761:10;3755:17;3822:15;3809:10;3805:2;3801:19;3794:44;3559:374;3904:12;3897:20;;-1:-1:-1;;;3897:20:0;;;;;;;;:::i;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;-1:-1:-1;;262:1:1;244:16;;237:27;14:258::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:173::-;733:20;;-1:-1:-1;;;;;782:31:1;;772:42;;762:70;;828:1;825;818:12;843:254;911:6;919;972:2;960:9;951:7;947:23;943:32;940:52;;;988:1;985;978:12;940:52;1011:29;1030:9;1011:29;:::i;:::-;1001:39;1087:2;1072:18;;;;1059:32;;-1:-1:-1;;;843:254:1:o;1476:328::-;1553:6;1561;1569;1622:2;1610:9;1601:7;1597:23;1593:32;1590:52;;;1638:1;1635;1628:12;1590:52;1661:29;1680:9;1661:29;:::i;:::-;1651:39;;1709:38;1743:2;1732:9;1728:18;1709:38;:::i;:::-;1699:48;;1794:2;1783:9;1779:18;1766:32;1756:42;;1476:328;;;;;:::o;1998:180::-;2057:6;2110:2;2098:9;2089:7;2085:23;2081:32;2078:52;;;2126:1;2123;2116:12;2078:52;-1:-1:-1;2149:23:1;;1998:180;-1:-1:-1;1998:180:1:o;2183:260::-;2251:6;2259;2312:2;2300:9;2291:7;2287:23;2283:32;2280:52;;;2328:1;2325;2318:12;2280:52;2351:29;2370:9;2351:29;:::i;:::-;2341:39;;2399:38;2433:2;2422:9;2418:18;2399:38;:::i;:::-;2389:48;;2183:260;;;;;:::o;2448:186::-;2507:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:52;;;2576:1;2573;2566:12;2528:52;2599:29;2618:9;2599:29;:::i;2847:380::-;2926:1;2922:12;;;;2969;;;2990:61;;3044:4;3036:6;3032:17;3022:27;;2990:61;3097:2;3089:6;3086:14;3066:18;3063:38;3060:161;;;3143:10;3138:3;3134:20;3131:1;3124:31;3178:4;3175:1;3168:15;3206:4;3203:1;3196:15;3060:161;;2847:380;;;:::o;3641:127::-;3702:10;3697:3;3693:20;3690:1;3683:31;3733:4;3730:1;3723:15;3757:4;3754:1;3747:15;3773:128;3813:3;3844:1;3840:6;3837:1;3834:13;3831:39;;;3850:18;;:::i;:::-;-1:-1:-1;3886:9:1;;3773:128::o;3906:356::-;4108:2;4090:21;;;4127:18;;;4120:30;4186:34;4181:2;4166:18;;4159:62;4253:2;4238:18;;3906:356::o;4267:184::-;4337:6;4390:2;4378:9;4369:7;4365:23;4361:32;4358:52;;;4406:1;4403;4396:12;4358:52;-1:-1:-1;4429:16:1;;4267:184;-1:-1:-1;4267:184:1:o;8099:125::-;8139:4;8167:1;8164;8161:8;8158:34;;;8172:18;;:::i;:::-;-1:-1:-1;8209:9:1;;8099:125::o;8868:277::-;8935:6;8988:2;8976:9;8967:7;8963:23;8959:32;8956:52;;;9004:1;9001;8994:12;8956:52;9036:9;9030:16;9089:5;9082:13;9075:21;9068:5;9065:32;9055:60;;9111:1;9108;9101:12;10326:274;10455:3;10493:6;10487:13;10509:53;10555:6;10550:3;10543:4;10535:6;10531:17;10509:53;:::i;:::-;10578:16;;;;;10326:274;-1:-1:-1;;10326:274:1:o

Swarm Source

ipfs://2e4bf17a8ce576dd43e5a3b0f24d700c883663634d372f724e64dd40576c0c8a
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.