ETH Price: $2,500.69 (-0.62%)
Gas: 2.34 Gwei

Token

Jungle by ESCAPEPLAN (JNGL)
 

Overview

Max Total Supply

205 JNGL

Holders

36

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
randygreenstein.eth
0xBdA35C85e2E732398f0B334d6570f6c7041566a7
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Jungle

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 8 : Jungle.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./erc/165/IERC165.sol";
import "./erc/173/ERC173.sol";
import "./erc/1155/ERC1155.sol";

/**
 * @title Jungle by ESCAPEPLAN smart contract
 */
contract Jungle is ERC1155, ERC173, IERC165 {

    address BigNightRecords = 0x590AfC242d692d6B4b9BD8d69783BFb099E8BCf5;

    constructor() ERC1155("Jungle by ESCAPEPLAN", "JNGL") ERC173(BigNightRecords) {
        _mint(BigNightRecords);
    }

    /**
     * @dev ERC165 supports interface
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165) returns (bool) {
        return
            interfaceId == type(IERC165).interfaceId ||
            interfaceId == type(IERC173).interfaceId ||
            interfaceId == type(IERC1155).interfaceId ||
            interfaceId == type(IERC1155Metadata).interfaceId ||
            interfaceId == type(IERC1155Receiver).interfaceId;
    }
}

File 2 of 8 : IERC165.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title ERC165 Interface
 *
 * @dev Interface of the ERC165 standard according to the EIP
 */
interface IERC165 {
    /**
     * @dev ERC165 standard functions
     */

    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 3 of 8 : ERC173.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC173.sol";

/**
 * @title ERC173 Contract
 *
 * @dev Implementation of the ERC173 standard
 */
contract ERC173 is IERC173 {
    /**
     * @dev ERC173 definitions
     */

    address private _owner;

    /**
     * @dev Prevents function called by non-owner from executing
     */

    modifier ownership() {
        require(owner() == msg.sender, "ERC173: caller is not the owner");

        _;
    }

    /**
     * @dev Sets the deployer as the initial owner
     */

    constructor(address owner_) {
        _transferOwnership(owner_);
    }

    /**
     * @dev ERC173 functions
     */

    function owner() public view virtual override returns (address) {

        return _owner;
    }

    function transferOwnership(address _newOwner) public virtual override ownership {
        _transferOwnership(_newOwner);
    }

    /**
     * @dev ERC173 internal function
     */
    
    function _transferOwnership(address _newOwner) internal virtual {
        address previousOwner = _owner;
        _owner = _newOwner;
    
        emit OwnershipTransferred(previousOwner, _newOwner);
    }
}

File 4 of 8 : ERC1155.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC1155.sol";
import "./extensions/IERC1155Metadata.sol";
import "./receiver/IERC1155Receiver.sol";

/**
 * @title ERC1155 Contract
 *
 * @dev Implementation of the ERC1155 standard
 */
contract ERC1155 is IERC1155, IERC1155Metadata {
    /**
     * @dev ERC1155 definitions
     */
    mapping(uint256 => mapping(address => uint256)) private _ownerBalance;
    mapping(address => mapping(address => bool)) private _operatorApproval;
    mapping(uint256 => string) private _tokenCid;

    mapping(uint256 => uint256) private _totalSupply;
    uint256 private _currentId = 0;

    string private _name;
    string private _symbol;

    string private cream = "bafybeib2nmrybv2kdntx643gy7npsillmv73jbubjc22vqr5l66slumk64/cream.json";
    string private solidGold = "bafybeihauguddtujyitk6z4hkrtufw3m3g3xewoq3ubh4udxy4nz4giiyu/solid-gold.json";
    string private diamond = "bafybeigweeemhmvj73fcxmxgx6xniuuban4c426m57vbjsndwylsi2yvwu/diamond.json";
    string private trippy = "bafybeiczjwxmqef43bxjhwamyb2icqa2gtau6f63w6wbhjnwqqndebkslq/trippy.json";
    string private deathBot = "bafybeieqmpzipdaih2otzqoq7tcvkecsnaqokghbujmi4ctrkjp3cdoey4/death-bot.json";
    string private dmt = "bafybeiejp5w6ue377vlj33gqttw4qcjxsduycxj3xwnxqztjxkgxc55r2m/dmt.json";
    string private zombie = "bafybeifyzdqglp23mg32cxb7ygzu7v7abv3g2aafmacs7cdt4uacmp4jke/zombie.json";
    string private cheetah = "bafybeifesyui6z7em5acpfy7jddnhkiuk24d6ocsraxfuwlbr5dchirwii/cheetah.json";

    /**
     * @dev Contract name and symbol
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual returns (string memory) {

        return _name;
    }

    function symbol() public view virtual returns (string memory) {

        return _symbol;
    }

    /**
     * @dev Minting functions
     */
    function _mint(address _to) internal virtual {
        _mintTrippy(_to);
        _mintDeathBot(_to);
        _mintDmt(_to);
        _mintZombie(_to);
        _mintCheetah(_to);
        _mintDiamond(_to);
        _mintSolidGold(_to);
        _mintCream(_to);
    }

    function _mintTrippy(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 1;
        _ownerBalance[_currentId][_to] += 1;
        _tokenCid[_currentId] = trippy;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintDeathBot(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 1;
        _ownerBalance[_currentId][_to] += 1;
        _tokenCid[_currentId] = deathBot;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintDmt(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 1;
        _ownerBalance[_currentId][_to] += 1;
        _tokenCid[_currentId] = dmt;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintZombie(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 1;
        _ownerBalance[_currentId][_to] += 1;
        _tokenCid[_currentId] = zombie;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintCheetah(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 1;
        _ownerBalance[_currentId][_to] += 1;
        _tokenCid[_currentId] = cheetah;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintDiamond(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 15;
        _ownerBalance[_currentId][_to] += 15;
        _tokenCid[_currentId] = diamond;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintSolidGold(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 35;
        _ownerBalance[_currentId][_to] += 35;
        _tokenCid[_currentId] = solidGold;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    function _mintCream(address _to) internal virtual {
        _currentId += 1;
        _totalSupply[_currentId] += 150;
        _ownerBalance[_currentId][_to] += 150;
        _tokenCid[_currentId] = cream;

        emit TransferSingle(msg.sender, address(0), _to, _currentId, _ownerBalance[_currentId][_to]);
    }

    /**
     * @dev ERC1155Metadata functions
     */
    function _currentTokenId() internal virtual returns (uint256) {

        return _currentId;
    }

    function _baseUri() internal view virtual returns (string memory) {

        return "ipfs://";
    }

    function uri(uint256 _id) public view virtual override returns (string memory) {
        string memory tokenCid = _tokenCid[_id];

        return string(abi.encodePacked(_baseUri(), tokenCid));
    }

    function tokenTotalSupply(uint256 _id) public view virtual returns (uint256) {

        return _totalSupply[_id];
    }

    function totalSupply() public view virtual returns (uint256) {

        return 205;
    }

    /**
     * @dev ERC1155 functions
     */
    function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes memory _data) public virtual override {
        require(_from == msg.sender || isApprovedForAll(_from, msg.sender), "ERC1155: unauthorized transfer");
        require(_ownerBalance[_id][_from] >= _value, "ERC1155: value exceeds balance");
        require(_to != address(0), "ERC1155: cannot transfer to the zero address");

        _ownerBalance[_id][_from] -= _value;
        _ownerBalance[_id][_to] += _value;

        emit TransferSingle(msg.sender, _from, _to, _id, _value);

        _safeTransferCheck(msg.sender, _from, _to, _id, _value, _data);
    }

    function safeBatchTransferFrom(address _from, address _to, uint256[] memory _ids, uint256[] memory _values, bytes memory _data) public virtual override {
        require(_from == msg.sender || isApprovedForAll(_from, msg.sender), "ERC1155: unauthorized transfer");
        require(_ids.length == _values.length, "ERC1155: ids and amounts length mismatch");
        require(_to != address(0), "ERC1155: cannot transfer to the zero address");

        for (uint256 i = 0; i < _ids.length; ++i) {
            uint256 id = _ids[i];
            uint256 value = _values[i];
            require(_ownerBalance[id][_from] >= value, "ERC1155: insufficient balance for transfer");

            _ownerBalance[id][_from] -= value;
            _ownerBalance[id][_to] += value;
        }

        emit TransferBatch(msg.sender, _from, _to, _ids, _values);

        _safeBatchTransferCheck(msg.sender, _from, _to, _ids, _values, _data);
    }
    
    function balanceOf(address _owner, uint256 _id) public view virtual override returns (uint256) {
        require(_owner != address(0), "ERC1155: cannot get balance for the zero address");

        return _ownerBalance[_id][_owner];
    }

    function balanceOfBatch(address[] memory _owners, uint256[] memory _ids) public view virtual override returns (uint256[] memory) {
        require(_owners.length == _ids.length, "ERC1155: accounts and ids length mismatch");

        uint256[] memory batchBalances = new uint256[](_owners.length);

        for (uint256 i = 0; i < _owners.length; ++i) {
            batchBalances[i] = balanceOf(_owners[i], _ids[i]);
        }

        return batchBalances;
    }

    function setApprovalForAll(address _operator, bool _approved) public virtual override {
        require(msg.sender != _operator, "ERC1155: cannot set approval for self");

        _operatorApproval[msg.sender][_operator] = _approved;

        emit ApprovalForAll(msg.sender, _operator, _approved);
    }

    function isApprovedForAll(address _owner, address _operator) public view virtual override returns (bool) {

        return _operatorApproval[_owner][_operator];
    }

    /**
     * @dev ERC1155Receiver functions
     */
    function _safeTransferCheck(address _operator, address _from, address _to, uint256 _id, uint256 _value, bytes memory _data) private {
        uint256 size;
        assembly {
            size := extcodesize(_to)
        }
        if (size > 0) {
            try IERC1155Receiver(_to).onERC1155Received(_operator, _from, _id, _value, _data) returns (bytes4 response) {
                if (response != IERC1155Receiver.onERC1155Received.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _safeBatchTransferCheck(address _operator, address _from, address _to, uint256[] memory _ids, uint256[] memory _values, bytes memory _data) private {
        uint256 size;
        assembly {
            size := extcodesize(_to)
        }
        if (size > 0) {
            try IERC1155Receiver(_to).onERC1155BatchReceived(_operator, _from, _ids, _values, _data) returns (bytes4 response) {
                if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }
}

File 5 of 8 : IERC173.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title ERC173 Interface
 *
 * @dev Interface of the ERC173 standard according to the EIP
 */
interface IERC173 {
    /**
     * @dev ERC173 standard events
     */

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

    /**
     * @dev ERC173 standard functions
     */

    function owner() view external returns (address);

    function transferOwnership(address _newOwner) external;
}

File 6 of 8 : IERC1155.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC1155 standard as defined in the EIP
 */
interface IERC1155 {
    /**
     * @dev ERC1155 standard events
     */
    event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);

    event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);

    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

    event URI(string _value, uint256 indexed _id);

    /**
     * @dev ERC1155 standard functions
     */
    function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external;

    function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external;

    function balanceOf(address _owner, uint256 _id) external view returns (uint256);

    function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);

    function setApprovalForAll(address _operator, bool _approved) external;

    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

File 7 of 8 : IERC1155Metadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface for ERC1155Metadata as defined in the EIP
 */
interface IERC1155Metadata {
    /**
     * @dev ERC1155 token metadata functions
     */
    function uri(uint256 _id) external view returns (string memory);
}

File 8 of 8 : IERC1155Receiver.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface for ERC1155TokenReceiver as defined in the EIP
 */
interface IERC1155Receiver {
    /**
     * @dev ERC1155Receiver standard functions
     */
    function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes calldata _data) external returns(bytes4);

    function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external returns(bytes4);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_value","type":"string"},{"indexed":true,"internalType":"uint256","name":"_id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"tokenTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

608060405260006004556040518060800160405280604681526020016200407560469139600790805190602001906200003a9291906200125b565b506040518060800160405280604b8152602001620040bb604b9139600890805190602001906200006c9291906200125b565b5060405180608001604052806048815260200162003fa260489139600990805190602001906200009e9291906200125b565b5060405180608001604052806047815260200162003f1160479139600a9080519060200190620000d09291906200125b565b506040518060800160405280604a815260200162003f58604a9139600b9080519060200190620001029291906200125b565b506040518060800160405280604481526020016200403160449139600c9080519060200190620001349291906200125b565b5060405180608001604052806047815260200162003fea60479139600d9080519060200190620001669291906200125b565b5060405180608001604052806048815260200162003ec960489139600e9080519060200190620001989291906200125b565b5073590afc242d692d6b4b9bd8d69783bfb099e8bcf5601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001fb57600080fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601481526020017f4a756e676c6520627920455343415045504c414e0000000000000000000000008152506040518060400160405280600481526020017f4a4e474c000000000000000000000000000000000000000000000000000000008152508160059080519060200190620002a39291906200125b565b508060069080519060200190620002bc9291906200125b565b505050620002d0816200030a60201b60201c565b5062000304601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620003d060201b60201c565b620014dc565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003e1816200045b60201b60201c565b620003f2816200061b60201b60201c565b6200040381620007db60201b60201c565b62000414816200099b60201b60201c565b620004258162000b5b60201b60201c565b620004368162000d1b60201b60201c565b620004478162000edb60201b60201c565b62000458816200109b60201b60201c565b50565b600160046000828254620004709190620013e1565b92505081905550600160036000600454815260200190815260200160002060008282546200049f9190620013e1565b925050819055506001600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200050a9190620013e1565b92505081905550600a600260006004548152602001908152602001600020908054620005369062001448565b62000543929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000610929190620013b4565b60405180910390a450565b600160046000828254620006309190620013e1565b92505081905550600160036000600454815260200190815260200160002060008282546200065f9190620013e1565b925050819055506001600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620006ca9190620013e1565b92505081905550600b600260006004548152602001908152602001600020908054620006f69062001448565b62000703929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620007d0929190620013b4565b60405180910390a450565b600160046000828254620007f09190620013e1565b92505081905550600160036000600454815260200190815260200160002060008282546200081f9190620013e1565b925050819055506001600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200088a9190620013e1565b92505081905550600c600260006004548152602001908152602001600020908054620008b69062001448565b620008c3929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000990929190620013b4565b60405180910390a450565b600160046000828254620009b09190620013e1565b9250508190555060016003600060045481526020019081526020016000206000828254620009df9190620013e1565b925050819055506001600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a4a9190620013e1565b92505081905550600d60026000600454815260200190815260200160002090805462000a769062001448565b62000a83929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000b50929190620013b4565b60405180910390a450565b60016004600082825462000b709190620013e1565b925050819055506001600360006004548152602001908152602001600020600082825462000b9f9190620013e1565b925050819055506001600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000c0a9190620013e1565b92505081905550600e60026000600454815260200190815260200160002090805462000c369062001448565b62000c43929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000d10929190620013b4565b60405180910390a450565b60016004600082825462000d309190620013e1565b92505081905550600f600360006004548152602001908152602001600020600082825462000d5f9190620013e1565b92505081905550600f600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000dca9190620013e1565b92505081905550600960026000600454815260200190815260200160002090805462000df69062001448565b62000e03929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000ed0929190620013b4565b60405180910390a450565b60016004600082825462000ef09190620013e1565b925050819055506023600360006004548152602001908152602001600020600082825462000f1f9190620013e1565b925050819055506023600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000f8a9190620013e1565b92505081905550600860026000600454815260200190815260200160002090805462000fb69062001448565b62000fc3929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162001090929190620013b4565b60405180910390a450565b600160046000828254620010b09190620013e1565b9250508190555060966003600060045481526020019081526020016000206000828254620010df9190620013e1565b925050819055506096600080600454815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200114a9190620013e1565b925050819055506007600260006004548152602001908152602001600020908054620011769062001448565b62001183929190620012ec565b508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62600454600080600454815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162001250929190620013b4565b60405180910390a450565b828054620012699062001448565b90600052602060002090601f0160209004810192826200128d5760008555620012d9565b82601f10620012a857805160ff1916838001178555620012d9565b82800160010185558215620012d9579182015b82811115620012d8578251825591602001919060010190620012bb565b5b509050620012e8919062001384565b5090565b828054620012fa9062001448565b90600052602060002090601f0160209004810192826200131e576000855562001371565b82601f1062001331578054855562001371565b828001600101855582156200137157600052602060002091601f016020900482015b828111156200137057825482559160010191906001019062001353565b5b50905062001380919062001384565b5090565b5b808211156200139f57600081600090555060010162001385565b5090565b620013ae816200143e565b82525050565b6000604082019050620013cb6000830185620013a3565b620013da6020830184620013a3565b9392505050565b6000620013ee826200143e565b9150620013fb836200143e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200143357620014326200147e565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200146157607f821691505b60208210811415620014785762001477620014ad565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6129dd80620014ec6000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80636468e3171161008c578063a22cb46511610066578063a22cb46514610272578063e985e9c51461028e578063f242432a146102be578063f2fde38b146102da576100e9565b80636468e317146102065780638da5cb5b1461023657806395d89b4114610254576100e9565b80630e89341c116100c85780630e89341c1461016c57806318160ddd1461019c5780632eb2c2d6146101ba5780634e1273f4146101d6576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806306fdde031461014e575b600080fd5b61010860048036038101906101039190611b57565b6102f6565b60405161011591906124b6565b60405180910390f35b61013860048036038101906101339190611bff565b6103bf565b6040516101459190612319565b60405180910390f35b6101566105c9565b6040516101639190612334565b60405180910390f35b61018660048036038101906101819190611c51565b61065b565b6040516101939190612334565b60405180910390f35b6101a461072e565b6040516101b191906124b6565b60405180910390f35b6101d460048036038101906101cf91906119cd565b610737565b005b6101f060048036038101906101eb9190611b93565b610b05565b6040516101fd91906122c0565b60405180910390f35b610220600480360381019061021b9190611c51565b610cb6565b60405161022d91906124b6565b60405180910390f35b61023e610cd3565b60405161024b91906121e3565b60405180910390f35b61025c610cfd565b6040516102699190612334565b60405180910390f35b61028c60048036038101906102879190611b1b565b610d8f565b005b6102a860048036038101906102a39190611991565b610efb565b6040516102b59190612319565b60405180910390f35b6102d860048036038101906102d39190611a8c565b610f8f565b005b6102f460048036038101906102ef9190611968565b61126f565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035e90612456565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048a57507f7f5828d0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104f257507fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061055a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105c257507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600580546105d89061276f565b80601f01602080910402602001604051908101604052809291908181526020018280546106049061276f565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b6060600060026000848152602001908152602001600020805461067d9061276f565b80601f01602080910402602001604051908101604052809291908181526020018280546106a99061276f565b80156106f65780601f106106cb576101008083540402835291602001916106f6565b820191906000526020600020905b8154815290600101906020018083116106d957829003601f168201915b505050505090506107056112f0565b816040516020016107179291906121bf565b604051602081830303815290604052915050919050565b600060cd905090565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061077757506107768533610efb565b5b6107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ad906123d6565b60405180910390fd5b81518351146107fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f190612496565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190612396565b60405180910390fd5b60005b8351811015610a715760008482815181106108b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008483815181106108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508060008084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612436565b60405180910390fd5b8060008084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109f19190612685565b925050819055508060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a57919061262f565b92505081905550505080610a6a906127a1565b905061086d565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610ae89291906122e2565b60405180910390a4610afe33868686868661132d565b5050505050565b60608151835114610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4290612476565b60405180910390fd5b6000835167ffffffffffffffff811115610b8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610bbc5781602001602082028036833780820191505090505b50905060005b8451811015610cab57610c55858281518110610c07577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151858381518110610c48577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516102f6565b828281518110610c8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080610ca4906127a1565b9050610bc2565b508091505092915050565b600060036000838152602001908152602001600020549050919050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610d0c9061276f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d389061276f565b8015610d855780601f10610d5a57610100808354040283529160200191610d85565b820191906000526020600020905b815481529060010190602001808311610d6857829003601f168201915b5050505050905090565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df5906123b6565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610eef9190612319565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610fcf5750610fce8533610efb565b5b61100e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611005906123d6565b60405180910390fd5b8160008085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612416565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612396565b60405180910390fd5b8160008085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116f9190612685565b925050819055508160008085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111d5919061262f565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6286866040516112529291906124d1565b60405180910390a46112683386868686866114e9565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff1661128e610cd3565b73ffffffffffffffffffffffffffffffffffffffff16146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112db906123f6565b60405180910390fd5b6112ed816116a5565b50565b60606040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905090565b6000843b905060008111156114e0578473ffffffffffffffffffffffffffffffffffffffff1663bc197c8188888787876040518663ffffffff1660e01b815260040161137d9594939291906121fe565b602060405180830381600087803b15801561139757600080fd5b505af19250505080156113c857506040513d601f19601f820116820180604052508101906113c59190611c28565b60015b611457576113d4612895565b806113df575061141c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139190612334565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90612356565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590612376565b60405180910390fd5b505b50505050505050565b6000843b9050600081111561169c578473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6188888787876040518663ffffffff1660e01b8152600401611539959493929190612266565b602060405180830381600087803b15801561155357600080fd5b505af192505050801561158457506040513d601f19601f820116820180604052508101906115819190611c28565b60015b61161357611590612895565b8061159b57506115d8565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf9190612334565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90612356565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190612376565b60405180910390fd5b505b50505050505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061177e6117798461252b565b6124fa565b9050808382526020820190508285602086028201111561179d57600080fd5b60005b858110156117cd57816117b38882611881565b8452602084019350602083019250506001810190506117a0565b5050509392505050565b60006117ea6117e584612557565b6124fa565b9050808382526020820190508285602086028201111561180957600080fd5b60005b85811015611839578161181f8882611953565b84526020840193506020830192505060018101905061180c565b5050509392505050565b600061185661185184612583565b6124fa565b90508281526020810184848401111561186e57600080fd5b61187984828561272d565b509392505050565b6000813590506118908161294b565b92915050565b600082601f8301126118a757600080fd5b81356118b784826020860161176b565b91505092915050565b600082601f8301126118d157600080fd5b81356118e18482602086016117d7565b91505092915050565b6000813590506118f981612962565b92915050565b60008135905061190e81612979565b92915050565b60008151905061192381612979565b92915050565b600082601f83011261193a57600080fd5b813561194a848260208601611843565b91505092915050565b60008135905061196281612990565b92915050565b60006020828403121561197a57600080fd5b600061198884828501611881565b91505092915050565b600080604083850312156119a457600080fd5b60006119b285828601611881565b92505060206119c385828601611881565b9150509250929050565b600080600080600060a086880312156119e557600080fd5b60006119f388828901611881565b9550506020611a0488828901611881565b945050604086013567ffffffffffffffff811115611a2157600080fd5b611a2d888289016118c0565b935050606086013567ffffffffffffffff811115611a4a57600080fd5b611a56888289016118c0565b925050608086013567ffffffffffffffff811115611a7357600080fd5b611a7f88828901611929565b9150509295509295909350565b600080600080600060a08688031215611aa457600080fd5b6000611ab288828901611881565b9550506020611ac388828901611881565b9450506040611ad488828901611953565b9350506060611ae588828901611953565b925050608086013567ffffffffffffffff811115611b0257600080fd5b611b0e88828901611929565b9150509295509295909350565b60008060408385031215611b2e57600080fd5b6000611b3c85828601611881565b9250506020611b4d858286016118ea565b9150509250929050565b60008060408385031215611b6a57600080fd5b6000611b7885828601611881565b9250506020611b8985828601611953565b9150509250929050565b60008060408385031215611ba657600080fd5b600083013567ffffffffffffffff811115611bc057600080fd5b611bcc85828601611896565b925050602083013567ffffffffffffffff811115611be957600080fd5b611bf5858286016118c0565b9150509250929050565b600060208284031215611c1157600080fd5b6000611c1f848285016118ff565b91505092915050565b600060208284031215611c3a57600080fd5b6000611c4884828501611914565b91505092915050565b600060208284031215611c6357600080fd5b6000611c7184828501611953565b91505092915050565b6000611c8683836121a1565b60208301905092915050565b611c9b816126b9565b82525050565b6000611cac826125c3565b611cb681856125f1565b9350611cc1836125b3565b8060005b83811015611cf2578151611cd98882611c7a565b9750611ce4836125e4565b925050600181019050611cc5565b5085935050505092915050565b611d08816126cb565b82525050565b6000611d19826125ce565b611d238185612602565b9350611d3381856020860161273c565b611d3c81612877565b840191505092915050565b6000611d52826125d9565b611d5c8185612613565b9350611d6c81856020860161273c565b611d7581612877565b840191505092915050565b6000611d8b826125d9565b611d958185612624565b9350611da581856020860161273c565b80840191505092915050565b6000611dbe603483612613565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000611e24602883612613565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e8a602c83612613565b91507f455243313135353a2063616e6e6f74207472616e7366657220746f207468652060008301527f7a65726f206164647265737300000000000000000000000000000000000000006020830152604082019050919050565b6000611ef0602583612613565b91507f455243313135353a2063616e6e6f742073657420617070726f76616c20666f7260008301527f2073656c660000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f56601e83612613565b91507f455243313135353a20756e617574686f72697a6564207472616e7366657200006000830152602082019050919050565b6000611f96601f83612613565b91507f4552433137333a2063616c6c6572206973206e6f7420746865206f776e6572006000830152602082019050919050565b6000611fd6601e83612613565b91507f455243313135353a2076616c756520657863656564732062616c616e636500006000830152602082019050919050565b6000612016602a83612613565b91507f455243313135353a20696e73756666696369656e742062616c616e636520666f60008301527f72207472616e73666572000000000000000000000000000000000000000000006020830152604082019050919050565b600061207c603083612613565b91507f455243313135353a2063616e6e6f74206765742062616c616e636520666f722060008301527f746865207a65726f2061646472657373000000000000000000000000000000006020830152604082019050919050565b60006120e2602983612613565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b6000612148602883612613565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b6121aa81612723565b82525050565b6121b981612723565b82525050565b60006121cb8285611d80565b91506121d78284611d80565b91508190509392505050565b60006020820190506121f86000830184611c92565b92915050565b600060a0820190506122136000830188611c92565b6122206020830187611c92565b81810360408301526122328186611ca1565b905081810360608301526122468185611ca1565b9050818103608083015261225a8184611d0e565b90509695505050505050565b600060a08201905061227b6000830188611c92565b6122886020830187611c92565b61229560408301866121b0565b6122a260608301856121b0565b81810360808301526122b48184611d0e565b90509695505050505050565b600060208201905081810360008301526122da8184611ca1565b905092915050565b600060408201905081810360008301526122fc8185611ca1565b905081810360208301526123108184611ca1565b90509392505050565b600060208201905061232e6000830184611cff565b92915050565b6000602082019050818103600083015261234e8184611d47565b905092915050565b6000602082019050818103600083015261236f81611db1565b9050919050565b6000602082019050818103600083015261238f81611e17565b9050919050565b600060208201905081810360008301526123af81611e7d565b9050919050565b600060208201905081810360008301526123cf81611ee3565b9050919050565b600060208201905081810360008301526123ef81611f49565b9050919050565b6000602082019050818103600083015261240f81611f89565b9050919050565b6000602082019050818103600083015261242f81611fc9565b9050919050565b6000602082019050818103600083015261244f81612009565b9050919050565b6000602082019050818103600083015261246f8161206f565b9050919050565b6000602082019050818103600083015261248f816120d5565b9050919050565b600060208201905081810360008301526124af8161213b565b9050919050565b60006020820190506124cb60008301846121b0565b92915050565b60006040820190506124e660008301856121b0565b6124f360208301846121b0565b9392505050565b6000604051905081810181811067ffffffffffffffff8211171561252157612520612848565b5b8060405250919050565b600067ffffffffffffffff82111561254657612545612848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561257257612571612848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561259e5761259d612848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263a82612723565b915061264583612723565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267a576126796127ea565b5b828201905092915050565b600061269082612723565b915061269b83612723565b9250828210156126ae576126ad6127ea565b5b828203905092915050565b60006126c482612703565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561275a57808201518184015260208101905061273f565b83811115612769576000848401525b50505050565b6000600282049050600182168061278757607f821691505b6020821081141561279b5761279a612819565b5b50919050565b60006127ac82612723565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127df576127de6127ea565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156128a557612948565b60046000803e6128b6600051612888565b6308c379a081146128c75750612948565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156128f357505050612948565b808201805167ffffffffffffffff811115612912575050505050612948565b8060208301013d850181111561292d57505050505050612948565b61293682612877565b60208401016040528296505050505050505b90565b612954816126b9565b811461295f57600080fd5b50565b61296b816126cb565b811461297657600080fd5b50565b612982816126d7565b811461298d57600080fd5b50565b61299981612723565b81146129a457600080fd5b5056fea2646970667358221220b70aae2b6f1da8278e96619b71a6534ca9e91b0f730a7c340a66aa477fce9dc064736f6c6343000800003362616679626569666573797569367a37656d356163706679376a64646e686b69756b323464366f63737261786675776c62723564636869727769692f636865657461682e6a736f6e62616679626569637a6a77786d716566343362786a6877616d7962326963716132677461753666363377367762686a6e7771716e6465626b736c712f7472697070792e6a736f6e6261667962656965716d707a697064616968326f747a716f71377463766b6563736e61716f6b676862756a6d69346374726b6a703363646f6579342f64656174682d626f742e6a736f6e6261667962656967776565656d686d766a37336663786d78677836786e69757562616e34633432366d353776626a736e6477796c736932797677752f6469616d6f6e642e6a736f6e6261667962656966797a6471676c7032336d6733326378623779677a753776376162763367326161666d61637337636474347561636d70346a6b652f7a6f6d6269652e6a736f6e62616679626569656a703577367565333737766c6a333367717474773471636a787364757963786a3378776e78717a746a786b677863353572326d2f646d742e6a736f6e6261667962656962326e6d72796276326b646e74783634336779376e7073696c6c6d7637336a6275626a633232767172356c3636736c756d6b36342f637265616d2e6a736f6e626166796265696861756775646474756a7969746b367a34686b7274756677336d3367337865776f71337562683475647879346e7a3467696979752f736f6c69642d676f6c642e6a736f6e

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100e95760003560e01c80636468e3171161008c578063a22cb46511610066578063a22cb46514610272578063e985e9c51461028e578063f242432a146102be578063f2fde38b146102da576100e9565b80636468e317146102065780638da5cb5b1461023657806395d89b4114610254576100e9565b80630e89341c116100c85780630e89341c1461016c57806318160ddd1461019c5780632eb2c2d6146101ba5780634e1273f4146101d6576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806306fdde031461014e575b600080fd5b61010860048036038101906101039190611b57565b6102f6565b60405161011591906124b6565b60405180910390f35b61013860048036038101906101339190611bff565b6103bf565b6040516101459190612319565b60405180910390f35b6101566105c9565b6040516101639190612334565b60405180910390f35b61018660048036038101906101819190611c51565b61065b565b6040516101939190612334565b60405180910390f35b6101a461072e565b6040516101b191906124b6565b60405180910390f35b6101d460048036038101906101cf91906119cd565b610737565b005b6101f060048036038101906101eb9190611b93565b610b05565b6040516101fd91906122c0565b60405180910390f35b610220600480360381019061021b9190611c51565b610cb6565b60405161022d91906124b6565b60405180910390f35b61023e610cd3565b60405161024b91906121e3565b60405180910390f35b61025c610cfd565b6040516102699190612334565b60405180910390f35b61028c60048036038101906102879190611b1b565b610d8f565b005b6102a860048036038101906102a39190611991565b610efb565b6040516102b59190612319565b60405180910390f35b6102d860048036038101906102d39190611a8c565b610f8f565b005b6102f460048036038101906102ef9190611968565b61126f565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035e90612456565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048a57507f7f5828d0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104f257507fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061055a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105c257507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600580546105d89061276f565b80601f01602080910402602001604051908101604052809291908181526020018280546106049061276f565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b6060600060026000848152602001908152602001600020805461067d9061276f565b80601f01602080910402602001604051908101604052809291908181526020018280546106a99061276f565b80156106f65780601f106106cb576101008083540402835291602001916106f6565b820191906000526020600020905b8154815290600101906020018083116106d957829003601f168201915b505050505090506107056112f0565b816040516020016107179291906121bf565b604051602081830303815290604052915050919050565b600060cd905090565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061077757506107768533610efb565b5b6107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ad906123d6565b60405180910390fd5b81518351146107fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f190612496565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190612396565b60405180910390fd5b60005b8351811015610a715760008482815181106108b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008483815181106108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508060008084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098990612436565b60405180910390fd5b8060008084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109f19190612685565b925050819055508060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a57919061262f565b92505081905550505080610a6a906127a1565b905061086d565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610ae89291906122e2565b60405180910390a4610afe33868686868661132d565b5050505050565b60608151835114610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4290612476565b60405180910390fd5b6000835167ffffffffffffffff811115610b8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610bbc5781602001602082028036833780820191505090505b50905060005b8451811015610cab57610c55858281518110610c07577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151858381518110610c48577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516102f6565b828281518110610c8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080610ca4906127a1565b9050610bc2565b508091505092915050565b600060036000838152602001908152602001600020549050919050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610d0c9061276f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d389061276f565b8015610d855780601f10610d5a57610100808354040283529160200191610d85565b820191906000526020600020905b815481529060010190602001808311610d6857829003601f168201915b5050505050905090565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df5906123b6565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610eef9190612319565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610fcf5750610fce8533610efb565b5b61100e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611005906123d6565b60405180910390fd5b8160008085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612416565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790612396565b60405180910390fd5b8160008085815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116f9190612685565b925050819055508160008085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111d5919061262f565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6286866040516112529291906124d1565b60405180910390a46112683386868686866114e9565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff1661128e610cd3565b73ffffffffffffffffffffffffffffffffffffffff16146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112db906123f6565b60405180910390fd5b6112ed816116a5565b50565b60606040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905090565b6000843b905060008111156114e0578473ffffffffffffffffffffffffffffffffffffffff1663bc197c8188888787876040518663ffffffff1660e01b815260040161137d9594939291906121fe565b602060405180830381600087803b15801561139757600080fd5b505af19250505080156113c857506040513d601f19601f820116820180604052508101906113c59190611c28565b60015b611457576113d4612895565b806113df575061141c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139190612334565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90612356565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590612376565b60405180910390fd5b505b50505050505050565b6000843b9050600081111561169c578473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6188888787876040518663ffffffff1660e01b8152600401611539959493929190612266565b602060405180830381600087803b15801561155357600080fd5b505af192505050801561158457506040513d601f19601f820116820180604052508101906115819190611c28565b60015b61161357611590612895565b8061159b57506115d8565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf9190612334565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90612356565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190612376565b60405180910390fd5b505b50505050505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061177e6117798461252b565b6124fa565b9050808382526020820190508285602086028201111561179d57600080fd5b60005b858110156117cd57816117b38882611881565b8452602084019350602083019250506001810190506117a0565b5050509392505050565b60006117ea6117e584612557565b6124fa565b9050808382526020820190508285602086028201111561180957600080fd5b60005b85811015611839578161181f8882611953565b84526020840193506020830192505060018101905061180c565b5050509392505050565b600061185661185184612583565b6124fa565b90508281526020810184848401111561186e57600080fd5b61187984828561272d565b509392505050565b6000813590506118908161294b565b92915050565b600082601f8301126118a757600080fd5b81356118b784826020860161176b565b91505092915050565b600082601f8301126118d157600080fd5b81356118e18482602086016117d7565b91505092915050565b6000813590506118f981612962565b92915050565b60008135905061190e81612979565b92915050565b60008151905061192381612979565b92915050565b600082601f83011261193a57600080fd5b813561194a848260208601611843565b91505092915050565b60008135905061196281612990565b92915050565b60006020828403121561197a57600080fd5b600061198884828501611881565b91505092915050565b600080604083850312156119a457600080fd5b60006119b285828601611881565b92505060206119c385828601611881565b9150509250929050565b600080600080600060a086880312156119e557600080fd5b60006119f388828901611881565b9550506020611a0488828901611881565b945050604086013567ffffffffffffffff811115611a2157600080fd5b611a2d888289016118c0565b935050606086013567ffffffffffffffff811115611a4a57600080fd5b611a56888289016118c0565b925050608086013567ffffffffffffffff811115611a7357600080fd5b611a7f88828901611929565b9150509295509295909350565b600080600080600060a08688031215611aa457600080fd5b6000611ab288828901611881565b9550506020611ac388828901611881565b9450506040611ad488828901611953565b9350506060611ae588828901611953565b925050608086013567ffffffffffffffff811115611b0257600080fd5b611b0e88828901611929565b9150509295509295909350565b60008060408385031215611b2e57600080fd5b6000611b3c85828601611881565b9250506020611b4d858286016118ea565b9150509250929050565b60008060408385031215611b6a57600080fd5b6000611b7885828601611881565b9250506020611b8985828601611953565b9150509250929050565b60008060408385031215611ba657600080fd5b600083013567ffffffffffffffff811115611bc057600080fd5b611bcc85828601611896565b925050602083013567ffffffffffffffff811115611be957600080fd5b611bf5858286016118c0565b9150509250929050565b600060208284031215611c1157600080fd5b6000611c1f848285016118ff565b91505092915050565b600060208284031215611c3a57600080fd5b6000611c4884828501611914565b91505092915050565b600060208284031215611c6357600080fd5b6000611c7184828501611953565b91505092915050565b6000611c8683836121a1565b60208301905092915050565b611c9b816126b9565b82525050565b6000611cac826125c3565b611cb681856125f1565b9350611cc1836125b3565b8060005b83811015611cf2578151611cd98882611c7a565b9750611ce4836125e4565b925050600181019050611cc5565b5085935050505092915050565b611d08816126cb565b82525050565b6000611d19826125ce565b611d238185612602565b9350611d3381856020860161273c565b611d3c81612877565b840191505092915050565b6000611d52826125d9565b611d5c8185612613565b9350611d6c81856020860161273c565b611d7581612877565b840191505092915050565b6000611d8b826125d9565b611d958185612624565b9350611da581856020860161273c565b80840191505092915050565b6000611dbe603483612613565b91507f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008301527f526563656976657220696d706c656d656e7465720000000000000000000000006020830152604082019050919050565b6000611e24602883612613565b91507f455243313135353a204552433131353552656365697665722072656a6563746560008301527f6420746f6b656e730000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e8a602c83612613565b91507f455243313135353a2063616e6e6f74207472616e7366657220746f207468652060008301527f7a65726f206164647265737300000000000000000000000000000000000000006020830152604082019050919050565b6000611ef0602583612613565b91507f455243313135353a2063616e6e6f742073657420617070726f76616c20666f7260008301527f2073656c660000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f56601e83612613565b91507f455243313135353a20756e617574686f72697a6564207472616e7366657200006000830152602082019050919050565b6000611f96601f83612613565b91507f4552433137333a2063616c6c6572206973206e6f7420746865206f776e6572006000830152602082019050919050565b6000611fd6601e83612613565b91507f455243313135353a2076616c756520657863656564732062616c616e636500006000830152602082019050919050565b6000612016602a83612613565b91507f455243313135353a20696e73756666696369656e742062616c616e636520666f60008301527f72207472616e73666572000000000000000000000000000000000000000000006020830152604082019050919050565b600061207c603083612613565b91507f455243313135353a2063616e6e6f74206765742062616c616e636520666f722060008301527f746865207a65726f2061646472657373000000000000000000000000000000006020830152604082019050919050565b60006120e2602983612613565b91507f455243313135353a206163636f756e747320616e6420696473206c656e67746860008301527f206d69736d6174636800000000000000000000000000000000000000000000006020830152604082019050919050565b6000612148602883612613565b91507f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008301527f6d69736d617463680000000000000000000000000000000000000000000000006020830152604082019050919050565b6121aa81612723565b82525050565b6121b981612723565b82525050565b60006121cb8285611d80565b91506121d78284611d80565b91508190509392505050565b60006020820190506121f86000830184611c92565b92915050565b600060a0820190506122136000830188611c92565b6122206020830187611c92565b81810360408301526122328186611ca1565b905081810360608301526122468185611ca1565b9050818103608083015261225a8184611d0e565b90509695505050505050565b600060a08201905061227b6000830188611c92565b6122886020830187611c92565b61229560408301866121b0565b6122a260608301856121b0565b81810360808301526122b48184611d0e565b90509695505050505050565b600060208201905081810360008301526122da8184611ca1565b905092915050565b600060408201905081810360008301526122fc8185611ca1565b905081810360208301526123108184611ca1565b90509392505050565b600060208201905061232e6000830184611cff565b92915050565b6000602082019050818103600083015261234e8184611d47565b905092915050565b6000602082019050818103600083015261236f81611db1565b9050919050565b6000602082019050818103600083015261238f81611e17565b9050919050565b600060208201905081810360008301526123af81611e7d565b9050919050565b600060208201905081810360008301526123cf81611ee3565b9050919050565b600060208201905081810360008301526123ef81611f49565b9050919050565b6000602082019050818103600083015261240f81611f89565b9050919050565b6000602082019050818103600083015261242f81611fc9565b9050919050565b6000602082019050818103600083015261244f81612009565b9050919050565b6000602082019050818103600083015261246f8161206f565b9050919050565b6000602082019050818103600083015261248f816120d5565b9050919050565b600060208201905081810360008301526124af8161213b565b9050919050565b60006020820190506124cb60008301846121b0565b92915050565b60006040820190506124e660008301856121b0565b6124f360208301846121b0565b9392505050565b6000604051905081810181811067ffffffffffffffff8211171561252157612520612848565b5b8060405250919050565b600067ffffffffffffffff82111561254657612545612848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561257257612571612848565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561259e5761259d612848565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263a82612723565b915061264583612723565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267a576126796127ea565b5b828201905092915050565b600061269082612723565b915061269b83612723565b9250828210156126ae576126ad6127ea565b5b828203905092915050565b60006126c482612703565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561275a57808201518184015260208101905061273f565b83811115612769576000848401525b50505050565b6000600282049050600182168061278757607f821691505b6020821081141561279b5761279a612819565b5b50919050565b60006127ac82612723565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127df576127de6127ea565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d10156128a557612948565b60046000803e6128b6600051612888565b6308c379a081146128c75750612948565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156128f357505050612948565b808201805167ffffffffffffffff811115612912575050505050612948565b8060208301013d850181111561292d57505050505050612948565b61293682612877565b60208401016040528296505050505050505b90565b612954816126b9565b811461295f57600080fd5b50565b61296b816126cb565b811461297657600080fd5b50565b612982816126d7565b811461298d57600080fd5b50565b61299981612723565b81146129a457600080fd5b5056fea2646970667358221220b70aae2b6f1da8278e96619b71a6534ca9e91b0f730a7c340a66aa477fce9dc064736f6c63430008000033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.