Contract 0xddf439b825d93037919ad6dbe894ea634c06d22e 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4cf5a2f8eb42a3e72443d10904d97bc500c07fb87fe48601d350b4b89c6859dbSwap104763322021-12-01 1:43:4823 hrs 39 mins ago0x1c1bdadd6b167f4a60dfeccc525534bf0f5bf323 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00040561752.5
0xfaffc5b89a8dd3b74b542d238eddf27cf2debda47ea91e86f5507a318b0948b5Create Nft Order104557592021-11-30 8:35:091 day 16 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001569425 2.5
0xb2ace7ecdaec9c7d71d86bfd47f41afc8ec6d7e0dbfadabe1c09b986fa9dcfaeSwap104555082021-11-30 8:22:361 day 17 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.0003628675 2.5
0x5d2c3bb2d57bd82e9ffd04b5f0928ba296655d6298272f7b8cefe31e9b7be941Create Nft Order104551322021-11-30 8:03:481 day 17 hrs ago0x2c1869298d8ce9b807b1c32a42cc4f875abe38f2 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001569425 2.5
0x96f442fcee3f1c4731ac770ddcf1ad97431e4dd4f595e4cfc71aec8d6e7063b3Width Draw104547252021-11-30 7:43:271 day 17 hrs ago0x2c1869298d8ce9b807b1c32a42cc4f875abe38f2 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00025228 2.5
0xb7549a6cb3480260096f2028573f79cc98549dbadb241a5bd20e8e38ed67eef2Create Nft Order...104547092021-11-30 7:42:391 day 17 hrs ago0x2c1869298d8ce9b807b1c32a42cc4f875abe38f2 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001561315 2.5
0x96392dcd220899bfe30bf3faea3b67a9e77ae799cfa203bf12605b28d11887afWidth Draw104547022021-11-30 7:42:181 day 17 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00025228 2.5
0xdb13acdf15d44d6216156893725cac074aef3ed61f444a624858980a0e2f7137Swap104542952021-11-30 7:21:571 day 18 hrs ago0x2c1869298d8ce9b807b1c32a42cc4f875abe38f2 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.0003886025 2.5
0xeb2f26a987aa82d37fc2323448cace5650d50233300254e745b2820f21980cbaCreate Nft Order104542792021-11-30 7:21:091 day 18 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001531675 2.5
0xda56d9ff926afb94cbce49e14eb0d3d2e355c56f0db0fa82a3818b3c4e2fd3e8Swap104540192021-11-30 7:08:091 day 18 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.0003251175 2.5
0xa6bc6cb24cc79daf38973e218b6d31f189a6b1a950ea841590614485a111fe8eCreate Nft Order104534012021-11-30 6:37:151 day 18 hrs ago0xf4eb6c03a453968692f9a0be4dbb8e958d04936b IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00160716 2.5
0x8aaf9c22a1a310d76bb062e039e2279ec8f0bb9563fc5bcd790877ec31448961Create Nft Order104533592021-11-30 6:35:091 day 18 hrs ago0xf4eb6c03a453968692f9a0be4dbb8e958d04936b IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00168066 2.5
0xe202398660933ecfef1d588ea9f16ba6e5238d7a573dabfa79a749950ab44689Width Draw104279462021-11-29 9:24:302 days 15 hrs ago0xfa2575f2a0964e329bcd61a6dc2bf24b886c1f60 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00031405 2.5
0x62ab893ee1aa28c2f75886ca89ae256ac6b6fd35cd9e21ced50a37e5191dfd92Set Swap Fee104278852021-11-29 9:21:272 days 16 hrs ago0xa84201332d69d3bb287df715ebb89457987bf2c4 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00006446925 2.25
0xf9fdbdccc93b0fe957d77f3ad0af61ae1d8efc84bfe77d368a7cb45e47c6afe1Width Draw104275782021-11-29 9:06:062 days 16 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00024528 2.5
0x57eab288addbe556e6fd209bd12997a9eac61c459128278bcfe71cd3280408c4Create Nft Order...104274832021-11-29 9:01:212 days 16 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001554315 2.5
0x88cf39ee55b1996f6e52331cd4d268dc9107f6313e6b5af86d7fb3f8a6eb60fdSwap104273132021-11-29 8:52:512 days 16 hrs ago0x5b5f1ddf71d98c41746ae2ed7fc6b3a603b5d9a0 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.0003558675 2.5
0xaabdf2610dcf2d02c24ad639b1a238a1414fcdc5d360c292a596004e7e77c4e3Create Nft Order104272852021-11-29 8:51:272 days 16 hrs ago0xfa2575f2a0964e329bcd61a6dc2bf24b886c1f60 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00163794 2.5
0x4c94e51c2fab3e8f6b316bcf398da3dc5365f19340ebf954a577cb91df7d4f28Create Nft Order...104249192021-11-29 6:53:092 days 18 hrs ago0xfa2575f2a0964e329bcd61a6dc2bf24b886c1f60 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.0017087275 2.5
0x0121b7835c9d5c323b2fcf376f2a214e2cb9fa20eca2b9754e0ad3166d35ee69Swap104244062021-11-29 6:27:302 days 18 hrs ago0x2c1869298d8ce9b807b1c32a42cc4f875abe38f2 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.0003986175 2.5
0x494a26822c0832f3d2b4e10770ae2f07070354d049fe7a0d9e923d905972ef39Create Nft Order104243482021-11-29 6:24:362 days 18 hrs ago0xfa2575f2a0964e329bcd61a6dc2bf24b886c1f60 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001612205 2.5
0x59c2e79b34a99f619d1d2fca8e0817542e6c8891017d5bb1259ec5bda83b0ba1Width Draw104242812021-11-29 6:21:152 days 19 hrs ago0xfa2575f2a0964e329bcd61a6dc2bf24b886c1f60 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.00025225 2.5
0x5bb5fc554cdf28018ae7f5b45283d0a065b395faad1604548f180fe8b15afcdbCreate Nft Order...104238382021-11-29 5:59:062 days 19 hrs ago0xfa2575f2a0964e329bcd61a6dc2bf24b886c1f60 IN 0xddf439b825d93037919ad6dbe894ea634c06d22e0 HT0.001440815 2.5
0xa96db68a2dff2046ea1beaf2c7e2db98fcdbcfb7c548e1da3da41bd5c575cd2f0x60806040103376512021-11-26 6:09:455 days 19 hrs ago0xa84201332d69d3bb287df715ebb89457987bf2c4 IN  Contract Creation0 HT0.00818694225 2.25
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
nftOrderPool

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2021-11-26
*/

pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;
// SPDX-License-Identifier: MIT

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

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

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "e0");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "e1");
        }
    }
}

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

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    constructor() internal {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "e0");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ow1");
        _;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ow2");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "e0");
        (bool success, bytes memory returndata) = target.call{value : weiValue}(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "add e0");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "sub e0");
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "mul e0");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "div e0");
        uint256 c = a / b;
        return c;
    }
}

interface IERC721Enumerable {
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function tokenURI(uint256 tokenId) external view returns (string memory);
}


contract nftOrderPool is Ownable, ReentrancyGuard {
    using SafeMath for uint256;
    using Address for address;
    using SafeERC20 for IERC20;
    address payable public devAddress;
    IERC20 public ETH;
    uint256 public orderNum = 0;
    uint256 public swapFee = 10;

    struct orderItem {
        uint256 orderId;
        address payable owner;
        IERC721Enumerable nftToken;
        uint256 tokenId;
        address erc20Token;
        uint256 price;
        bool orderStatus;
        string orderMd5;
        uint256 time;
        uint256 blocokNum;
        string name;
        string symbol;
        string tokenURI;
    }

    struct massInfoItem {
        orderItem orderItem2;
        string name2;
        string symbol2;
        uint256 decimals2;
        uint256 price2;
        string tokenURI2;
    }

    mapping(uint256 => orderItem) public orderItemInfo;
    mapping(IERC721Enumerable => uint256[]) public nftAddressOrderList;
    mapping(uint256 => bool) public orderStatusList;
    mapping(address => uint256[]) public userOrderList;
    mapping(string => bool) public orderMd5StatusList;
    mapping(string => uint256) public orderMd5List;
    mapping(IERC721Enumerable => mapping(uint256 => uint256)) public nftTokenLastOrderIdList;

    event createNftOrderEvent(uint256 orderId, address owner, IERC721Enumerable nftToken, uint256 tokenId, address erc20Token, uint256 price, bool orderStatus, string orderMd5, uint256 time, uint256 blocokNum);
    event widthDrawEvent(uint256 _orderId, address owner, IERC721Enumerable nftToken, uint256 tokenId);
    event swapEvent(uint256 _orderId, IERC721Enumerable nftToken, uint256 tokenId, address erc20Token, address owner, address buyer, uint256 price, uint256 fee, uint256 toUser);

    constructor(IERC20 _ETH) public {
        devAddress = msg.sender;
        ETH = _ETH;
    }

    function setDevAddress(address payable _devAddress) public {
        require(msg.sender == devAddress || msg.sender == owner(), 'p0');
        devAddress = _devAddress;
    }

    function setSwapFee(uint256 _fee) public onlyOwner {
        swapFee = _fee;
    }

    function getTokenIdSaleStatus(IERC721Enumerable _nftToken, uint256 _tokenId) public view returns (bool, uint256, massInfoItem memory) {
        if (nftTokenLastOrderIdList[_nftToken][_tokenId] > 0) {
            (orderItem memory orderItem2, string memory name2, string memory symbol2, uint256 decimals2, uint256 price2,string memory tokenURI2) = getTokenInfoByIndex(nftTokenLastOrderIdList[_nftToken][_tokenId]);
            return (orderItemInfo[nftTokenLastOrderIdList[_nftToken][_tokenId]].orderStatus, nftTokenLastOrderIdList[_nftToken][_tokenId], massInfoItem(orderItem2, name2, symbol2, decimals2, price2, tokenURI2));
        } else {
            (orderItem memory orderItem2, string memory name2, string memory symbol2, uint256 decimals2, uint256 price2,string memory tokenURI2) = getTokenInfoByIndex(0);
            if (orderItemInfo[nftTokenLastOrderIdList[_nftToken][_tokenId]].nftToken == _nftToken && orderItemInfo[nftTokenLastOrderIdList[_nftToken][_tokenId]].tokenId == _tokenId) {
                return (orderItemInfo[nftTokenLastOrderIdList[_nftToken][_tokenId]].orderStatus, nftTokenLastOrderIdList[_nftToken][_tokenId], massInfoItem(orderItem2, name2, symbol2, decimals2, price2, tokenURI2));
            } else {
                return (false, 0, massInfoItem(orderItem2, name2, symbol2, decimals2, price2, tokenURI2));
            }
        }
    }

    function createNftOrder(IERC721Enumerable _nftToken, uint256 _tokenId, address _erc20Token, uint256 _price, string memory _orderMd5, uint256 _time) public nonReentrant {
        require(orderMd5StatusList[_orderMd5] == false, 'm0');
        _nftToken.transferFrom(msg.sender, address(this), _tokenId);
        orderItemInfo[orderNum] = orderItem(orderNum, msg.sender, _nftToken, _tokenId, _erc20Token, _price, true, _orderMd5, _time, block.number, _nftToken.name(), _nftToken.symbol(), _nftToken.tokenURI(_tokenId));
        emit createNftOrderEvent(orderNum, msg.sender, _nftToken, _tokenId, _erc20Token, _price, true, _orderMd5, _time, block.number);
        nftAddressOrderList[_nftToken].push(orderNum);
        orderStatusList[orderNum] = true;
        orderMd5List[_orderMd5] = orderNum;
        userOrderList[msg.sender].push(orderNum);
        nftTokenLastOrderIdList[_nftToken][_tokenId] = orderNum;
        orderNum = orderNum.add(1);
        orderMd5StatusList[_orderMd5] = true;
    }

    function createNftOrderWithEth(IERC721Enumerable _nftToken, uint256 _tokenId, uint256 _price, string memory _orderMd5, uint256 _time) public nonReentrant {
        require(orderMd5StatusList[_orderMd5] == false, 'm0');
        _nftToken.transferFrom(msg.sender, address(this), _tokenId);
        orderItemInfo[orderNum] = orderItem(orderNum, msg.sender, _nftToken, _tokenId, address(0), _price, true, _orderMd5, _time, block.number, _nftToken.name(), _nftToken.symbol(), _nftToken.tokenURI(_tokenId));
        emit createNftOrderEvent(orderNum, msg.sender, _nftToken, _tokenId, address(0), _price, true, _orderMd5, _time, block.number);
        nftAddressOrderList[_nftToken].push(orderNum);
        orderStatusList[orderNum] = true;
        orderMd5List[_orderMd5] = orderNum;
        userOrderList[msg.sender].push(orderNum);
        nftTokenLastOrderIdList[_nftToken][_tokenId] = orderNum;
        orderNum = orderNum.add(1);
        orderMd5StatusList[_orderMd5] = true;
    }

    function widthDraw(uint256 _orderId) public nonReentrant {
        require(orderStatusList[_orderId] == true, 'f0');
        require(orderItemInfo[_orderId].owner == msg.sender, 'f1');
        orderItemInfo[_orderId].nftToken.transferFrom(address(this), msg.sender, orderItemInfo[_orderId].tokenId);
        orderItemInfo[_orderId].orderStatus = false;
        orderStatusList[_orderId] = false;
        emit widthDrawEvent(_orderId, msg.sender, orderItemInfo[_orderId].nftToken, orderItemInfo[_orderId].tokenId);
    }

    function swap(uint256 _orderId) public nonReentrant {
        require(orderStatusList[_orderId] == true, 'k0');
        //orderItem memory _orderItem = orderItemInfo[_orderId];
        require(IERC20(orderItemInfo[_orderId].erc20Token).balanceOf(msg.sender) >= orderItemInfo[_orderId].price, 'k1');
        uint256 fee = orderItemInfo[_orderId].price.mul(swapFee).div(100);
        uint256 toUser = orderItemInfo[_orderId].price.sub(fee);
        IERC20(orderItemInfo[_orderId].erc20Token).safeTransferFrom(msg.sender, orderItemInfo[_orderId].owner, toUser);
        IERC20(orderItemInfo[_orderId].erc20Token).safeTransferFrom(msg.sender, devAddress, fee);
        orderItemInfo[_orderId].nftToken.transferFrom(address(this), msg.sender, orderItemInfo[_orderId].tokenId);
        orderStatusList[_orderId] = false;
        orderItemInfo[_orderId].orderStatus = false;
        emit swapEvent(_orderId, orderItemInfo[_orderId].nftToken, orderItemInfo[_orderId].tokenId, orderItemInfo[_orderId].erc20Token, orderItemInfo[_orderId].owner, msg.sender, orderItemInfo[_orderId].price, fee, toUser);
    }

    function swapWithEth(uint256 _orderId) public payable nonReentrant {
        require(orderStatusList[_orderId] == true, 'k0');
        require(msg.value >= orderItemInfo[_orderId].price, 'k1');
        uint256 fee = orderItemInfo[_orderId].price.mul(swapFee).div(100);
        uint256 toUser = orderItemInfo[_orderId].price.sub(fee);
        orderItemInfo[_orderId].owner.transfer(toUser);
        devAddress.transfer(fee);
        orderItemInfo[_orderId].nftToken.transferFrom(address(this), msg.sender, orderItemInfo[_orderId].tokenId);
        orderStatusList[_orderId] = false;
        orderItemInfo[_orderId].orderStatus = false;
        emit swapEvent(_orderId, orderItemInfo[_orderId].nftToken, orderItemInfo[_orderId].tokenId, orderItemInfo[_orderId].erc20Token, orderItemInfo[_orderId].owner, msg.sender, orderItemInfo[_orderId].price, fee, toUser);
    }

    function getWrongTokens(IERC20 _token) public onlyOwner {
        uint256 amount = _token.balanceOf(address(this));
        require(amount > 0, 'e1');
        _token.safeTransfer(msg.sender, amount);
    }

    function getStatusOkInfoList(uint256[] memory _orderIdList) public view returns (massInfoItem[] memory) {
        uint256 okNum = 0;
        for (uint256 i = 0; i < _orderIdList.length; i++) {
            if (orderItemInfo[_orderIdList[i]].orderStatus == true) {
                okNum = okNum.add(1);
            }
        }
        uint256 k = 0;
        massInfoItem[] memory x = new massInfoItem[](okNum);
        for (uint256 i = 0; i < _orderIdList.length; i++) {
            if (orderItemInfo[_orderIdList[i]].orderStatus == true) {
                (orderItem memory orderItem2, string memory name2, string memory symbol2, uint256 decimals2, uint256 price2,string memory tokenURI2) = getTokenInfoByIndex(_orderIdList[i]);
                x[k] = massInfoItem(orderItem2, name2, symbol2, decimals2, price2, tokenURI2);
                k = k.add(1);
            }
        }
        return x;
    }

    function getStatusOkIdList(uint256[] memory _orderIdList) public view returns (uint256[] memory) {
        uint256 okNum = 0;
        for (uint256 i = 0; i < _orderIdList.length; i++) {
            if (orderItemInfo[_orderIdList[i]].orderStatus == true) {
                okNum = okNum.add(1);
            }
        }
        uint256 k = 0;
        uint256[] memory x = new uint256[](okNum);
        for (uint256 i = 0; i < _orderIdList.length; i++) {
            if (orderItemInfo[_orderIdList[i]].orderStatus == true) {
                x[k] = _orderIdList[i];
                k = k.add(1);
            }
        }
        return x;
    }

    function getTokenInfoByIndex(uint256 index) public view returns (orderItem memory orderItem2, string memory name2, string memory symbol2, uint256 decimals2, uint256 price2, string memory tokenURI2){
        orderItem2 = orderItemInfo[index];
        if (orderItem2.erc20Token == address(0)) {
            name2 = ETH.name();
            symbol2 = ETH.symbol();
            decimals2 = ETH.decimals();
        } else {
            name2 = IERC20(orderItem2.erc20Token).name();
            symbol2 = IERC20(orderItem2.erc20Token).symbol();
            decimals2 = IERC20(orderItem2.erc20Token).decimals();
        }
        price2 = orderItem2.price.mul(1e18).div(10 ** decimals2);
        tokenURI2 = orderItem2.nftToken.tokenURI(orderItem2.tokenId);
    }

    function getTokenInfoByOrderMd5(string memory _orderMd5) public view returns (orderItem memory orderItem2, string memory name2, string memory symbol2, uint256 decimals2, uint256 price2){
        orderItem2 = orderItemInfo[orderMd5List[_orderMd5]];
        if (orderItem2.erc20Token == address(0)) {
            name2 = ETH.name();
            symbol2 = ETH.symbol();
            decimals2 = ETH.decimals();
        } else {
            name2 = IERC20(orderItem2.erc20Token).name();
            symbol2 = IERC20(orderItem2.erc20Token).symbol();
            decimals2 = IERC20(orderItem2.erc20Token).decimals();
        }
        price2 = orderItem2.price.mul(1e18).div(10 ** decimals2);
    }

    function getUserOkOrderIdList(address _user) public view returns (uint256[] memory) {
        uint256[] memory userOrderIdList = userOrderList[_user];
        uint256[] memory userOkOrderIdList = getStatusOkIdList(userOrderIdList);
        return userOkOrderIdList;
    }

    function getUserOkOrderInfoList(address _user) public view returns (massInfoItem[] memory) {
        uint256[] memory userOrderIdList = userOrderList[_user];
        massInfoItem[] memory userOkOrderIdList = getStatusOkInfoList(userOrderIdList);
        return userOkOrderIdList;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_ETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"erc20Token","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"bool","name":"orderStatus","type":"bool"},{"indexed":false,"internalType":"string","name":"orderMd5","type":"string"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blocokNum","type":"uint256"}],"name":"createNftOrderEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_orderId","type":"uint256"},{"indexed":false,"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"erc20Token","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toUser","type":"uint256"}],"name":"swapEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_orderId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"widthDrawEvent","type":"event"},{"inputs":[],"name":"ETH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC721Enumerable","name":"_nftToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_erc20Token","type":"address"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"string","name":"_orderMd5","type":"string"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"createNftOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Enumerable","name":"_nftToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"string","name":"_orderMd5","type":"string"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"createNftOrderWithEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_orderIdList","type":"uint256[]"}],"name":"getStatusOkIdList","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_orderIdList","type":"uint256[]"}],"name":"getStatusOkInfoList","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address payable","name":"owner","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"string","name":"orderMd5","type":"string"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"blocokNum","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"}],"internalType":"struct nftOrderPool.orderItem","name":"orderItem2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"},{"internalType":"string","name":"tokenURI2","type":"string"}],"internalType":"struct nftOrderPool.massInfoItem[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC721Enumerable","name":"_nftToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getTokenIdSaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address payable","name":"owner","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"string","name":"orderMd5","type":"string"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"blocokNum","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"}],"internalType":"struct nftOrderPool.orderItem","name":"orderItem2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"},{"internalType":"string","name":"tokenURI2","type":"string"}],"internalType":"struct nftOrderPool.massInfoItem","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTokenInfoByIndex","outputs":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address payable","name":"owner","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"string","name":"orderMd5","type":"string"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"blocokNum","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"}],"internalType":"struct nftOrderPool.orderItem","name":"orderItem2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"},{"internalType":"string","name":"tokenURI2","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_orderMd5","type":"string"}],"name":"getTokenInfoByOrderMd5","outputs":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address payable","name":"owner","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"string","name":"orderMd5","type":"string"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"blocokNum","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"}],"internalType":"struct nftOrderPool.orderItem","name":"orderItem2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserOkOrderIdList","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserOkOrderInfoList","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address payable","name":"owner","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"string","name":"orderMd5","type":"string"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"blocokNum","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"}],"internalType":"struct nftOrderPool.orderItem","name":"orderItem2","type":"tuple"},{"internalType":"string","name":"name2","type":"string"},{"internalType":"string","name":"symbol2","type":"string"},{"internalType":"uint256","name":"decimals2","type":"uint256"},{"internalType":"uint256","name":"price2","type":"uint256"},{"internalType":"string","name":"tokenURI2","type":"string"}],"internalType":"struct nftOrderPool.massInfoItem[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"getWrongTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Enumerable","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nftAddressOrderList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC721Enumerable","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nftTokenLastOrderIdList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderItemInfo","outputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address payable","name":"owner","type":"address"},{"internalType":"contract IERC721Enumerable","name":"nftToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bool","name":"orderStatus","type":"bool"},{"internalType":"string","name":"orderMd5","type":"string"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"blocokNum","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURI","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"orderMd5List","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"orderMd5StatusList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"orderNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderStatusList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_devAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSwapFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_orderId","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_orderId","type":"uint256"}],"name":"swapWithEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userOrderList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_orderId","type":"uint256"}],"name":"widthDraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600455600a6005553480156200001b57600080fd5b5060405162003fc738038062003fc78339810160408190526200003e91620000d0565b60006200004a620000cc565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001805560028054336001600160a01b031991821617909155600380549091166001600160a01b039290921691909117905562000100565b3390565b600060208284031215620000e2578081fd5b81516001600160a01b0381168114620000f9578182fd5b9392505050565b613eb780620001106000396000f3fe6080604052600436106101b75760003560e01c806394b918de116100ec578063d0d41fe11161008a578063e62ff68611610064578063e62ff6861461050a578063f2fde38b1461052a578063f98acae21461054a578063fe37cec21461055d576101b7565b8063d0d41fe1146104aa578063da258393146104ca578063db1fa2dd146104ea576101b7565b80639d78c834116100c65780639d78c83414610426578063a6a7e4301461043b578063c77f47ec1461045b578063c923ba6c1461048a576101b7565b806394b918de146103b55780639a52d516146103d55780639d1f2431146103f5576101b7565b806354cf2aeb116101595780638322fff2116101335780638322fff21461033e5780638ada6738146103535780638da5cb5b14610373578063933db52a14610388576101b7565b806354cf2aeb146102e95780635b961009146102fe57806379a5192f1461031e576101b7565b806334e199071161019557806334e199071461024d5780633ad10ef61461026d5780634038e6741461028f578063437f7fdb146102bc576101b7565b80630eb0975a146101bc57806318082772146101de5780631c3ac66514610214575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004613501565b61058f565b005b3480156101ea57600080fd5b506101fe6101f93660046135e6565b610aa7565b60405161020b9190613c2c565b60405180910390f35b34801561022057600080fd5b5061023461022f36600461368c565b610ac4565b60405161020b9d9c9b9a99989796959493929190613cc7565b34801561025957600080fd5b506101dc61026836600461368c565b610d6e565b34801561027957600080fd5b50610282610da8565b60405161020b91906138a3565b34801561029b57600080fd5b506102af6102aa3660046135e6565b610db7565b60405161020b9190613998565b3480156102c857600080fd5b506102dc6102d73660046133f8565b610dd7565b60405161020b91906138f4565b3480156102f557600080fd5b506101fe610e63565b34801561030a57600080fd5b506101dc6103193660046133f8565b610e69565b34801561032a57600080fd5b506101fe610339366004613414565b610f57565b34801561034a57600080fd5b50610282610f85565b34801561035f57600080fd5b506102af61036e36600461368c565b610f94565b34801561037f57600080fd5b50610282610fa9565b34801561039457600080fd5b506103a86103a33660046133f8565b610fb8565b60405161020b9190613954565b3480156103c157600080fd5b506101dc6103d036600461368c565b61103c565b3480156103e157600080fd5b506101dc6103f036600461357d565b611319565b34801561040157600080fd5b506104156104103660046135e6565b611829565b60405161020b959493929190613b78565b34801561043257600080fd5b506101fe611e9e565b34801561044757600080fd5b506102dc61045636600461343f565b611ea4565b34801561046757600080fd5b5061047b6104763660046134ef565b612045565b60405161020b939291906139a3565b34801561049657600080fd5b506101fe6104a53660046134ef565b61231a565b3480156104b657600080fd5b506101dc6104c53660046133f8565b612333565b3480156104d657600080fd5b506103a86104e536600461343f565b6123a2565b3480156104f657600080fd5b506101dc61050536600461368c565b6124d3565b34801561051657600080fd5b506101fe6105253660046134ef565b61266c565b34801561053657600080fd5b506101dc6105453660046133f8565b612689565b6101dc61055836600461368c565b61273f565b34801561056957600080fd5b5061057d61057836600461368c565b6128e0565b60405161020b96959493929190613bc6565b600260015414156105bb5760405162461bcd60e51b81526004016105b290613a8c565b60405180910390fd5b6002600155604051600a906105d1908490613887565b9081526040519081900360200190205460ff16156106015760405162461bcd60e51b81526004016105b290613a54565b6040516323b872dd60e01b81526001600160a01b038716906323b872dd9061063190339030908a906004016138b7565b600060405180830381600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b50505050604051806101a001604052806004548152602001336001600160a01b03168152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001848152602001600115158152602001838152602001828152602001438152602001876001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561070457600080fd5b505afa158015610718573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107409190810190613619565b8152602001876001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ba9190810190613619565b8152602001876001600160a01b031663c87b56dd886040518263ffffffff1660e01b81526004016107eb9190613c2c565b60006040518083038186803b15801561080357600080fd5b505afa158015610817573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261083f9190810190613619565b90526004805460009081526006602081815260409283902085518155858201516001820180546001600160a01b03199081166001600160a01b0393841617909155948701516002830180548716918316919091179055606087015160038301556080870151958201805490951695169490941790925560a0840151600584015560c0840151908301805460ff191691151591909117905560e083015180516108ed9260078501920190613251565b5061010082015160088201556101208201516009820155610140820151805161092091600a840191602090910190613251565b50610160820151805161093d91600b840191602090910190613251565b50610180820151805161095a91600c840191602090910190613251565b509050507fb0448199114375ea86d3bdd366f90dd8319764896a13bdb39849684781e22222600454338888888860018989436040516109a29a99989796959493929190613c5a565b60405180910390a16001600160a01b038616600090815260076020908152604080832060048054825460018181018555938752858720015580548552600890935292819020805460ff1916909317909255549051600b90610a04908590613887565b90815260408051602092819003830190209290925533600090815260098252828120600480548254600180820185559385528585200155546001600160a01b038b168352600c84528483208a8452909352929020819055610a6491612fbe565b600455604051600190600a90610a7b908590613887565b908152604051908190036020019020805491151560ff1990921691909117905550506001805550505050565b8051602081830181018051600b8252928201919093012091525481565b6006602081815260009283526040928390208054600180830154600280850154600386015460048701546005880154998801546007890180548d516101009982161599909902600019011695909504601f81018b90048b0288018b01909c528b8752969a6001600160a01b039586169a9386169992989590911696929560ff909316949391830182828015610b9a5780601f10610b6f57610100808354040283529160200191610b9a565b820191906000526020600020905b815481529060010190602001808311610b7d57829003601f168201915b50505050509080600801549080600901549080600a018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c445780601f10610c1957610100808354040283529160200191610c44565b820191906000526020600020905b815481529060010190602001808311610c2757829003601f168201915b50505050600b8301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015610cd45780601f10610ca957610100808354040283529160200191610cd4565b820191906000526020600020905b815481529060010190602001808311610cb757829003601f168201915b50505050600c8301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015610d645780601f10610d3957610100808354040283529160200191610d64565b820191906000526020600020905b815481529060010190602001808311610d4757829003601f168201915b505050505090508d565b610d76612fec565b6000546001600160a01b03908116911614610da35760405162461bcd60e51b81526004016105b290613a37565b600555565b6002546001600160a01b031681565b8051602081830181018051600a8252928201919093012091525460ff1681565b60608060096000846001600160a01b03166001600160a01b03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610e4957602002820191906000526020600020905b815481526020019060010190808311610e35575b505050505090506060610e5b82611ea4565b949350505050565b60055481565b610e71612fec565b6000546001600160a01b03908116911614610e9e5760405162461bcd60e51b81526004016105b290613a37565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610ecd9030906004016138a3565b60206040518083038186803b158015610ee557600080fd5b505afa158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d91906136a4565b905060008111610f3f5760405162461bcd60e51b81526004016105b2906139fb565b610f536001600160a01b0383163383612ff0565b5050565b60096020528160005260406000208181548110610f7057fe5b90600052602060002001600091509150505481565b6003546001600160a01b031681565b60086020526000908152604090205460ff1681565b6000546001600160a01b031690565b60608060096000846001600160a01b03166001600160a01b0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561102a57602002820191906000526020600020905b815481526020019060010190808311611016575b505050505090506060610e5b826123a2565b6002600154141561105f5760405162461bcd60e51b81526004016105b290613a8c565b6002600190815560008281526008602052604090205460ff161515146110975760405162461bcd60e51b81526004016105b290613b40565b60008181526006602052604090819020600581015460049182015492516370a0823160e01b815290926001600160a01b0316916370a08231916110dc913391016138a3565b60206040518083038186803b1580156110f457600080fd5b505afa158015611108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112c91906136a4565b101561114a5760405162461bcd60e51b81526004016105b290613a70565b60058054600083815260066020526040812090920154611176916064916111709161304b565b90613085565b6000838152600660205260408120600501549192509061119690836130ba565b600084815260066020526040902060018101546004909101549192506111cb916001600160a01b0390811691339116846130e2565b6002546000848152600660205260409020600401546111f9916001600160a01b0391821691339116856130e2565b60008381526006602052604090819020600281015460039091015491516323b872dd60e01b81526001600160a01b03909116916323b872dd916112439130913391906004016138b7565b600060405180830381600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b5050506000848152600860209081526040808320805460ff19908116909155600692839052928190209182018054909316909255600281015460038201546004830154600184015460059094015494517f72ef1e68157c5dbbd760ad8201c9c09f47a349ef4022f3dfaac4fac2233970d29650611308958a956001600160a01b03958616959384169316913391908b908b90613d82565b60405180910390a150506001805550565b6002600154141561133c5760405162461bcd60e51b81526004016105b290613a8c565b6002600155604051600a90611352908490613887565b9081526040519081900360200190205460ff16156113825760405162461bcd60e51b81526004016105b290613a54565b6040516323b872dd60e01b81526001600160a01b038616906323b872dd906113b2903390309089906004016138b7565b600060405180830381600087803b1580156113cc57600080fd5b505af11580156113e0573d6000803e3d6000fd5b50505050604051806101a001604052806004548152602001336001600160a01b03168152602001866001600160a01b0316815260200185815260200160006001600160a01b03168152602001848152602001600115158152602001838152602001828152602001438152602001866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561148657600080fd5b505afa15801561149a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114c29190810190613619565b8152602001866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561150057600080fd5b505afa158015611514573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261153c9190810190613619565b8152602001866001600160a01b031663c87b56dd876040518263ffffffff1660e01b815260040161156d9190613c2c565b60006040518083038186803b15801561158557600080fd5b505afa158015611599573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115c19190810190613619565b90526004805460009081526006602081815260409283902085518155858201516001820180546001600160a01b03199081166001600160a01b0393841617909155948701516002830180548716918316919091179055606087015160038301556080870151958201805490951695169490941790925560a0840151600584015560c0840151908301805460ff191691151591909117905560e0830151805161166f9260078501920190613251565b506101008201516008820155610120820151600982015561014082015180516116a291600a840191602090910190613251565b5061016082015180516116bf91600b840191602090910190613251565b5061018082015180516116dc91600c840191602090910190613251565b509050507fb0448199114375ea86d3bdd366f90dd8319764896a13bdb39849684781e2222260045433878760008860018989436040516117259a99989796959493929190613c5a565b60405180910390a16001600160a01b038516600090815260076020908152604080832060048054825460018181018555938752858720015580548552600890935292819020805460ff1916909317909255549051600b90611787908590613887565b90815260408051602092819003830190209290925533600090815260098252828120600480548254600180820185559385528585200155546001600160a01b038a168352600c84528483208984529093529290208190556117e791612fbe565b600455604051600190600a906117fe908590613887565b908152604051908190036020019020805491151560ff19909216919091179055505060018055505050565b6118316132cf565b60608060008060066000600b8860405161184b9190613887565b90815260408051602092819003830190205483528282019390935290820160002082516101a081018452815481526001808301546001600160a01b03908116838601526002808501548216848801526003850154606085015260048501549091166080840152600584015460a0840152600684015460ff16151560c084015260078401805487516101009482161594909402600019011691909104601f81018690048602830186019096528582529194929360e0860193919291908301828280156119575780601f1061192c57610100808354040283529160200191611957565b820191906000526020600020905b81548152906001019060200180831161193a57829003601f168201915b505050505081526020016008820154815260200160098201548152602001600a82018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b5050509183525050600b8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611aa15780601f10611a7657610100808354040283529160200191611aa1565b820191906000526020600020905b815481529060010190602001808311611a8457829003601f168201915b5050509183525050600c8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611b355780601f10611b0a57610100808354040283529160200191611b35565b820191906000526020600020905b815481529060010190602001808311611b1857829003601f168201915b5050509190925250505060808101519095506001600160a01b0316611cfc57600360009054906101000a90046001600160a01b03166001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bde9190810190613619565b9350600360009054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611c2e57600080fd5b505afa158015611c42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c6a9190810190613619565b9250600360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611cba57600080fd5b505afa158015611cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf291906136bc565b60ff169150611e6d565b84608001516001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611d3957600080fd5b505afa158015611d4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d759190810190613619565b935084608001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611db457600080fd5b505afa158015611dc8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611df09190810190613619565b925084608001516001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611e2f57600080fd5b505afa158015611e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6791906136bc565b60ff1691505b611e9382600a0a611170670de0b6b3a76400008860a0015161304b90919063ffffffff16565b905091939590929450565b60045481565b60606000805b8351811015611f045760066000858381518110611ec357fe5b60209081029190910181015182528101919091526040016000206006015460ff16151560011415611efc57611ef9826001612fbe565b91505b600101611eaa565b50600060608267ffffffffffffffff81118015611f2057600080fd5b50604051908082528060200260200182016040528015611f5a57816020015b611f47613354565b815260200190600190039081611f3f5790505b50905060005b855181101561203c5760066000878381518110611f7957fe5b60209081029190910181015182528101919091526040016000206006015460ff1615156001141561203457611fac6132cf565b6060806000806060611fd08c8881518110611fc357fe5b60200260200101516128e0565b9550955095509550955095506040518060c0016040528087815260200186815260200185815260200184815260200183815260200182815250888a8151811061201557fe5b602090810291909101015261202b896001612fbe565b98505050505050505b600101611f60565b50949350505050565b600080612050613354565b6001600160a01b0385166000908152600c6020908152604080832087845290915290205415612192576120816132cf565b6001600160a01b0386166000908152600c602090815260408083208884529091528120546060918291819083906120b7906128e0565b95509550955095509550955060066000600c60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002054815260200190815260200160002060060160009054906101000a900460ff16600c60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c8152602001908152602001600020546040518060c0016040528089815260200188815260200187815260200186815260200185815260200184815250985098509850505050505050612313565b61219a6132cf565b60608060008060606121ac60006128e0565b9550955095509550955095508a6001600160a01b031660066000600c60008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002054815260200190815260200160002060020160009054906101000a90046001600160a01b03166001600160a01b031614801561226757506001600160a01b038b166000908152600c602090815260408083208d8452825280832054835260069091529020600301548a145b156122de576001600160a01b038b166000908152600c602090815260408083208d84528083528184205480855260068085528386200154948f9052908352815160c081018352998a5291890197909752958701949094526060860192909252608085015260a084015260ff16945092509050612313565b6040805160c0810182529687526020870195909552938501929092526060840152608083015260a08201526000935083925090505b9250925092565b60076020528160005260406000208181548110610f7057fe5b6002546001600160a01b0316331480612364575061234f610fa9565b6001600160a01b0316336001600160a01b0316145b6123805760405162461bcd60e51b81526004016105b290613b5c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60606000805b835181101561240257600660008583815181106123c157fe5b60209081029190910181015182528101919091526040016000206006015460ff161515600114156123fa576123f7826001612fbe565b91505b6001016123a8565b50600060608267ffffffffffffffff8111801561241e57600080fd5b50604051908082528060200260200182016040528015612448578160200160208202803683370190505b50905060005b855181101561203c576006600087838151811061246757fe5b60209081029190910181015182528101919091526040016000206006015460ff161515600114156124cb5785818151811061249e57fe5b60200260200101518284815181106124b257fe5b60209081029190910101526124c8836001612fbe565b92505b60010161244e565b600260015414156124f65760405162461bcd60e51b81526004016105b290613a8c565b6002600190815560008281526008602052604090205460ff1615151461252e5760405162461bcd60e51b81526004016105b290613b08565b6000818152600660205260409020600101546001600160a01b031633146125675760405162461bcd60e51b81526004016105b290613b24565b60008181526006602052604090819020600281015460039091015491516323b872dd60e01b81526001600160a01b03909116916323b872dd916125b19130913391906004016138b7565b600060405180830381600087803b1580156125cb57600080fd5b505af11580156125df573d6000803e3d6000fd5b5050506000828152600660208181526040808420808401805460ff1990811690915560088452948290208054909516909455919052600282015460039092015490517fefa12877527bf3dbf6c5dbce0b01559d5aa7fe0d8802b59c020ab248c201ee85935061265d92859233926001600160a01b0390921691613c35565b60405180910390a15060018055565b600c60209081526000928352604080842090915290825290205481565b612691612fec565b6000546001600160a01b039081169116146126be5760405162461bcd60e51b81526004016105b290613a37565b6001600160a01b0381166126e45760405162461bcd60e51b81526004016105b2906139de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600260015414156127625760405162461bcd60e51b81526004016105b290613a8c565b6002600190815560008281526008602052604090205460ff1615151461279a5760405162461bcd60e51b81526004016105b290613b40565b6000818152600660205260409020600501543410156127cb5760405162461bcd60e51b81526004016105b290613a70565b600580546000838152600660205260408120909201546127f1916064916111709161304b565b6000838152600660205260408120600501549192509061281190836130ba565b6000848152600660205260408082206001015490519293506001600160a01b03169183156108fc0291849190818181858888f1935050505015801561285a573d6000803e3d6000fd5b506002546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612895573d6000803e3d6000fd5b5060008381526006602052604090819020600281015460039091015491516323b872dd60e01b81526001600160a01b03909116916323b872dd916112439130913391906004016138b7565b6128e86132cf565b600082815260066020818152604080842081516101a081018352815481526001808301546001600160a01b0390811683870152600280850154821684870152600385015460608581019190915260048601549092166080850152600585015460a08501529684015460ff16151560c08401526007840180548651601f600019958316156101000295909501909116989098049283018790048702880187019095528187529687969095869588959360e0860193928301828280156129ed5780601f106129c2576101008083540402835291602001916129ed565b820191906000526020600020905b8154815290600101906020018083116129d057829003601f168201915b505050505081526020016008820154815260200160098201548152602001600a82018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612aa35780601f10612a7857610100808354040283529160200191612aa3565b820191906000526020600020905b815481529060010190602001808311612a8657829003601f168201915b5050509183525050600b8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015612b375780601f10612b0c57610100808354040283529160200191612b37565b820191906000526020600020905b815481529060010190602001808311612b1a57829003601f168201915b5050509183525050600c8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015612bcb5780601f10612ba057610100808354040283529160200191612bcb565b820191906000526020600020905b815481529060010190602001808311612bae57829003601f168201915b5050509190925250505060808101519096506001600160a01b0316612d9257600360009054906101000a90046001600160a01b03166001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612c3857600080fd5b505afa158015612c4c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c749190810190613619565b9450600360009054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612cc457600080fd5b505afa158015612cd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d009190810190613619565b9350600360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d5057600080fd5b505afa158015612d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8891906136bc565b60ff169250612f03565b85608001516001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612dcf57600080fd5b505afa158015612de3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e0b9190810190613619565b945085608001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e4a57600080fd5b505afa158015612e5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e869190810190613619565b935085608001516001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612ec557600080fd5b505afa158015612ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612efd91906136bc565b60ff1692505b612f2983600a0a611170670de0b6b3a76400008960a0015161304b90919063ffffffff16565b6040808801516060890151915163c87b56dd60e01b81529294506001600160a01b03169163c87b56dd91612f5f91600401613c2c565b60006040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fb39190810190613619565b905091939550919395565b600082820183811015612fe35760405162461bcd60e51b81526004016105b290613ac8565b90505b92915050565b3390565b6130468363a9059cbb60e01b848460405160240161300f9291906138db565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613109565b505050565b60008261305a57506000612fe6565b8282028284828161306757fe5b0414612fe35760405162461bcd60e51b81526004016105b290613a17565b60008082116130a65760405162461bcd60e51b81526004016105b290613ae8565b60008284816130b157fe5b04949350505050565b6000828211156130dc5760405162461bcd60e51b81526004016105b290613aa8565b50900390565b613103846323b872dd60e01b85858560405160240161300f939291906138b7565b50505050565b60606131438260405180604001604052806002815260200161065360f41b815250856001600160a01b031661317d9092919063ffffffff16565b805190915015613046578080602001905181019061316191906134cf565b6130465760405162461bcd60e51b81526004016105b2906139fb565b6060610e5b848460008560606131928561324b565b6131ae5760405162461bcd60e51b81526004016105b290613a8c565b60006060866001600160a01b031685876040516131cb9190613887565b60006040518083038185875af1925050503d8060008114613208576040519150601f19603f3d011682016040523d82523d6000602084013e61320d565b606091505b50915091508115613221579150610e5b9050565b8051156132315780518082602001fd5b8360405162461bcd60e51b81526004016105b291906139c4565b3b151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061329257805160ff19168380011785556132bf565b828001600101855582156132bf579182015b828111156132bf5782518255916020019190600101906132a4565b506132cb929150613390565b5090565b604051806101a001604052806000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000151581526020016060815260200160008152602001600081526020016060815260200160608152602001606081525090565b6040518060c001604052806133676132cf565b815260200160608152602001606081526020016000815260200160008152602001606081525090565b5b808211156132cb5760008155600101613391565b600082601f8301126133b5578081fd5b81356133c86133c382613e19565b613dd2565b91508082528360208285010111156133df57600080fd5b8060208401602084013760009082016020015292915050565b600060208284031215613409578081fd5b8135612fe381613e69565b60008060408385031215613426578081fd5b823561343181613e69565b946020939093013593505050565b60006020808385031215613451578182fd5b823567ffffffffffffffff811115613467578283fd5b8301601f81018513613477578283fd5b80356134856133c382613df9565b81815283810190838501858402850186018910156134a1578687fd5b8694505b838510156134c35780358352600194909401939185019185016134a5565b50979650505050505050565b6000602082840312156134e0578081fd5b81518015158114612fe3578182fd5b60008060408385031215613426578182fd5b60008060008060008060c08789031215613519578182fd5b863561352481613e69565b955060208701359450604087013561353b81613e69565b935060608701359250608087013567ffffffffffffffff81111561355d578283fd5b61356989828a016133a5565b92505060a087013590509295509295509295565b600080600080600060a08688031215613594578081fd5b853561359f81613e69565b94506020860135935060408601359250606086013567ffffffffffffffff8111156135c8578182fd5b6135d4888289016133a5565b95989497509295608001359392505050565b6000602082840312156135f7578081fd5b813567ffffffffffffffff81111561360d578182fd5b610e5b848285016133a5565b60006020828403121561362a578081fd5b815167ffffffffffffffff811115613640578182fd5b8201601f81018413613650578182fd5b805161365e6133c382613e19565b818152856020838501011115613672578384fd5b613683826020830160208601613e3d565b95945050505050565b60006020828403121561369d578081fd5b5035919050565b6000602082840312156136b5578081fd5b5051919050565b6000602082840312156136cd578081fd5b815160ff81168114612fe3578182fd5b6001600160a01b03169052565b15159052565b60008151808452613708816020860160208601613e3d565b601f01601f19169290920160200192915050565b6000815160c0845261373160c0850182613792565b90506020830151848203602086015261374a82826136f0565b9150506040830151848203604086015261376482826136f0565b915050606083015160608501526080830151608085015260a083015184820360a086015261368382826136f0565b60006101a08251845260208301516137ad60208601826136dd565b5060408301516137c060408601826136dd565b506060830151606085015260808301516137dd60808601826136dd565b5060a083015160a085015260c08301516137fa60c08601826136ea565b5060e08301518160e0860152613812828601826136f0565b915050610100808401518186015250610120808401518186015250610140808401518583038287015261384583826136f0565b92505050610160808401518583038287015261386183826136f0565b92505050610180808401518583038287015261387d83826136f0565b9695505050505050565b60008251613899818460208701613e3d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561394757603f1988860301845261393585835161371c565b94509285019290850190600101613919565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561398c57835183529284019291840191600101613970565b50909695505050505050565b901515815260200190565b6000841515825283602083015260606040830152613683606083018461371c565b6000602082526139d760208301846136f0565b9392505050565b60208082526003908201526227bb9960e91b604082015260600190565b602080825260029082015261653160f01b604082015260600190565b60208082526006908201526506d756c2065360d41b604082015260600190565b6020808252600390820152624f773160e81b604082015260600190565b60208082526002908201526106d360f41b604082015260600190565b6020808252600290820152616b3160f01b604082015260600190565b602080825260029082015261065360f41b604082015260600190565b60208082526006908201526507375622065360d41b604082015260600190565b60208082526006908201526506164642065360d41b604082015260600190565b60208082526006908201526506469762065360d41b604082015260600190565b602080825260029082015261066360f41b604082015260600190565b602080825260029082015261663160f01b604082015260600190565b60208082526002908201526106b360f41b604082015260600190565b602080825260029082015261070360f41b604082015260600190565b600060a08252613b8b60a0830188613792565b8281036020840152613b9d81886136f0565b90508281036040840152613bb181876136f0565b60608401959095525050608001529392505050565b600060c08252613bd960c0830189613792565b8281036020840152613beb81896136f0565b90508281036040840152613bff81886136f0565b905085606084015284608084015282810360a0840152613c1f81856136f0565b9998505050505050505050565b90815260200190565b9384526001600160a01b03928316602085015291166040830152606082015260800190565b8a81526001600160a01b038a811660208301528981166040830152606082018990528716608082015260a0810186905284151560c082015261014060e08201819052600090613cab838201876136f0565b6101008401959095525050610120015298975050505050505050565b60008e8252613cd9602083018f6136dd565b613ce6604083018e6136dd565b8b6060830152613cf9608083018c6136dd565b8960a0830152613d0c60c083018a6136ea565b6101a060e0830152613d226101a08301896136f0565b8761010084015286610120840152828103610140840152613d4381876136f0565b9050828103610160840152613d5881866136f0565b9050828103610180840152613d6d81856136f0565b9150509e9d5050505050505050505050505050565b9889526001600160a01b0397881660208a015260408901969096529386166060880152918516608087015290931660a085015260c084019290925260e08301919091526101008201526101200190565b60405181810167ffffffffffffffff81118282101715613df157600080fd5b604052919050565b600067ffffffffffffffff821115613e0f578081fd5b5060209081020190565b600067ffffffffffffffff821115613e2f578081fd5b50601f01601f191660200190565b60005b83811015613e58578181015183820152602001613e40565b838111156131035750506000910152565b6001600160a01b0381168114613e7e57600080fd5b5056fea2646970667358221220b5a06bb1308938864b6cf91796719814d03a628eb35adeece04b7a9f29fee8fb64736f6c634300060c00330000000000000000000000005545153ccfca01fbd7dd11c0b23ba694d9509a6f

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

0000000000000000000000005545153ccfca01fbd7dd11c0b23ba694d9509a6f

-----Decoded View---------------
Arg [0] : _ETH (address): 0x5545153ccfca01fbd7dd11c0b23ba694d9509a6f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005545153ccfca01fbd7dd11c0b23ba694d9509a6f


Deployed ByteCode Sourcemap

4806:12000:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8389:1008;;;;;;;;;;-1:-1:-1;8389:1008:0;;;;;:::i;:::-;;:::i;:::-;;5970:46;;;;;;;;;;-1:-1:-1;5970:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5673:50;;;;;;;;;;-1:-1:-1;5673:50:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;6906:84::-;;;;;;;;;;-1:-1:-1;6906:84:0;;;;;:::i;:::-;;:::i;4961:33::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5914:49::-;;;;;;;;;;-1:-1:-1;5914:49:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16514:289::-;;;;;;;;;;-1:-1:-1;16514:289:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5059:27::-;;;;;;;;;;;;;:::i;12939:209::-;;;;;;;;;;-1:-1:-1;12939:209:0;;;;;:::i;:::-;;:::i;5857:50::-;;;;;;;;;;-1:-1:-1;5857:50:0;;;;;:::i;:::-;;:::i;5001:17::-;;;;;;;;;;;;;:::i;5803:47::-;;;;;;;;;;-1:-1:-1;5803:47:0;;;;;:::i;:::-;;:::i;2199:79::-;;;;;;;;;;;;;:::i;16231:275::-;;;;;;;;;;-1:-1:-1;16231:275:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10939:1109::-;;;;;;;;;;-1:-1:-1;10939:1109:0;;;;;:::i;:::-;;:::i;9405:992::-;;;;;;;;;;-1:-1:-1;9405:992:0;;;;;:::i;:::-;;:::i;15520:703::-;;;;;;;;;;-1:-1:-1;15520:703:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;5025:27::-;;;;;;;;;;;;;:::i;13156:917::-;;;;;;;;;;-1:-1:-1;13156:917:0;;;;;:::i;:::-;;:::i;6998:1383::-;;;;;;;;;;-1:-1:-1;6998:1383:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;5730:66::-;;;;;;;;;;-1:-1:-1;5730:66:0;;;;;:::i;:::-;;:::i;6721:177::-;;;;;;;;;;-1:-1:-1;6721:177:0;;;;;:::i;:::-;;:::i;14081:655::-;;;;;;;;;;-1:-1:-1;14081:655:0;;;;;:::i;:::-;;:::i;10405:526::-;;;;;;;;;;-1:-1:-1;10405:526:0;;;;;:::i;:::-;;:::i;6023:88::-;;;;;;;;;;-1:-1:-1;6023:88:0;;;;;:::i;:::-;;:::i;2384:209::-;;;;;;;;;;-1:-1:-1;2384:209:0;;;;;:::i;:::-;;:::i;12056:875::-;;;;;;:::i;:::-;;:::i;14744:768::-;;;;;;;;;;-1:-1:-1;14744:768:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;8389:1008::-;1600:1;1755:7;;:19;;1747:34;;;;-1:-1:-1;;;1747:34:0;;;;;;;:::i;:::-;;;;;;;;;1600:1;1792:7;:18;8576:29:::1;::::0;:18:::1;::::0;:29:::1;::::0;8595:9;;8576:29:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;:38;8568:53;;;;-1:-1:-1::0;;;8568:53:0::1;;;;;;;:::i;:::-;8632:59;::::0;-1:-1:-1;;;8632:59:0;;-1:-1:-1;;;;;8632:22:0;::::1;::::0;::::1;::::0;:59:::1;::::0;8655:10:::1;::::0;8675:4:::1;::::0;8682:8;;8632:59:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8728:179;;;;;;;;8738:8;;8728:179;;;;8748:10;-1:-1:-1::0;;;;;8728:179:0::1;;;;;8760:9;-1:-1:-1::0;;;;;8728:179:0::1;;;;;8771:8;8728:179;;;;8781:11;-1:-1:-1::0;;;;;8728:179:0::1;;;;;8794:6;8728:179;;;;8802:4;8728:179;;;;;;8808:9;8728:179;;;;8819:5;8728:179;;;;8826:12;8728:179;;;;8840:9;-1:-1:-1::0;;;;;8840:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;8840:16:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;8728:179;;;;8858:9;-1:-1:-1::0;;;;;8858:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;8858:18:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;8728:179;;;;8878:9;-1:-1:-1::0;;;;;8878:18:0::1;;8897:8;8878:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;8878:28:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;8728:179:::0;;8716:8:::1;::::0;;8702:23:::1;::::0;;;:13:::1;:23;::::0;;;;;;;;:205;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8702:205:0;;::::1;-1:-1:-1::0;;;;;8702:205:0;;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;8702:205:0::1;::::0;::::1;;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;8702:205:0::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;8702:205:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;8702:205:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;8923:121;8943:8;;8953:10;8965:9;8976:8;8986:11;8999:6;9007:4;9013:9;9024:5;9031:12;8923:121;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;9055:30:0;::::1;;::::0;;;:19:::1;:30;::::0;;;;;;;9091:8:::1;::::0;;9055:45;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;9127:8;;9111:25;;:15:::1;:25:::0;;;;;;;:32;;-1:-1:-1;;9111:32:0::1;::::0;;::::1;::::0;;;9180:8;9154:23;;:12:::1;::::0;:23:::1;::::0;9167:9;;9154:23:::1;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;:34;;;;9213:10:::1;9199:25;::::0;;;:13:::1;:25:::0;;;;;9230:8:::1;::::0;;9199:40;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;9297:8;-1:-1:-1;;;;;9250:34:0;::::1;::::0;;:23:::1;:34:::0;;;;;:44;;;;;;;;;:55;;;9327:15:::1;::::0;:12:::1;:15::i;:::-;9316:8;:26:::0;9353:29:::1;::::0;9385:4:::1;::::0;9353:18:::1;::::0;:29:::1;::::0;9372:9;;9353:29:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:36;;;::::1;;-1:-1:-1::0;;9353:36:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;9353:36:0;1833:22;;-1:-1:-1;;;;8389:1008:0:o;5970:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5673:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5673:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5673:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5673:50:0;;;;;;;;;;;;;;;;-1:-1:-1;;5673:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5673:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5673:50:0;;;;;;;;;;;;;;;;-1:-1:-1;;5673:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5673:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6906:84::-;2336:12;:10;:12::i;:::-;2326:6;;-1:-1:-1;;;;;2326:6:0;;;:22;;;2318:38;;;;-1:-1:-1;;;2318:38:0;;;;;;;:::i;:::-;6968:7:::1;:14:::0;6906:84::o;4961:33::-;;;-1:-1:-1;;;;;4961:33:0;;:::o;5914:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16514:289::-;16582:21;16616:32;16651:13;:20;16665:5;-1:-1:-1;;;;;16651:20:0;-1:-1:-1;;;;;16651:20:0;;;;;;;;;;;;16616:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16682:39;16724:36;16744:15;16724:19;:36::i;:::-;16682:78;16514:289;-1:-1:-1;;;;16514:289:0:o;5059:27::-;;;;:::o;12939:209::-;2336:12;:10;:12::i;:::-;2326:6;;-1:-1:-1;;;;;2326:6:0;;;:22;;;2318:38;;;;-1:-1:-1;;;2318:38:0;;;;;;;:::i;:::-;13023:31:::1;::::0;-1:-1:-1;;;13023:31:0;;13006:14:::1;::::0;-1:-1:-1;;;;;13023:16:0;::::1;::::0;::::1;::::0;:31:::1;::::0;13048:4:::1;::::0;13023:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13006:48;;13082:1;13073:6;:10;13065:25;;;;-1:-1:-1::0;;;13065:25:0::1;;;;;;;:::i;:::-;13101:39;-1:-1:-1::0;;;;;13101:19:0;::::1;13121:10;13133:6:::0;13101:19:::1;:39::i;:::-;2367:1;12939:209:::0;:::o;5857:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5001:17::-;;;-1:-1:-1;;;;;5001:17:0;;:::o;5803:47::-;;;;;;;;;;;;;;;:::o;2199:79::-;2237:7;2264:6;-1:-1:-1;;;;;2264:6:0;2199:79;:::o;16231:275::-;16297:16;16326:32;16361:13;:20;16375:5;-1:-1:-1;;;;;16361:20:0;-1:-1:-1;;;;;16361:20:0;;;;;;;;;;;;16326:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16392:34;16429;16447:15;16429:17;:34::i;10939:1109::-;1600:1;1755:7;;:19;;1747:34;;;;-1:-1:-1;;;1747:34:0;;;;;;;:::i;:::-;1600:1;1792:7;:18;;;11010:25:::1;::::0;;;:15:::1;:25;::::0;;;;;::::1;;:33;;;11002:48;;;;-1:-1:-1::0;;;11002:48:0::1;;;;;;;:::i;:::-;11203:23;::::0;;;:13:::1;:23;::::0;;;;;;:29:::1;::::0;::::1;::::0;11142:34:::1;::::0;;::::1;::::0;11135:64;;-1:-1:-1;;;11135:64:0;;11203:29;;-1:-1:-1;;;;;11142:34:0::1;::::0;11135:52:::1;::::0;:64:::1;::::0;11188:10:::1;::::0;11135:64:::1;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:97;;11127:112;;;;-1:-1:-1::0;;;11127:112:0::1;;;;;;;:::i;:::-;11298:7;::::0;;11250:11:::1;11264:23:::0;;;:13:::1;:23;::::0;;;;:29;;::::1;::::0;:51:::1;::::0;11311:3:::1;::::0;11264:42:::1;::::0;:33:::1;:42::i;:::-;:46:::0;::::1;:51::i;:::-;11326:14;11343:23:::0;;;:13:::1;:23;::::0;;;;:29:::1;;::::0;11250:65;;-1:-1:-1;11326:14:0;11343:38:::1;::::0;11250:65;11343:33:::1;:38::i;:::-;11464:23;::::0;;;:13:::1;:23;::::0;;;;:29:::1;::::0;::::1;::::0;11399:34:::1;::::0;;::::1;::::0;11326:55;;-1:-1:-1;11392:110:0::1;::::0;-1:-1:-1;;;;;11399:34:0;;::::1;::::0;11452:10:::1;::::0;11464:29:::1;11326:55:::0;11392:59:::1;:110::i;:::-;11585:10;::::0;::::1;11520:23:::0;;;:13:::1;:23;::::0;;;;:34:::1;;::::0;11513:88:::1;::::0;-1:-1:-1;;;;;11520:34:0;;::::1;::::0;11573:10:::1;::::0;11585::::1;11597:3:::0;11513:59:::1;:88::i;:::-;11612:23;::::0;;;:13:::1;:23;::::0;;;;;;:32:::1;::::0;::::1;::::0;11685:31:::1;::::0;;::::1;::::0;11612:105;;-1:-1:-1;;;11612:105:0;;-1:-1:-1;;;;;11612:32:0;;::::1;::::0;:45:::1;::::0;:105:::1;::::0;11666:4:::1;::::0;11673:10:::1;::::0;11685:31;11612:105:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;11756:5:0::1;11728:25:::0;;;:15:::1;:25;::::0;;;;;;;:33;;-1:-1:-1;;11728:33:0;;::::1;::::0;;;11772:13:::1;:23:::0;;;;;;;;:35;;::::1;:43:::0;;;;::::1;::::0;;;11851:32:::1;::::0;::::1;::::0;11885:31:::1;::::0;::::1;::::0;11918:34:::1;::::0;::::1;::::0;11728:33;11954:29;::::1;::::0;11997::::1;::::0;;::::1;::::0;11831:209;;::::1;::::0;-1:-1:-1;11831:209:0::1;::::0;11744:8;;-1:-1:-1;;;;;11851:32:0;;::::1;::::0;11918:34;;::::1;::::0;11954:29:::1;::::0;11985:10:::1;::::0;11997:29;12028:3;;12033:6;;11831:209:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;1556:1:0;1833:22;;-1:-1:-1;10939:1109:0:o;9405:992::-;1600:1;1755:7;;:19;;1747:34;;;;-1:-1:-1;;;1747:34:0;;;;;;;:::i;:::-;1600:1;1792:7;:18;9578:29:::1;::::0;:18:::1;::::0;:29:::1;::::0;9597:9;;9578:29:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;:38;9570:53;;;;-1:-1:-1::0;;;9570:53:0::1;;;;;;;:::i;:::-;9634:59;::::0;-1:-1:-1;;;9634:59:0;;-1:-1:-1;;;;;9634:22:0;::::1;::::0;::::1;::::0;:59:::1;::::0;9657:10:::1;::::0;9677:4:::1;::::0;9684:8;;9634:59:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9730:178;;;;;;;;9740:8;;9730:178;;;;9750:10;-1:-1:-1::0;;;;;9730:178:0::1;;;;;9762:9;-1:-1:-1::0;;;;;9730:178:0::1;;;;;9773:8;9730:178;;;;9791:1;-1:-1:-1::0;;;;;9730:178:0::1;;;;;9795:6;9730:178;;;;9803:4;9730:178;;;;;;9809:9;9730:178;;;;9820:5;9730:178;;;;9827:12;9730:178;;;;9841:9;-1:-1:-1::0;;;;;9841:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;9841:16:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;9730:178;;;;9859:9;-1:-1:-1::0;;;;;9859:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;9859:18:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;9730:178;;;;9879:9;-1:-1:-1::0;;;;;9879:18:0::1;;9898:8;9879:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;9879:28:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;9730:178:::0;;9718:8:::1;::::0;;9704:23:::1;::::0;;;:13:::1;:23;::::0;;;;;;;;:204;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;9704:204:0;;::::1;-1:-1:-1::0;;;;;9704:204:0;;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;9704:204:0::1;::::0;::::1;;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;9704:204:0::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;9704:204:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;9704:204:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;9924:120;9944:8;;9954:10;9966:9;9977:8;9995:1;9999:6;10007:4;10013:9;10024:5;10031:12;9924:120;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;10055:30:0;::::1;;::::0;;;:19:::1;:30;::::0;;;;;;;10091:8:::1;::::0;;10055:45;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;10127:8;;10111:25;;:15:::1;:25:::0;;;;;;;:32;;-1:-1:-1;;10111:32:0::1;::::0;;::::1;::::0;;;10180:8;10154:23;;:12:::1;::::0;:23:::1;::::0;10167:9;;10154:23:::1;:::i;:::-;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;:34;;;;10213:10:::1;10199:25;::::0;;;:13:::1;:25:::0;;;;;10230:8:::1;::::0;;10199:40;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;10297:8;-1:-1:-1;;;;;10250:34:0;::::1;::::0;;:23:::1;:34:::0;;;;;:44;;;;;;;;;:55;;;10327:15:::1;::::0;:12:::1;:15::i;:::-;10316:8;:26:::0;10353:29:::1;::::0;10385:4:::1;::::0;10353:18:::1;::::0;:29:::1;::::0;10372:9;;10353:29:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:36;;;::::1;;-1:-1:-1::0;;10353:36:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;10353:36:0;1833:22;;-1:-1:-1;;;9405:992:0:o;15520:703::-;15598:27;;:::i;:::-;15627:19;15648:21;15671:17;15690:14;15729:13;:38;15743:12;15756:9;15743:23;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;15729:38;;;;;;;;;;;;-1:-1:-1;15729:38:0;15716:51;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15716:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15716:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;15729:38;;15716:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15716:51:0;;;-1:-1:-1;;15716:51:0;;;;;;;;;;;;;;;;-1:-1:-1;;15716:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15716:51:0;;;-1:-1:-1;;15716:51:0;;;;;;;;;;;;;;;;-1:-1:-1;;15716:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15716:51:0;;;;-1:-1:-1;;;15782:21:0;;;;15716:51;;-1:-1:-1;;;;;;15782:35:0;15778:371;;15842:3;;;;;;;;;-1:-1:-1;;;;;15842:3:0;-1:-1:-1;;;;;15842:8:0;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15842:10:0;;;;;;;;;;;;:::i;:::-;15834:18;;15877:3;;;;;;;;;-1:-1:-1;;;;;15877:3:0;-1:-1:-1;;;;;15877:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15877:12:0;;;;;;;;;;;;:::i;:::-;15867:22;;15916:3;;;;;;;;;-1:-1:-1;;;;;15916:3:0;-1:-1:-1;;;;;15916:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15904:26;;;;15778:371;;;15978:10;:21;;;-1:-1:-1;;;;;15971:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15971:36:0;;;;;;;;;;;;:::i;:::-;15963:44;;16039:10;:21;;;-1:-1:-1;;;;;16032:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16032:38:0;;;;;;;;;;;;:::i;:::-;16022:48;;16104:10;:21;;;-1:-1:-1;;;;;16097:38:0;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16085:52;;;;15778:371;16168:47;16205:9;16199:2;:15;16168:26;16189:4;16168:10;:16;;;:20;;:26;;;;:::i;:47::-;16159:56;;15520:703;;;;;;;:::o;5025:27::-;;;;:::o;13156:917::-;13237:21;13271:13;13304:9;13299:187;13323:12;:19;13319:1;:23;13299:187;;;13368:13;:30;13382:12;13395:1;13382:15;;;;;;;;;;;;;;;;;;;13368:30;;;;;;;;;;-1:-1:-1;13368:30:0;:42;;;;;:50;;:42;:50;13364:111;;;13447:12;:5;13457:1;13447:9;:12::i;:::-;13439:20;;13364:111;13344:3;;13299:187;;;;13496:9;13520:23;13565:5;13546:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;13520:51;;13587:9;13582:465;13606:12;:19;13602:1;:23;13582:465;;;13651:13;:30;13665:12;13678:1;13665:15;;;;;;;;;;;;;;;;;;;13651:30;;;;;;;;;;-1:-1:-1;13651:30:0;:42;;;;;:50;;:42;:50;13647:389;;;13723:27;;:::i;:::-;13752:19;13773:21;13796:17;13815:14;13830:23;13857:36;13877:12;13890:1;13877:15;;;;;;;;;;;;;;13857:19;:36::i;:::-;13722:171;;;;;;;;;;;;13919:70;;;;;;;;13932:10;13919:70;;;;13944:5;13919:70;;;;13951:7;13919:70;;;;13960:9;13919:70;;;;13971:6;13919:70;;;;13979:9;13919:70;;;13912:1;13914;13912:4;;;;;;;;;;;;;;;;;:77;14012:8;:1;14018;14012:5;:8::i;:::-;14008:12;;13647:389;;;;;;;13627:3;;13582:465;;;-1:-1:-1;14064:1:0;13156:917;-1:-1:-1;;;;13156:917:0:o;6998:1383::-;7096:4;7102:7;7111:19;;:::i;:::-;-1:-1:-1;;;;;7147:34:0;;7194:1;7147:34;;;:23;:34;;;;;;;;:44;;;;;;;;;:48;7143:1231;;7213:27;;:::i;:::-;-1:-1:-1;;;;;7367:34:0;;7286:17;7367:34;;;:23;:34;;;;;;;;:44;;;;;;;;;7242:19;;;;7286:17;;7242:19;;7347:65;;:19;:65::i;:::-;7212:200;;;;;;;;;;;;7435:13;:59;7449:23;:34;7473:9;-1:-1:-1;;;;;7449:34:0;-1:-1:-1;;;;;7449:34:0;;;;;;;;;;;;:44;7484:8;7449:44;;;;;;;;;;;;7435:59;;;;;;;;;;;:71;;;;;;;;;;;;7508:23;:34;7532:9;-1:-1:-1;;;;;7508:34:0;-1:-1:-1;;;;;7508:34:0;;;;;;;;;;;;:44;7543:8;7508:44;;;;;;;;;;;;7554:70;;;;;;;;7567:10;7554:70;;;;7579:5;7554:70;;;;7586:7;7554:70;;;;7595:9;7554:70;;;;7606:6;7554:70;;;;7614:9;7554:70;;;7427:198;;;;;;;;;;;;;;7143:1231;7659:27;;:::i;:::-;7688:19;7709:21;7732:17;7751:14;7766:23;7793:22;7813:1;7793:19;:22::i;:::-;7658:157;;;;;;;;;;;;7906:9;-1:-1:-1;;;;;7834:81:0;:13;:59;7848:23;:34;7872:9;-1:-1:-1;;;;;7848:34:0;-1:-1:-1;;;;;7848:34:0;;;;;;;;;;;;:44;7883:8;7848:44;;;;;;;;;;;;7834:59;;;;;;;;;;;:68;;;;;;;;;;-1:-1:-1;;;;;7834:68:0;-1:-1:-1;;;;;7834:81:0;;:164;;;;-1:-1:-1;;;;;;7933:34:0;;7919:59;7933:34;;;:23;:34;;;;;;;;:44;;;;;;;;;7919:59;;:13;:59;;;;;:67;;;:79;;7834:164;7830:533;;;-1:-1:-1;;;;;8041:34:0;;8027:59;8041:34;;;:23;:34;;;;;;;;:44;;;;;;;;;;8027:59;;;:13;:59;;;;;;:71;;8100:44;;;;;;;8146:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8027:71;;;-1:-1:-1;8041:44:0;-1:-1:-1;8146:70:0;-1:-1:-1;8019:198:0;;7830:533;8276:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8266:5;;-1:-1:-1;8266:5:0;;-1:-1:-1;8276:70:0;-1:-1:-1;7143:1231:0;6998:1383;;;;;:::o;5730:66::-;;;;;;;;;;;;;;;;;;6721:177;6813:10;;-1:-1:-1;;;;;6813:10:0;6799;:24;;:49;;;6841:7;:5;:7::i;:::-;-1:-1:-1;;;;;6827:21:0;:10;-1:-1:-1;;;;;6827:21:0;;6799:49;6791:64;;;;-1:-1:-1;;;6791:64:0;;;;;;;:::i;:::-;6866:10;:24;;-1:-1:-1;;;;;;6866:24:0;-1:-1:-1;;;;;6866:24:0;;;;;;;;;;6721:177::o;14081:655::-;14160:16;14189:13;14222:9;14217:187;14241:12;:19;14237:1;:23;14217:187;;;14286:13;:30;14300:12;14313:1;14300:15;;;;;;;;;;;;;;;;;;;14286:30;;;;;;;;;;-1:-1:-1;14286:30:0;:42;;;;;:50;;:42;:50;14282:111;;;14365:12;:5;14375:1;14365:9;:12::i;:::-;14357:20;;14282:111;14262:3;;14217:187;;;;14414:9;14438:18;14473:5;14459:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14459:20:0;;14438:41;;14495:9;14490:220;14514:12;:19;14510:1;:23;14490:220;;;14559:13;:30;14573:12;14586:1;14573:15;;;;;;;;;;;;;;;;;;;14559:30;;;;;;;;;;-1:-1:-1;14559:30:0;:42;;;;;:50;;:42;:50;14555:144;;;14637:12;14650:1;14637:15;;;;;;;;;;;;;;14630:1;14632;14630:4;;;;;;;;;;;;;;;;;:22;14675:8;:1;14681;14675:5;:8::i;:::-;14671:12;;14555:144;14535:3;;14490:220;;10405:526;1600:1;1755:7;;:19;;1747:34;;;;-1:-1:-1;;;1747:34:0;;;;;;;:::i;:::-;1600:1;1792:7;:18;;;10481:25:::1;::::0;;;:15:::1;:25;::::0;;;;;::::1;;:33;;;10473:48;;;;-1:-1:-1::0;;;10473:48:0::1;;;;;;;:::i;:::-;10540:23;::::0;;;:13:::1;:23;::::0;;;;:29:::1;;::::0;-1:-1:-1;;;;;10540:29:0::1;10573:10;10540:43;10532:58;;;;-1:-1:-1::0;;;10532:58:0::1;;;;;;;:::i;:::-;10601:23;::::0;;;:13:::1;:23;::::0;;;;;;:32:::1;::::0;::::1;::::0;10674:31:::1;::::0;;::::1;::::0;10601:105;;-1:-1:-1;;;10601:105:0;;-1:-1:-1;;;;;10601:32:0;;::::1;::::0;:45:::1;::::0;:105:::1;::::0;10655:4:::1;::::0;10662:10:::1;::::0;10674:31;10601:105:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;10755:5:0::1;10717:23:::0;;;:13:::1;:23;::::0;;;;;;;:35;;::::1;:43:::0;;-1:-1:-1;;10717:43:0;;::::1;::::0;;;10771:15:::1;:25:::0;;;;;;:33;;;;::::1;::::0;;;10857:23;;;:32:::1;::::0;::::1;::::0;10891:31:::1;::::0;;::::1;::::0;10820:103;;::::1;::::0;-1:-1:-1;10820:103:0::1;::::0;10731:8;;10845:10:::1;::::0;-1:-1:-1;;;;;10857:32:0;;::::1;::::0;10820:103:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;1556:1:0;1833:22;;10405:526::o;6023:88::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2384:209::-;2336:12;:10;:12::i;:::-;2326:6;;-1:-1:-1;;;;;2326:6:0;;;:22;;;2318:38;;;;-1:-1:-1;;;2318:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2473:22:0;::::1;2465:38;;;;-1:-1:-1::0;;;2465:38:0::1;;;;;;;:::i;:::-;2540:6;::::0;;2519:38:::1;::::0;-1:-1:-1;;;;;2519:38:0;;::::1;::::0;2540:6;::::1;::::0;2519:38:::1;::::0;::::1;2568:6;:17:::0;;-1:-1:-1;;;;;;2568:17:0::1;-1:-1:-1::0;;;;;2568:17:0;;;::::1;::::0;;;::::1;::::0;;2384:209::o;12056:875::-;1600:1;1755:7;;:19;;1747:34;;;;-1:-1:-1;;;1747:34:0;;;;;;;:::i;:::-;1600:1;1792:7;:18;;;12142:25:::1;::::0;;;:15:::1;:25;::::0;;;;;::::1;;:33;;;12134:48;;;;-1:-1:-1::0;;;12134:48:0::1;;;;;;;:::i;:::-;12214:23;::::0;;;:13:::1;:23;::::0;;;;:29:::1;;::::0;12201:9:::1;:42;;12193:57;;;;-1:-1:-1::0;;;12193:57:0::1;;;;;;;:::i;:::-;12309:7;::::0;;12261:11:::1;12275:23:::0;;;:13:::1;:23;::::0;;;;:29;;::::1;::::0;:51:::1;::::0;12322:3:::1;::::0;12275:42:::1;::::0;:33:::1;:42::i;:51::-;12337:14;12354:23:::0;;;:13:::1;:23;::::0;;;;:29:::1;;::::0;12261:65;;-1:-1:-1;12337:14:0;12354:38:::1;::::0;12261:65;12354:33:::1;:38::i;:::-;12403:23;::::0;;;:13:::1;:23;::::0;;;;;:29:::1;;::::0;:46;;12337:55;;-1:-1:-1;;;;;;12403:29:0::1;::::0;:46;::::1;;;::::0;12337:55;;12403:46;;:23;:46;12337:55;12403:29;:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12460:10:0::1;::::0;:24:::1;::::0;-1:-1:-1;;;;;12460:10:0;;::::1;::::0;:24;::::1;;;::::0;12480:3;;12460:10:::1;:24:::0;:10;:24;12480:3;12460:10;:24;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12495:23:0::1;::::0;;;:13:::1;:23;::::0;;;;;;:32:::1;::::0;::::1;::::0;12568:31:::1;::::0;;::::1;::::0;12495:105;;-1:-1:-1;;;12495:105:0;;-1:-1:-1;;;;;12495:32:0;;::::1;::::0;:45:::1;::::0;:105:::1;::::0;12549:4:::1;::::0;12556:10:::1;::::0;12568:31;12495:105:::1;;;:::i;14744:768::-:0;14809:27;;:::i;:::-;14882:17;14965:20;;;:13;:20;;;;;;;;14952:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14952:33:0;;;;;;;;;;;;;;;;;;;;;;14838:19;14952:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14952:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14838:19;;;14882:17;;;;14838:19;;14965:20;14952:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14952:33:0;;;-1:-1:-1;;14952:33:0;;;;;;;;;;;;;;;;-1:-1:-1;;14952:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14952:33:0;;;-1:-1:-1;;14952:33:0;;;;;;;;;;;;;;;;-1:-1:-1;;14952:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14952:33:0;;;;-1:-1:-1;;;15000:21:0;;;;14952:33;;-1:-1:-1;;;;;;15000:35:0;14996:371;;15060:3;;;;;;;;;-1:-1:-1;;;;;15060:3:0;-1:-1:-1;;;;;15060:8:0;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15060:10:0;;;;;;;;;;;;:::i;:::-;15052:18;;15095:3;;;;;;;;;-1:-1:-1;;;;;15095:3:0;-1:-1:-1;;;;;15095:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15095:12:0;;;;;;;;;;;;:::i;:::-;15085:22;;15134:3;;;;;;;;;-1:-1:-1;;;;;15134:3:0;-1:-1:-1;;;;;15134:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15122:26;;;;14996:371;;;15196:10;:21;;;-1:-1:-1;;;;;15189:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15189:36:0;;;;;;;;;;;;:::i;:::-;15181:44;;15257:10;:21;;;-1:-1:-1;;;;;15250:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15250:38:0;;;;;;;;;;;;:::i;:::-;15240:48;;15322:10;:21;;;-1:-1:-1;;;;;15315:38:0;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15303:52;;;;14996:371;15386:47;15423:9;15417:2;:15;15386:26;15407:4;15386:10;:16;;;:20;;:26;;;;:::i;:47::-;15456:19;;;;;15485:18;;;;15456:48;;-1:-1:-1;;;15456:48:0;;15377:56;;-1:-1:-1;;;;;;15456:28:0;;;;:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15456:48:0;;;;;;;;;;;;:::i;:::-;15444:60;;14744:768;;;;;;;:::o;3724:158::-;3782:7;3814:5;;;3838:6;;;;3830:25;;;;-1:-1:-1;;;3830:25:0;;;;;;;:::i;:::-;3873:1;-1:-1:-1;3724:158:0;;;;;:::o;1362:106::-;1450:10;1362:106;:::o;661:177::-;744:86;764:5;794:23;;;819:2;823:5;771:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;771:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;771:58:0;-1:-1:-1;;;;;;771:58:0;;;;;;;;;;744:19;:86::i;:::-;661:177;;;:::o;4056:219::-;4114:7;4138:6;4134:47;;-1:-1:-1;4168:1:0;4161:8;;4134:47;4203:5;;;4207:1;4203;:5;:1;4227:5;;;;;:10;4219:29;;;;-1:-1:-1;;;4219:29:0;;;;;;;:::i;4283:157::-;4341:7;4373:1;4369;:5;4361:24;;;;-1:-1:-1;;;4361:24:0;;;;;;;:::i;:::-;4396:9;4412:1;4408;:5;;;;;;;4283:157;-1:-1:-1;;;;4283:157:0:o;3890:158::-;3948:7;3981:1;3976;:6;;3968:25;;;;-1:-1:-1;;;3968:25:0;;;;;;;:::i;:::-;-1:-1:-1;4016:5:0;;;3890:158::o;846:205::-;947:96;967:5;997:27;;;1026:4;1032:2;1036:5;974:68;;;;;;;;;;:::i;947:96::-;846:205;;;;:::o;1059:263::-;1140:23;1166:39;1194:4;1166:39;;;;;;;;;;;;;-1:-1:-1;;;1166:39:0;;;1174:5;-1:-1:-1;;;;;1166:27:0;;;:39;;;;;:::i;:::-;1220:17;;1140:65;;-1:-1:-1;1220:21:0;1216:99;;1277:10;1266:30;;;;;;;;;;;;:::i;:::-;1258:45;;;;-1:-1:-1;;;1258:45:0;;;;;;;:::i;2827:196::-;2930:12;2962:53;2985:6;2993:4;2999:1;3002:12;3161;3194:18;3205:6;3194:10;:18::i;:::-;3186:33;;;;-1:-1:-1;;;3186:33:0;;;;;;;:::i;:::-;3231:12;3245:23;3272:6;-1:-1:-1;;;;;3272:11:0;3292:8;3302:4;3272:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3230:77;;;;3322:7;3318:368;;;3353:10;-1:-1:-1;3346:17:0;;-1:-1:-1;3346:17:0;3318:368;3400:17;;:21;3396:279;;3503:10;3497:17;3564:15;3551:10;3547:2;3543:19;3536:44;3451:148;3646:12;3639:20;;-1:-1:-1;;;3639:20:0;;;;;;;;:::i;2623:196::-;2755:20;2803:8;;;2623:196::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;1514:442;;1616:3;1609:4;1601:6;1597:17;1593:27;1583:2;;-1:-1;;1624:12;1583:2;1671:6;1658:20;1693:65;1708:49;1750:6;1708:49;:::i;:::-;1693:65;:::i;:::-;1684:74;;1778:6;1771:5;1764:21;1882:3;1814:4;1873:6;1806;1864:16;;1861:25;1858:2;;;1899:1;;1889:12;1858:2;51942:6;1814:4;1806:6;1802:17;1814:4;1840:5;1836:16;51919:30;51998:1;51980:16;;;1814:4;51980:16;51973:27;1840:5;1576:380;-1:-1;;1576:380::o;2832:241::-;;2936:2;2924:9;2915:7;2911:23;2907:32;2904:2;;;-1:-1;;2942:12;2904:2;85:6;72:20;97:33;124:5;97:33;:::i;3344:366::-;;;3465:2;3453:9;3444:7;3440:23;3436:32;3433:2;;;-1:-1;;3471:12;3433:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3523:63;3623:2;3662:22;;;;2484:20;;-1:-1;;;3427:283::o;3717:377::-;;3846:2;;3834:9;3825:7;3821:23;3817:32;3814:2;;;-1:-1;;3852:12;3814:2;3910:17;3897:31;3948:18;3940:6;3937:30;3934:2;;;-1:-1;;3970:12;3934:2;4046:22;;423:4;411:17;;407:27;-1:-1;397:2;;-1:-1;;438:12;397:2;485:6;472:20;507:80;522:64;579:6;522:64;:::i;507:80::-;615:21;;;672:14;;;;647:17;;;761;;;752:27;;;;749:36;-1:-1;746:2;;;-1:-1;;788:12;746:2;-1:-1;814:10;;808:206;833:6;830:1;827:13;808:206;;;2484:20;;901:50;;855:1;848:9;;;;;965:14;;;;993;;808:206;;;-1:-1;3990:88;3808:286;-1:-1;;;;;;;3808:286::o;4101:257::-;;4213:2;4201:9;4192:7;4188:23;4184:32;4181:2;;;-1:-1;;4219:12;4181:2;1109:6;1103:13;52741:5;50326:13;50319:21;52719:5;52716:32;52706:2;;-1:-1;;52752:12;4639:416;;;4785:2;4773:9;4764:7;4760:23;4756:32;4753:2;;;-1:-1;;4791:12;5062:1025;;;;;;;5286:3;5274:9;5265:7;5261:23;5257:33;5254:2;;;-1:-1;;5293:12;5254:2;1431:6;1418:20;1443:58;1495:5;1443:58;:::i;:::-;5345:88;-1:-1;5470:2;5509:22;;2484:20;;-1:-1;5578:2;5617:22;;72:20;97:33;72:20;97:33;:::i;:::-;5586:63;-1:-1;5686:2;5725:22;;2484:20;;-1:-1;5822:3;5807:19;;5794:33;5847:18;5836:30;;5833:2;;;-1:-1;;5869:12;5833:2;5899:63;5954:7;5945:6;5934:9;5930:22;5899:63;:::i;:::-;5889:73;;;5999:3;6043:9;6039:22;2484:20;6008:63;;5248:839;;;;;;;;:::o;6094:899::-;;;;;;6301:3;6289:9;6280:7;6276:23;6272:33;6269:2;;;-1:-1;;6308:12;6269:2;1431:6;1418:20;1443:58;1495:5;1443:58;:::i;:::-;6360:88;-1:-1;6485:2;6524:22;;2484:20;;-1:-1;6593:2;6632:22;;2484:20;;-1:-1;6729:2;6714:18;;6701:32;6753:18;6742:30;;6739:2;;;-1:-1;;6775:12;6739:2;6805:63;6860:7;6851:6;6840:9;6836:22;6805:63;:::i;:::-;6263:730;;;;-1:-1;6263:730;;6905:3;6945:22;2484:20;;6263:730;-1:-1;;;6263:730::o;7000:347::-;;7114:2;7102:9;7093:7;7089:23;7085:32;7082:2;;;-1:-1;;7120:12;7082:2;7178:17;7165:31;7216:18;7208:6;7205:30;7202:2;;;-1:-1;;7238:12;7202:2;7268:63;7323:7;7314:6;7303:9;7299:22;7268:63;:::i;7354:362::-;;7479:2;7467:9;7458:7;7454:23;7450:32;7447:2;;;-1:-1;;7485:12;7447:2;7536:17;7530:24;7574:18;7566:6;7563:30;7560:2;;;-1:-1;;7596:12;7560:2;7668:22;;2071:4;2059:17;;2055:27;-1:-1;2045:2;;-1:-1;;2086:12;2045:2;2126:6;2120:13;2148:65;2163:49;2205:6;2163:49;:::i;2148:65::-;2233:6;2226:5;2219:21;2337:3;7479:2;2328:6;2261;2319:16;;2316:25;2313:2;;;-1:-1;;2344:12;2313:2;2364:39;2396:6;7479:2;2295:5;2291:16;7479:2;2261:6;2257:17;2364:39;:::i;:::-;7616:84;7441:275;-1:-1;;;;;7441:275::o;7723:241::-;;7827:2;7815:9;7806:7;7802:23;7798:32;7795:2;;;-1:-1;;7833:12;7795:2;-1:-1;2484:20;;7789:175;-1:-1;7789:175::o;7971:263::-;;8086:2;8074:9;8065:7;8061:23;8057:32;8054:2;;;-1:-1;;8092:12;8054:2;-1:-1;2632:13;;8048:186;-1:-1;8048:186::o;8241:259::-;;8354:2;8342:9;8333:7;8329:23;8325:32;8322:2;;;-1:-1;;8360:12;8322:2;2777:6;2771:13;50864:4;53309:5;50853:16;53286:5;53283:33;53273:2;;-1:-1;;53320:12;9116:127;-1:-1;;;;;50648:54;9193:45;;9187:56::o;11522:94::-;50326:13;50319:21;11577:34;;11571:45::o;12612:327::-;;12747:5;48311:12;49172:6;49167:3;49160:19;12831:52;12876:6;49209:4;49204:3;49200:14;49209:4;12857:5;12853:16;12831:52;:::i;:::-;52375:7;52359:14;-1:-1;;52355:28;12895:39;;;;49209:4;12895:39;;12694:245;-1:-1;;12694:245::o;18100:1467::-;;18327:16;18321:23;18249:4;18364:14;18357:38;18410:105;18249:4;18244:3;18240:14;18496:12;18410:105;:::i;:::-;18402:113;;18601:4;18594:5;18590:16;18584:23;18653:3;18647:4;18643:14;18601:4;18631:3;18627:14;18620:38;18673:73;18741:4;18727:12;18673:73;:::i;:::-;18665:81;;;18834:4;18827:5;18823:16;18817:23;18886:3;18880:4;18876:14;18834:4;18864:3;18860:14;18853:38;18906:73;18974:4;18960:12;18906:73;:::i;:::-;18898:81;;;19069:4;19062:5;19058:16;19052:23;19069:4;19133:3;19129:14;26520:37;19225:4;19218:5;19214:16;19208:23;19225:4;19289:3;19285:14;26520:37;19384:4;19377:5;19373:16;19367:23;19436:3;19430:4;19426:14;19384:4;19414:3;19410:14;19403:38;19456:73;19524:4;19510:12;19456:73;:::i;21202:2582::-;;21345:6;21422:16;21416:23;26527:3;26520:37;21588:4;21581:5;21577:16;21571:23;21600:79;21588:4;21668:3;21664:14;21650:12;21600:79;:::i;:::-;;21762:4;21755:5;21751:16;21745:23;21774:88;21762:4;21851:3;21847:14;21833:12;21774:88;:::i;:::-;;21944:4;21937:5;21933:16;21927:23;21944:4;22008:3;22004:14;26520:37;22104:4;22097:5;22093:16;22087:23;22116:63;22104:4;22168:3;22164:14;22150:12;22116:63;:::i;:::-;;22259:4;22252:5;22248:16;22242:23;22259:4;22323:3;22319:14;26520:37;22420:4;22413:5;22409:16;22403:23;22432:57;22420:4;22478:3;22474:14;22460:12;22432:57;:::i;:::-;;22572:4;22565:5;22561:16;22555:23;21345:6;22572:4;22602:3;22598:14;22591:38;22644:73;21345:6;21340:3;21336:16;22698:12;22644:73;:::i;:::-;22636:81;;;22802:6;;22795:5;22791:18;22785:25;22802:6;22868:3;22864:16;26520:37;;22965:6;;22958:5;22954:18;22948:25;22965:6;23031:3;23027:16;26520:37;;23123:6;;23116:5;23112:18;23106:25;23179:3;23173:4;23169:14;23123:6;23155:3;23151:16;23144:40;23199:73;23267:4;23253:12;23199:73;:::i;:::-;23191:81;;;;23359:6;;23352:5;23348:18;23342:25;23415:3;23409:4;23405:14;23359:6;23391:3;23387:16;23380:40;23435:73;23503:4;23489:12;23435:73;:::i;:::-;23427:81;;;;23597:6;;23590:5;23586:18;23580:25;23653:3;23647:4;23643:14;23597:6;23629:3;23625:16;23618:40;23673:73;23741:4;23727:12;23673:73;:::i;:::-;23768:11;21318:2466;-1:-1;;;;;;21318:2466::o;26689:271::-;;11894:5;48311:12;12005:52;12050:6;12045:3;12038:4;12031:5;12027:16;12005:52;:::i;:::-;12069:16;;;;;26823:137;-1:-1;;26823:137::o;27249:222::-;-1:-1;;;;;50648:54;;;;9193:45;;27376:2;27361:18;;27347:124::o;27984:460::-;-1:-1;;;;;50648:54;;;9046:58;;50648:54;;;;28347:2;28332:18;;9193:45;28430:2;28415:18;;26520:37;;;;28175:2;28160:18;;28146:298::o;29369:333::-;-1:-1;;;;;50648:54;;;;9193:45;;29688:2;29673:18;;26520:37;29524:2;29509:18;;29495:207::o;29709:486::-;;29944:2;;29933:9;29929:18;29944:2;29965:17;29958:47;30019:166;9985:5;48311:12;49172:6;49167:3;49160:19;49200:14;29933:9;49200:14;9997:122;;49200:14;29944:2;10176:6;10172:17;29933:9;10163:27;;10151:39;;29944:2;10290:5;47978:14;-1:-1;10329:417;10354:6;10351:1;10348:13;10329:417;;;10406:20;;29933:9;10410:4;10406:20;;10401:3;10394:33;8667:104;8767:3;10461:6;10455:13;8667:104;:::i;:::-;10475:130;-1:-1;10725:14;;;;48871;;;;10376:1;10369:9;10329:417;;;-1:-1;30011:174;;29915:280;-1:-1;;;;;;;29915:280::o;30202:370::-;30379:2;30393:47;;;48311:12;;30364:18;;;49160:19;;;30202:370;;30379:2;47978:14;;;;49200;;;;30202:370;11232:260;11257:6;11254:1;11251:13;11232:260;;;11318:13;;26520:37;;48871:14;;;;8939;;;;11279:1;11272:9;11232:260;;;-1:-1;30446:116;;30350:222;-1:-1;;;;;;30350:222::o;30579:210::-;50326:13;;50319:21;11577:34;;30700:2;30685:18;;30671:118::o;30796:596::-;;11604:5;50326:13;50319:21;11584:3;11577:34;26550:5;31189:2;31178:9;31174:18;26520:37;31031:2;31226;31215:9;31211:18;31204:48;31266:116;31031:2;31020:9;31016:18;31368:6;31266:116;:::i;31654:310::-;;31801:2;31822:17;31815:47;31876:78;31801:2;31790:9;31786:18;31940:6;31876:78;:::i;:::-;31868:86;31772:192;-1:-1;;;31772:192::o;31971:416::-;32171:2;32185:47;;;13892:1;32156:18;;;49160:19;-1:-1;;;49200:14;;;13907:26;13952:12;;;32142:245::o;32394:416::-;32594:2;32608:47;;;14203:1;32579:18;;;49160:19;-1:-1;;;49200:14;;;14218:25;14262:12;;;32565:245::o;32817:416::-;33017:2;33031:47;;;14513:1;33002:18;;;49160:19;-1:-1;;;49200:14;;;14528:29;14576:12;;;32988:245::o;33240:416::-;33440:2;33454:47;;;14827:1;33425:18;;;49160:19;-1:-1;;;49200:14;;;14842:26;14887:12;;;33411:245::o;33663:416::-;33863:2;33877:47;;;15138:1;33848:18;;;49160:19;-1:-1;;;49200:14;;;15153:25;15197:12;;;33834:245::o;34086:416::-;34286:2;34300:47;;;15448:1;34271:18;;;49160:19;-1:-1;;;49200:14;;;15463:25;15507:12;;;34257:245::o;34509:416::-;34709:2;34723:47;;;15758:1;34694:18;;;49160:19;-1:-1;;;49200:14;;;15773:25;15817:12;;;34680:245::o;34932:416::-;35132:2;35146:47;;;16068:1;35117:18;;;49160:19;-1:-1;;;49200:14;;;16083:29;16131:12;;;35103:245::o;35355:416::-;35555:2;35569:47;;;16382:1;35540:18;;;49160:19;-1:-1;;;49200:14;;;16397:29;16445:12;;;35526:245::o;35778:416::-;35978:2;35992:47;;;16696:1;35963:18;;;49160:19;-1:-1;;;49200:14;;;16711:29;16759:12;;;35949:245::o;36201:416::-;36401:2;36415:47;;;17010:1;36386:18;;;49160:19;-1:-1;;;49200:14;;;17025:25;17069:12;;;36372:245::o;36624:416::-;36824:2;36838:47;;;17320:1;36809:18;;;49160:19;-1:-1;;;49200:14;;;17335:25;17379:12;;;36795:245::o;37047:416::-;37247:2;37261:47;;;17630:1;37232:18;;;49160:19;-1:-1;;;49200:14;;;17645:25;17689:12;;;37218:245::o;37470:416::-;37670:2;37684:47;;;17940:1;37655:18;;;49160:19;-1:-1;;;49200:14;;;17955:25;17999:12;;;37641:245::o;37893:996::-;;38224:3;38246:17;38239:47;38300:110;38224:3;38213:9;38209:19;38396:6;38300:110;:::i;:::-;38458:9;38452:4;38448:20;38443:2;38432:9;38428:18;38421:48;38483:78;38556:4;38547:6;38483:78;:::i;:::-;38475:86;;38609:9;38603:4;38599:20;38594:2;38583:9;38579:18;38572:48;38634:78;38707:4;38698:6;38634:78;:::i;:::-;38791:2;38776:18;;26520:37;;;;-1:-1;;38874:3;38859:19;26520:37;38626:86;38195:694;-1:-1;;;38195:694::o;38896:1196::-;;39275:3;39297:17;39290:47;39351:110;39275:3;39264:9;39260:19;39447:6;39351:110;:::i;:::-;39509:9;39503:4;39499:20;39494:2;39483:9;39479:18;39472:48;39534:78;39607:4;39598:6;39534:78;:::i;:::-;39526:86;;39660:9;39654:4;39650:20;39645:2;39634:9;39630:18;39623:48;39685:78;39758:4;39749:6;39685:78;:::i;:::-;39677:86;;26550:5;39842:2;39831:9;39827:18;26520:37;26550:5;39925:3;39914:9;39910:19;26520:37;39979:9;39973:4;39969:20;39963:3;39952:9;39948:19;39941:49;40004:78;40077:4;40068:6;40004:78;:::i;:::-;39996:86;39246:846;-1:-1;;;;;;;;;39246:846::o;40099:222::-;26520:37;;;40226:2;40211:18;;40197:124::o;40328:622::-;26520:37;;;-1:-1;;;;;50648:54;;;40745:2;40730:18;;9046:58;50648:54;;40853:2;40838:18;;12181:63;40936:2;40921:18;;26520:37;40572:3;40557:19;;40543:407::o;40957:1386::-;26520:37;;;-1:-1;;;;;50648:54;;;41564:2;41549:18;;9046:58;50648:54;;;41672:2;41657:18;;12181:63;41755:2;41740:18;;26520:37;;;50648:54;;41846:3;41831:19;;9046:58;50659:42;41915:19;;26520:37;;;50326:13;;50319:21;42008:3;41993:19;;11577:34;41391:3;42046;42031:19;;42024:49;;;40957:1386;;42087:78;41376:19;;;42151:6;42087:78;:::i;:::-;42244:3;42229:19;;26520:37;;;;-1:-1;;42328:3;42313:19;26520:37;42079:86;41362:981;-1:-1;;;;;;;;41362:981::o;43727:1992::-;;26550:5;26527:3;26520:37;44405:88;44489:2;44478:9;44474:18;44465:6;44405:88;:::i;:::-;44504:97;44597:2;44586:9;44582:18;44573:6;44504:97;:::i;:::-;26550:5;44680:2;44669:9;44665:18;26520:37;44695:73;44763:3;44752:9;44748:19;44739:6;44695:73;:::i;:::-;26550:5;44847:3;44836:9;44832:19;26520:37;44863:67;44925:3;44914:9;44910:19;44901:6;44863:67;:::i;:::-;44308:3;44963;44952:9;44948:19;44941:49;45004:78;44308:3;44297:9;44293:19;45068:6;45004:78;:::i;:::-;26550:5;45161:3;45150:9;45146:19;26520:37;26550:5;45245:3;45234:9;45230:19;26520:37;45299:9;45293:4;45289:20;45283:3;45272:9;45268:19;45261:49;45324:79;45398:4;45388:7;45324:79;:::i;:::-;45316:87;;45452:9;45446:4;45442:20;45436:3;45425:9;45421:19;45414:49;45477:79;45551:4;45541:7;45477:79;:::i;:::-;45469:87;;45605:9;45599:4;45595:20;45589:3;45578:9;45574:19;45567:49;45630:79;45704:4;45694:7;45630:79;:::i;:::-;45622:87;;;44279:1440;;;;;;;;;;;;;;;;:::o;45726:1198::-;26520:37;;;-1:-1;;;;;50648:54;;;46308:2;46293:18;;12181:63;46391:2;46376:18;;26520:37;;;;50648:54;;;46474:2;46459:18;;9193:45;50648:54;;;46565:3;46550:19;;9046:58;50648:54;;;50659:42;46642:19;;9046:58;46741:3;46726:19;;26520:37;;;;46825:3;46810:19;;26520:37;;;;46909:3;46894:19;;26520:37;46118:3;46103:19;;46089:835::o;46931:256::-;46993:2;46987:9;47019:17;;;47094:18;47079:34;;47115:22;;;47076:62;47073:2;;;47151:1;;47141:12;47073:2;46993;47160:22;46971:216;;-1:-1;46971:216::o;47194:304::-;;47353:18;47345:6;47342:30;47339:2;;;-1:-1;;47375:12;47339:2;-1:-1;47420:4;47408:17;;;47473:15;;47276:222::o;47505:322::-;;47649:18;47641:6;47638:30;47635:2;;;-1:-1;;47671:12;47635:2;-1:-1;52375:7;47725:17;-1:-1;;47721:33;47812:4;47802:15;;47572:255::o;52015:268::-;52080:1;52087:101;52101:6;52098:1;52095:13;52087:101;;;52168:11;;;52162:18;52149:11;;;52142:39;52123:2;52116:10;52087:101;;;52203:6;52200:1;52197:13;52194:2;;;-1:-1;;52080:1;52250:16;;52243:27;52064:219::o;52396:117::-;-1:-1;;;;;50648:54;;52455:35;;52445:2;;52504:1;;52494:12;52445:2;52439:74;:::o

Swarm Source

ipfs://b5a06bb1308938864b6cf91796719814d03a628eb35adeece04b7a9f29fee8fb
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading