Contract 0x7e2cc1afc129e590d68e3455558def152bdcadb0

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baaBuy Many143706072022-06-12 4:17:01176 days 17 hrs ago0xf220404cdecd90e78a280b2f13f0f9cd3336b1e0 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001045312233 ETH
0x2e5ff8ea5832ba2d00992e2796232db1567a8ed788baad51e59dd6c069251849Buy Many141380282022-06-09 9:29:44179 days 12 hrs ago0x449d9bab5855d53864969defeeaf0148f7c104f2 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001702802846 ETH
0x5f1691d636c606ce2d02690f65ceaf3d837afbe631bf4ab44a5a029bae37dac7Buy Many140438212022-06-08 7:00:49180 days 14 hrs ago0x02add1377d59137bfc5eb358c2136ba9aee1e011 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000974127885 ETH
0xceb7bf5ccb4dcb689e44f1444a05cdeb2f1f1f7cf048e54a3c73ce674dc697e4Buy Many140148002022-06-07 22:17:17180 days 23 hrs ago0xd71f294a6a2e9a700fcc7329a12ca42e5265296e IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001277604784 ETH
0xfd9940fe506433bf848766061bdd6f6d4f500a957feb9add402f95880874ee77Buy Many139965142022-06-07 17:13:04181 days 4 hrs ago0x4e3178335a6c09c7b0ea61be3c278e5a898312cd IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000653392576 ETH
0x6af6c2396ece6a01cc042900ba267bada8c0db8f77719dcdf182497d70c16a0eBuy Many139449872022-06-07 6:56:59181 days 14 hrs ago0x0ea0080c854b97f01e843c7e82b62a3aef32d2ef IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000628773094 ETH
0x618d6c81773e2f83c3e721a187ad359323bfaaa414076216695980f00fe1f8aeBuy Many139176902022-06-07 0:15:54181 days 21 hrs ago0xf3d0cb1b3db63a5f98a0ecb05d0d9f263058b7cb IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.00171432198 ETH
0xdc804ec836bf2f482fa2c2b10d75f37910404abe2af314aeb3334b53af63be68Buy Many139176062022-06-07 0:15:41181 days 21 hrs ago0xf3d0cb1b3db63a5f98a0ecb05d0d9f263058b7cb IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001528625887 ETH
0x80acda8c92f9c2c069008913180b6faad681b943993022a46f42cfadede4f10dBuy Many139145902022-06-06 23:07:29181 days 22 hrs ago0x52b5ad31cadb34f29fdebfda994c0033e8eb1938 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.00147442957 ETH
0x545e7125bd712b18a08b5d82ad82b5c121b7795cce5d274016c3c2923c327be0Buy Many139120822022-06-06 22:04:51181 days 23 hrs ago0xcd0eb48851856f64b7c3e0644c08c252876e6b05 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000705958696 ETH
0x128af01eb862f55b5ed08917f8bc585c5b61a868ef19b7dc3491c52a398cb82aBuy Many139069952022-06-06 20:25:32182 days 1 hr ago0x4e3178335a6c09c7b0ea61be3c278e5a898312cd IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.002620175402 ETH
0xaeed007c49384fc49e203a901454d8c60fb0a0a4e99186b858d36c41abff7149Buy Many139008722022-06-06 18:50:39182 days 3 hrs ago0x4e3178335a6c09c7b0ea61be3c278e5a898312cd IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.002482124834 ETH
0x6db87d386ef4a15b2cf0845d7fa47a0113cdaabbfb24d136072135f7a92331e9Buy Many138963942022-06-06 17:37:17182 days 4 hrs ago0x4e3178335a6c09c7b0ea61be3c278e5a898312cd IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001117297292 ETH
0x8a8a62010a7e94311043c360e6c9062bd6f3ec3fe70af8f7aeb6f8896a11df04Buy Many138560352022-06-06 9:24:34182 days 12 hrs ago0x7261a3b25f410a2e90d12a79bf6a2eea89a41993 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000448188667 ETH
0x22fd682f0c12e9de1da8af184c6674c0ed3ffc730f521f662dce2dbd235a347dBuy Many138449372022-06-06 7:05:36182 days 14 hrs ago0x9de7b7ce0d4783209957d0253769bd54934b7a13 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000772743279 ETH
0x111126bfb6fd38c93a241d6cffac3d7b0fcf1dfd9e07a7c70f709766cd7dcfa9Buy Many138272692022-06-06 2:14:39182 days 19 hrs ago0x82674c58211c0134348b016810db718b832d4233 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000851316206 ETH
0xd31552287ee5541a650d4f213cba04b8fd109a92b87686660789df64e39a98d4Buy Many138269962022-06-06 2:11:17182 days 19 hrs ago0x4e8935e7288f8909c5b5cb7330602392a5e1a0c8 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000511947626 ETH
0xc28071a91fb94c2c71caf463d4565b2f25ed8cc46f330d9dc54fd12f50b8d972Buy Many138198212022-06-05 23:41:55182 days 22 hrs ago0x62033c85d70c960c1dd42d64cff674a5639be5a1 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.00133157759 ETH
0x1cc2d04ca0f9393ab24d363398ac84c8593a7096f221f98322363654535b50efBuy Many138192962022-06-05 23:31:29182 days 22 hrs ago0x62033c85d70c960c1dd42d64cff674a5639be5a1 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000798141747 ETH
0x5291899878b4dd4cfec48e9e7331756b39873f2f3846bab3af88155846268b9bBuy Many138192342022-06-05 23:30:04182 days 22 hrs ago0x62033c85d70c960c1dd42d64cff674a5639be5a1 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000697569853 ETH
0x4d97efba421f7d86d843b825d7ab15ccc7ac52427bdb57f1461b9ea634dc4ad7Buy Many137860272022-06-05 13:50:46183 days 8 hrs ago0x9de7b7ce0d4783209957d0253769bd54934b7a13 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000449412787 ETH
0x683004c8e3bd88acb8f7bc676d1232cf117e69af134b118d7e9591872e6aa2e8Buy Many137532652022-06-05 6:13:40183 days 15 hrs ago0x80bfb857770a802f7ef375921ad5e83c76214a2d IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001362181847 ETH
0xdc0e35b4bb4334fde275cb85802019116cada0a516e57e65d9f9e3d22c763150Buy Many137397002022-06-05 1:06:45183 days 20 hrs ago0x0c24f8af31b9b552923ba36b29f484eabb7fa0d2 IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001063364567 ETH
0x0b6a888add0e08ca6aa30d8701ad4d791a4ad050d5d9745ff634067d89f83a3fBuy Many137362352022-06-04 23:08:23183 days 22 hrs ago0x4e3178335a6c09c7b0ea61be3c278e5a898312cd IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.001365991177 ETH
0x84e3e035cb8dc8219aa5592949846d70d46892718bba3e1adb3286849996198bBuy Many137316742022-06-04 21:02:29184 days 51 mins ago0x80bfb857770a802f7ef375921ad5e83c76214a2d IN  0x7e2cc1afc129e590d68e3455558def152bdcadb00 ETH0.000537687255 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0Treasure DAO: Magic Token0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0xf3d00a2559d84de7ac093443bcaada5f4ee4165c0 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
0x7f72df71ac15d7a3ceacb00a9523ab579bcdddf954d955e892986c27d2d96baa143706072022-06-12 4:17:01176 days 17 hrs ago 0x7e2cc1afc129e590d68e3455558def152bdcadb0 0x09986b4e255b3c548041a30a2ee312fe176731c20 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Sweeper

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan on 2022-04-11
*/

// File: @openzeppelin/contracts/utils/introspection/IERC165.sol


// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// File: @openzeppelin/contracts/utils/introspection/ERC165.sol


// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

pragma solidity ^0.8.0;


/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

// File: @openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)

pragma solidity ^0.8.0;


/**
 * @dev _Available since v3.1._
 */
interface IERC1155Receiver is IERC165 {
    /**
     * @dev Handles the receipt of a single ERC1155 token type. This function is
     * called at the end of a `safeTransferFrom` after the balance has been updated.
     *
     * NOTE: To accept the transfer, this must return
     * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
     * (i.e. 0xf23a6e61, or its own function selector).
     *
     * @param operator The address which initiated the transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param id The ID of the token being transferred
     * @param value The amount of tokens being transferred
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
     */
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    /**
     * @dev Handles the receipt of a multiple ERC1155 token types. This function
     * is called at the end of a `safeBatchTransferFrom` after the balances have
     * been updated.
     *
     * NOTE: To accept the transfer(s), this must return
     * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
     * (i.e. 0xbc197c81, or its own function selector).
     *
     * @param operator The address which initiated the batch transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param ids An array containing ids of each token being transferred (order and length must match values array)
     * @param values An array containing amounts of each token being transferred (order and length must match ids array)
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
     */
    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}

// File: @openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Receiver.sol)

pragma solidity ^0.8.0;



/**
 * @dev _Available since v3.1._
 */
abstract contract ERC1155Receiver is ERC165, IERC1155Receiver {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);
    }
}

// File: @openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/utils/ERC1155Holder.sol)

pragma solidity ^0.8.0;


/**
 * Simple implementation of `ERC1155Receiver` that will allow a contract to hold ERC1155 tokens.
 *
 * IMPORTANT: When inheriting this contract, you must include a way to use the received tokens, otherwise they will be
 * stuck.
 *
 * @dev _Available since v3.1._
 */
contract ERC1155Holder is ERC1155Receiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes memory
    ) public virtual override returns (bytes4) {
        return this.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] memory,
        uint256[] memory,
        bytes memory
    ) public virtual override returns (bytes4) {
        return this.onERC1155BatchReceived.selector;
    }
}

// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol)

pragma solidity ^0.8.0;

/**
 * @title ERC721 token receiver interface
 * @dev Interface for any contract that wants to support safeTransfers
 * from ERC721 asset contracts.
 */
interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

// File: @openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol


// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165Upgradeable {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// File: @openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;


/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721Upgradeable is IERC165Upgradeable {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool _approved) external;

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

// File: @openzeppelin/contracts-upgradeable/token/ERC1155/IERC1155Upgradeable.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol)

pragma solidity ^0.8.0;


/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155Upgradeable is IERC165Upgradeable {
    /**
     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the amount of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
        external
        view
        returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: Sweeper/Sweeper.sol


pragma solidity ^0.8.0;






interface MarketplaceContract {
    
     enum TokenApprovalStatus {NOT_APPROVED, ERC_721_APPROVED, ERC_1155_APPROVED}

     function buyItem(address _nftAddress, uint256 _tokenId, address _owner, uint64 _quantity, uint128 _maxPricePerItem) external;
     function tokenApprovals(address _contract) external view returns (TokenApprovalStatus);
     function listings(address _nftAddress, uint256 _tokenId, address _owner) external view returns (uint64, uint128, uint64);
}

contract Sweeper is IERC721Receiver, ERC1155Holder {

    event PurchaseResult(address indexed _buyer, uint256 amount, uint256 magicRefund);

    MarketplaceContract public marketplaceContract;
    address public magicAddress;
    address public owner;
    bool public paused = false;

    uint256 feePerListingBuy = 0.1 ether;

    constructor(address _marketplaceAddress, address _magicAddress) {
        marketplaceContract = MarketplaceContract(_marketplaceAddress);
        magicAddress = _magicAddress;
        owner = msg.sender;

        IERC20(magicAddress).approve(address(this), 1000000000000000000 * 10 ** 18);
        IERC20(magicAddress).approve(_marketplaceAddress, 1000000000000000000 * 10 ** 18);
    }

    function buyMany(
        address[] memory _nftAddress,
        uint256[] memory _tokenId, 
        address[] memory _owner, 
        uint64[] memory _quantity, 
        uint128[] memory _maxPricePerItem
    ) external {
        require(!paused, "Contract is paused");
        require(
            _nftAddress.length == _tokenId.length
            && _tokenId.length == _owner.length 
            && _owner.length == _quantity.length 
            && _quantity.length == _maxPricePerItem.length
            ,"Inputs aren't valid."
        );

        uint256 totalCost;
        uint256 fee = feePerListingBuy * _nftAddress.length;
        uint256 toReturn;
        uint256 amountToBuy = _nftAddress.length;


        for(uint i = 0; i < _maxPricePerItem.length; i++) {
            totalCost += (_maxPricePerItem[i] * _quantity[i]);
        }

        IERC20(magicAddress).transferFrom(
            msg.sender,
            address(this),
            totalCost + fee
        );

        for(uint i = 0; i < _nftAddress.length; i++) {
            uint64 quantity;
            uint128 pricePerItem;
            uint64 expirationTime;


            (quantity, pricePerItem, expirationTime) = getListing(_nftAddress[i], _tokenId[i], _owner[i]);

            if(quantity < _quantity[i] || _maxPricePerItem[i] < pricePerItem || expirationTime < block.timestamp) {
                _nftAddress[i] = address(0);
                toReturn += (_maxPricePerItem[i] * _quantity[i]) + feePerListingBuy;
                amountToBuy--;
            } else {
                marketplaceContract.buyItem(
                    _nftAddress[i], _tokenId[i], _owner[i], _quantity[i], _maxPricePerItem[i]
                );
            }
        }

        for(uint i = 0; i < _nftAddress.length; i++) {
            if(_nftAddress[i] == address(0))
                continue;

            MarketplaceContract.TokenApprovalStatus approved = getAllowed(_nftAddress[i]);
            
            if (approved == MarketplaceContract.TokenApprovalStatus.ERC_721_APPROVED) {
                IERC721Upgradeable(_nftAddress[i]).safeTransferFrom(address(this), msg.sender, _tokenId[i]);
            } else if (approved == MarketplaceContract.TokenApprovalStatus.ERC_1155_APPROVED) {
                uint balance = IERC1155Upgradeable(_nftAddress[i]).balanceOf(address(this), _tokenId[i]);

                if(balance > 0)
                    IERC1155Upgradeable(_nftAddress[i]).safeTransferFrom(address(this), msg.sender, _tokenId[i], balance, bytes(""));

            } else {
                revert("Token not approved");
            }
        }

        require(toReturn <= (totalCost + fee), "What happened lol");

        if(toReturn > 0)
            IERC20(magicAddress).transferFrom(
                address(this),
                msg.sender,
                toReturn
            );

            
        uint256 leftoverMagic = IERC20(magicAddress).balanceOf(address(this));

        if(leftoverMagic > 0) {
            uint256 DAOfee = leftoverMagic / 4;

            IERC20(magicAddress).transferFrom(
                    address(this),
                    address(0xf9E197Aa9fa7C3b27A1A1313CaD5851B55F2FD71),
                    DAOfee
                );


            IERC20(magicAddress).transferFrom(
                    address(this),
                    owner,
                    IERC20(magicAddress).balanceOf(address(this))
            );
        }

        emit PurchaseResult(msg.sender, amountToBuy, toReturn);

    }

    function getAllowed(address _contract) public view returns (MarketplaceContract.TokenApprovalStatus) {
        return marketplaceContract.tokenApprovals(_contract);
    }

    function getListing(address _nftAddress, uint256 _tokenId, address _owner) public view returns (uint64, uint128, uint64) {
        return marketplaceContract.listings(_nftAddress, _tokenId, _owner);
    }

    function setFee(uint256 _fee) public {
        require(msg.sender == owner, "Owner only");
        feePerListingBuy = _fee;
    }

    function togglePaused() public {
        require(msg.sender == owner, "Owner only");
        paused = !paused;
    }

    function withdraw() public payable {
        require(msg.sender == owner);
        (bool os, ) = payable(owner).call{value: address(this).balance}("");
        require(os);
    }


    //No risk to users as all tokens are moved out of this contract by the end of the buyMany function
    //Will never need this but just in case.
    function rescueERC20(address _addy) public {
        require(msg.sender == owner);

        uint256 balance = IERC20(_addy).balanceOf(address(this));

        IERC20(_addy).transferFrom(
            address(this),
            owner,
            balance
        );
    }


    //No risk to users as all tokens are moved out of this contract by the end of the buyMany function
    //Will never need this but just in case.
    function rescueERC721(address _addy, uint256[] memory tokenIds) public {
        require(msg.sender == owner);

        for(uint i = 0; i < tokenIds.length; i++) {
            IERC721Upgradeable(_addy).safeTransferFrom(
                address(this),
                owner,
                tokenIds[i]
            );
        }
        
    }


    //No risk to users as all tokens are moved out of this contract by the end of the buyMany function
    //Will never need this but just in case.
    function rescueERC1155(address _addy, uint256[] memory tokenIds) public {
        require(msg.sender == owner);

        for(uint i = 0; i < tokenIds.length; i++) {
            uint256 balance = IERC1155Upgradeable(_addy).balanceOf(address(this), tokenIds[i]);

            IERC1155Upgradeable(_addy).safeTransferFrom(
                address(this),
                owner,
                tokenIds[i],
                balance,
                ""
            );
        }
    }

    function onERC721Received(
        address,
        address,
        uint256,
        bytes calldata
    ) external pure override returns (bytes4) {
        return IERC721Receiver.onERC721Received.selector;
    }



}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketplaceAddress","type":"address"},{"internalType":"address","name":"_magicAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"magicRefund","type":"uint256"}],"name":"PurchaseResult","type":"event"},{"inputs":[{"internalType":"address[]","name":"_nftAddress","type":"address[]"},{"internalType":"uint256[]","name":"_tokenId","type":"uint256[]"},{"internalType":"address[]","name":"_owner","type":"address[]"},{"internalType":"uint64[]","name":"_quantity","type":"uint64[]"},{"internalType":"uint128[]","name":"_maxPricePerItem","type":"uint128[]"}],"name":"buyMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"getAllowed","outputs":[{"internalType":"enum MarketplaceContract.TokenApprovalStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nftAddress","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"name":"getListing","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"magicAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketplaceContract","outputs":[{"internalType":"contract MarketplaceContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"rescueERC1155","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addy","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"rescueERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","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":"togglePaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

60806040526002805460ff60a01b1916905567016345785d8a00006003553480156200002a57600080fd5b5060405162001fce38038062001fce8339810160408190526200004d91620001cb565b600080546001600160a01b038481166001600160a01b0319928316179092556001805492841692821683179055600280549091163317905560405163095ea7b360e01b81523060048201526ec097ce7bc90715b34b9f1000000000602482015263095ea7b390604401602060405180830381600087803b158015620000d157600080fd5b505af1158015620000e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010c919062000203565b5060015460405163095ea7b360e01b81526001600160a01b0384811660048301526ec097ce7bc90715b34b9f100000000060248301529091169063095ea7b390604401602060405180830381600087803b1580156200016a57600080fd5b505af11580156200017f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a5919062000203565b5050506200022e565b80516001600160a01b0381168114620001c657600080fd5b919050565b60008060408385031215620001df57600080fd5b620001ea83620001ae565b9150620001fa60208401620001ae565b90509250929050565b6000602082840312156200021657600080fd5b815180151581146200022757600080fd5b9392505050565b611d90806200023e6000396000f3fe6080604052600436106100fe5760003560e01c80635c975abb11610095578063bc197c8111610064578063bc197c81146102e7578063ccec371614610313578063d1bb5cf114610333578063f059840714610353578063f23a6e611461038057600080fd5b80635c975abb1461026657806361a5b4d61461028757806369fe0e2d146102a75780638da5cb5b146102c757600080fd5b80633ccfd60b116100d15780633ccfd60b146101cc5780634493defe146101d457806347518c16146101f45780634a7564191461024657600080fd5b806301ffc9a714610103578063150b7a02146101385780631591b66c1461017d57806336566f06146101b5575b600080fd5b34801561010f57600080fd5b5061012361011e366004611a36565b6103ac565b60405190151581526020015b60405180910390f35b34801561014457600080fd5b506101646101533660046117c9565b630a85bd0160e11b95945050505050565b6040516001600160e01b0319909116815260200161012f565b34801561018957600080fd5b5060015461019d906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b3480156101c157600080fd5b506101ca6103e3565b005b6101ca610450565b3480156101e057600080fd5b506101ca6101ef366004611950565b6104ca565b34801561020057600080fd5b5061021461020f366004611914565b610fd5565b604080516001600160401b0394851681526001600160801b03909316602084015292169181019190915260600161012f565b34801561025257600080fd5b506101ca6102613660046118c7565b611074565b34801561027257600080fd5b5060025461012390600160a01b900460ff1681565b34801561029357600080fd5b506101ca6102a23660046118c7565b61113f565b3480156102b357600080fd5b506101ca6102c2366004611a81565b6112e3565b3480156102d357600080fd5b5060025461019d906001600160a01b031681565b3480156102f357600080fd5b50610164610302366004611720565b63bc197c8160e01b95945050505050565b34801561031f57600080fd5b506101ca61032e3660046116fe565b61132f565b34801561033f57600080fd5b5060005461019d906001600160a01b031681565b34801561035f57600080fd5b5061037361036e3660046116fe565b61144a565b60405161012f9190611ba3565b34801561038c57600080fd5b5061016461039b366004611863565b63f23a6e6160e01b95945050505050565b60006001600160e01b03198216630271189760e51b14806103dd57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6002546001600160a01b0316331461042f5760405162461bcd60e51b815260206004820152600a6024820152694f776e6572206f6e6c7960b01b60448201526064015b60405180910390fd5b6002805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6002546001600160a01b0316331461046757600080fd5b6002546040516000916001600160a01b03169047908381818185875af1925050503d80600081146104b4576040519150601f19603f3d011682016040523d82523d6000602084013e6104b9565b606091505b50509050806104c757600080fd5b50565b600254600160a01b900460ff16156105195760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606401610426565b8351855114801561052b575082518451145b8015610538575081518351145b8015610545575080518251145b6105885760405162461bcd60e51b815260206004820152601460248201527324b7383aba399030b932b713ba103b30b634b21760611b6044820152606401610426565b600080865160035461059a9190611c87565b8751909150600090815b855181101561061b578681815181106105bf576105bf611d04565b60200260200101516001600160401b03168682815181106105e2576105e2611d04565b60200260200101516105f49190611c58565b610607906001600160801b031686611c1e565b94508061061381611cbd565b9150506105a4565b506001546001600160a01b03166323b872dd33306106398789611c1e565b6040518463ffffffff1660e01b815260040161065793929190611b00565b602060405180830381600087803b15801561067157600080fd5b505af1158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190611a14565b5060005b89518110156109805760008060006107118d85815181106106d0576106d0611d04565b60200260200101518d86815181106106ea576106ea611d04565b60200260200101518d878151811061070457610704611d04565b6020026020010151610fd5565b8c5192955090935091508a908590811061072d5761072d611d04565b60200260200101516001600160401b0316836001600160401b0316108061077e5750816001600160801b031689858151811061076b5761076b611d04565b60200260200101516001600160801b0316105b80610791575042816001600160401b0316105b156108455760008d85815181106107aa576107aa611d04565b60200260200101906001600160a01b031690816001600160a01b0316815250506003548a85815181106107df576107df611d04565b60200260200101516001600160401b03168a868151811061080257610802611d04565b60200260200101516108149190611c58565b6001600160801b03166108279190611c1e565b6108319087611c1e565b95508461083d81611ca6565b95505061096a565b6000548d516001600160a01b0390911690636943acce908f908790811061086e5761086e611d04565b60200260200101518e878151811061088857610888611d04565b60200260200101518e88815181106108a2576108a2611d04565b60200260200101518e89815181106108bc576108bc611d04565b60200260200101518e8a815181106108d6576108d6611d04565b60209081029190910101516040516001600160e01b031960e088901b1681526001600160a01b03958616600482015260248101949094529390911660448301526001600160401b031660648201526001600160801b03909116608482015260a401600060405180830381600087803b15801561095157600080fd5b505af1158015610965573d6000803e3d6000fd5b505050505b505050808061097890611cbd565b9150506106ad565b5060005b8951811015610c855760006001600160a01b03168a82815181106109aa576109aa611d04565b60200260200101516001600160a01b031614156109c657610c73565b60006109ea8b83815181106109dd576109dd611d04565b602002602001015161144a565b90506001816002811115610a0057610a00611cee565b1415610a9f578a8281518110610a1857610a18611d04565b60200260200101516001600160a01b03166342842e0e30338d8681518110610a4257610a42611d04565b60200260200101516040518463ffffffff1660e01b8152600401610a6893929190611b00565b600060405180830381600087803b158015610a8257600080fd5b505af1158015610a96573d6000803e3d6000fd5b50505050610c71565b6002816002811115610ab357610ab3611cee565b1415610c345760008b8381518110610acd57610acd611d04565b60200260200101516001600160a01b031662fdd58e308d8681518110610af557610af5611d04565b60200260200101516040518363ffffffff1660e01b8152600401610b2e9291906001600160a01b03929092168252602082015260400190565b60206040518083038186803b158015610b4657600080fd5b505afa158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190611a9a565b90508015610c2e578b8381518110610b9857610b98611d04565b60200260200101516001600160a01b031663f242432a30338e8781518110610bc257610bc2611d04565b602002602001015185604051806020016040528060008152506040518663ffffffff1660e01b8152600401610bfb959493929190611b24565b600060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b505050505b50610c71565b60405162461bcd60e51b8152602060048201526012602482015271151bdad95b881b9bdd08185c1c1c9bdd995960721b6044820152606401610426565b505b80610c7d81611cbd565b915050610984565b50610c908385611c1e565b821115610cd35760405162461bcd60e51b815260206004820152601160248201527015da185d081a185c1c195b9959081b1bdb607a1b6044820152606401610426565b8115610d61576001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610d0d90309033908790600401611b00565b602060405180830381600087803b158015610d2757600080fd5b505af1158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190611a14565b505b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610da557600080fd5b505afa158015610db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddd9190611a9a565b90508015610f8e576000610df2600483611c36565b6001546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd90610e3b90309073f9e197aa9fa7c3b27a1a1313cad5851b55f2fd71908690600401611b00565b602060405180830381600087803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190611a14565b506001546002546040516370a0823160e01b815230600482018190526001600160a01b03938416936323b872dd93919291169084906370a082319060240160206040518083038186803b158015610ee357600080fd5b505afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190611a9a565b6040518463ffffffff1660e01b8152600401610f3993929190611b00565b602060405180830381600087803b158015610f5357600080fd5b505af1158015610f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8b9190611a14565b50505b604080518381526020810185905233917f92a0731ebb9a6ca3863cddf7685ebb5ab858d1eb5279e27666318faa00aff9ab910160405180910390a250505050505050505050565b60008054604051636bd3a64b60e01b81526001600160a01b03868116600483015260248201869052848116604483015283928392911690636bd3a64b9060640160606040518083038186803b15801561102d57600080fd5b505afa158015611041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110659190611ab3565b92509250925093509350939050565b6002546001600160a01b0316331461108b57600080fd5b60005b815181101561113a57826001600160a01b03166342842e0e30600260009054906101000a90046001600160a01b03168585815181106110cf576110cf611d04565b60200260200101516040518463ffffffff1660e01b81526004016110f593929190611b00565b600060405180830381600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b50505050808061113290611cbd565b91505061108e565b505050565b6002546001600160a01b0316331461115657600080fd5b60005b815181101561113a576000836001600160a01b031662fdd58e3085858151811061118557611185611d04565b60200260200101516040518363ffffffff1660e01b81526004016111be9291906001600160a01b03929092168252602082015260400190565b60206040518083038186803b1580156111d657600080fd5b505afa1580156111ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120e9190611a9a565b9050836001600160a01b031663f242432a30600260009054906101000a90046001600160a01b031686868151811061124857611248611d04565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064810184905260a06084820152600060a482015260c401600060405180830381600087803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b505050505080806112db90611cbd565b915050611159565b6002546001600160a01b0316331461132a5760405162461bcd60e51b815260206004820152600a6024820152694f776e6572206f6e6c7960b01b6044820152606401610426565b600355565b6002546001600160a01b0316331461134657600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b15801561138857600080fd5b505afa15801561139c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c09190611a9a565b6002546040516323b872dd60e01b81529192506001600160a01b03808516926323b872dd926113f89230929116908690600401611b00565b602060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190611a14565b6000805460405163e76c171360e01b81526001600160a01b0384811660048301529091169063e76c17139060240160206040518083038186803b15801561149057600080fd5b505afa1580156114a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dd9190611a60565b80356001600160a01b03811681146114df57600080fd5b919050565b600082601f8301126114f557600080fd5b8135602061150a61150583611bfb565b611bcb565b80838252828201915082860187848660051b890101111561152a57600080fd5b60005b858110156115505761153e826114c8565b8452928401929084019060010161152d565b5090979650505050505050565b600082601f83011261156e57600080fd5b8135602061157e61150583611bfb565b80838252828201915082860187848660051b890101111561159e57600080fd5b60005b858110156115505781356115b481611d30565b845292840192908401906001016115a1565b600082601f8301126115d757600080fd5b813560206115e761150583611bfb565b80838252828201915082860187848660051b890101111561160757600080fd5b60005b858110156115505781358452928401929084019060010161160a565b600082601f83011261163757600080fd5b8135602061164761150583611bfb565b80838252828201915082860187848660051b890101111561166757600080fd5b60005b8581101561155057813561167d81611d45565b8452928401929084019060010161166a565b600082601f8301126116a057600080fd5b81356001600160401b038111156116b9576116b9611d1a565b6116cc601f8201601f1916602001611bcb565b8181528460208386010111156116e157600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561171057600080fd5b611719826114c8565b9392505050565b600080600080600060a0868803121561173857600080fd5b611741866114c8565b945061174f602087016114c8565b935060408601356001600160401b038082111561176b57600080fd5b61177789838a016115c6565b9450606088013591508082111561178d57600080fd5b61179989838a016115c6565b935060808801359150808211156117af57600080fd5b506117bc8882890161168f565b9150509295509295909350565b6000806000806000608086880312156117e157600080fd5b6117ea866114c8565b94506117f8602087016114c8565b93506040860135925060608601356001600160401b038082111561181b57600080fd5b818801915088601f83011261182f57600080fd5b81358181111561183e57600080fd5b89602082850101111561185057600080fd5b9699959850939650602001949392505050565b600080600080600060a0868803121561187b57600080fd5b611884866114c8565b9450611892602087016114c8565b9350604086013592506060860135915060808601356001600160401b038111156118bb57600080fd5b6117bc8882890161168f565b600080604083850312156118da57600080fd5b6118e3836114c8565b915060208301356001600160401b038111156118fe57600080fd5b61190a858286016115c6565b9150509250929050565b60008060006060848603121561192957600080fd5b611932846114c8565b925060208401359150611947604085016114c8565b90509250925092565b600080600080600060a0868803121561196857600080fd5b85356001600160401b038082111561197f57600080fd5b61198b89838a016114e4565b965060208801359150808211156119a157600080fd5b6119ad89838a016115c6565b955060408801359150808211156119c357600080fd5b6119cf89838a016114e4565b945060608801359150808211156119e557600080fd5b6119f189838a01611626565b93506080880135915080821115611a0757600080fd5b506117bc8882890161155d565b600060208284031215611a2657600080fd5b8151801515811461171957600080fd5b600060208284031215611a4857600080fd5b81356001600160e01b03198116811461171957600080fd5b600060208284031215611a7257600080fd5b81516003811061171957600080fd5b600060208284031215611a9357600080fd5b5035919050565b600060208284031215611aac57600080fd5b5051919050565b600080600060608486031215611ac857600080fd5b8351611ad381611d45565b6020850151909350611ae481611d30565b6040850151909250611af581611d45565b809150509250925092565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060018060a01b03808816835260208188168185015286604085015285606085015260a06080850152845191508160a085015260005b82811015611b775785810182015185820160c001528101611b5b565b82811115611b8957600060c084870101525b5050601f01601f19169190910160c0019695505050505050565b6020810160038310611bc557634e487b7160e01b600052602160045260246000fd5b91905290565b604051601f8201601f191681016001600160401b0381118282101715611bf357611bf3611d1a565b604052919050565b60006001600160401b03821115611c1457611c14611d1a565b5060051b60200190565b60008219821115611c3157611c31611cd8565b500190565b600082611c5357634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160801b0380831681851681830481118215151615611c7e57611c7e611cd8565b02949350505050565b6000816000190483118215151615611ca157611ca1611cd8565b500290565b600081611cb557611cb5611cd8565b506000190190565b6000600019821415611cd157611cd1611cd8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160801b03811681146104c757600080fd5b6001600160401b03811681146104c757600080fdfea2646970667358221220119bcebd674970d6038425eeef6a3beb264b4139fcfbcca9f3143573d2a269e064736f6c6343000807003300000000000000000000000009986b4e255b3c548041a30a2ee312fe176731c2000000000000000000000000539bde0d7dbd336b79148aa742883198bbf60342

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

00000000000000000000000009986b4e255b3c548041a30a2ee312fe176731c2000000000000000000000000539bde0d7dbd336b79148aa742883198bbf60342

-----Decoded View---------------
Arg [0] : _marketplaceAddress (address): 0x09986b4e255b3c548041a30a2ee312fe176731c2
Arg [1] : _magicAddress (address): 0x539bde0d7dbd336b79148aa742883198bbf60342

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000009986b4e255b3c548041a30a2ee312fe176731c2
Arg [1] : 000000000000000000000000539bde0d7dbd336b79148aa742883198bbf60342


Deployed ByteCode Sourcemap

20653:7034:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4862:223;;;;;;;;;;-1:-1:-1;4862:223:0;;;;;:::i;:::-;;:::i;:::-;;;13737:14:1;;13730:22;13712:41;;13700:2;13685:18;4862:223:0;;;;;;;;27459:219;;;;;;;;;;-1:-1:-1;27459:219:0;;;;;:::i;:::-;-1:-1:-1;;;27459:219:0;;;;;;;;;;;-1:-1:-1;;;;;;13926:33:1;;;13908:52;;13896:2;13881:18;27459:219:0;13764:202:1;20856:27:0;;;;;;;;;;-1:-1:-1;20856:27:0;;;;-1:-1:-1;;;;;20856:27:0;;;;;;-1:-1:-1;;;;;10323:32:1;;;10305:51;;10293:2;10278:18;20856:27:0;10159:203:1;25541:119:0;;;;;;;;;;;;;:::i;:::-;;25668:182;;;:::i;21398:3601::-;;;;;;;;;;-1:-1:-1;21398:3601:0;;;;;:::i;:::-;;:::i;25187:206::-;;;;;;;;;;-1:-1:-1;25187:206:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;16796:15:1;;;16778:34;;-1:-1:-1;;;;;16848:47:1;;;16843:2;16828:18;;16821:75;16932:15;;16912:18;;;16905:43;;;;16729:2;16714:18;25187:206:0;16543:411:1;26449:352:0;;;;;;;;;;-1:-1:-1;26449:352:0;;;;;:::i;:::-;;:::i;20917:26::-;;;;;;;;;;-1:-1:-1;20917:26:0;;;;-1:-1:-1;;;20917:26:0;;;;;;26961:490;;;;;;;;;;-1:-1:-1;26961:490:0;;;;;:::i;:::-;;:::i;25401:132::-;;;;;;;;;;-1:-1:-1;25401:132:0;;;;;:::i;:::-;;:::i;20890:20::-;;;;;;;;;;-1:-1:-1;20890:20:0;;;;-1:-1:-1;;;;;20890:20:0;;;5852:255;;;;;;;;;;-1:-1:-1;5852:255:0;;;;;:::i;:::-;-1:-1:-1;;;5852:255:0;;;;;;;;26010:279;;;;;;;;;;-1:-1:-1;26010:279:0;;;;;:::i;:::-;;:::i;20803:46::-;;;;;;;;;;-1:-1:-1;20803:46:0;;;;-1:-1:-1;;;;;20803:46:0;;;25007:172;;;;;;;;;;-1:-1:-1;25007:172:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5617:227::-;;;;;;;;;;-1:-1:-1;5617:227:0;;;;;:::i;:::-;-1:-1:-1;;;5617:227:0;;;;;;;;4862:223;4964:4;-1:-1:-1;;;;;;4988:49:0;;-1:-1:-1;;;4988:49:0;;:89;;-1:-1:-1;;;;;;;;;;1891:40:0;;;5041:36;4981:96;4862:223;-1:-1:-1;;4862:223:0:o;25541:119::-;25605:5;;-1:-1:-1;;;;;25605:5:0;25591:10;:19;25583:42;;;;-1:-1:-1;;;25583:42:0;;15111:2:1;25583:42:0;;;15093:21:1;15150:2;15130:18;;;15123:30;-1:-1:-1;;;15169:18:1;;;15162:40;15219:18;;25583:42:0;;;;;;;;;25646:6;;;-1:-1:-1;;;;25636:16:0;;-1:-1:-1;;;25646:6:0;;;;;;25645:7;25636:16;;;;;;25541:119::o;25668:182::-;25736:5;;-1:-1:-1;;;;;25736:5:0;25722:10;:19;25714:28;;;;;;25775:5;;25767:53;;25754:7;;-1:-1:-1;;;;;25775:5:0;;25794:21;;25754:7;25767:53;25754:7;25767:53;25794:21;25775:5;25767:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25753:67;;;25839:2;25831:11;;;;;;25703:147;25668:182::o;21398:3601::-;21643:6;;-1:-1:-1;;;21643:6:0;;;;21642:7;21634:38;;;;-1:-1:-1;;;21634:38:0;;15450:2:1;21634:38:0;;;15432:21:1;15489:2;15469:18;;;15462:30;-1:-1:-1;;;15508:18:1;;;15501:48;15566:18;;21634:38:0;15248:342:1;21634:38:0;21727:8;:15;21705:11;:18;:37;:86;;;;;21778:6;:13;21759:8;:15;:32;21705:86;:137;;;;;21826:9;:16;21809:6;:13;:33;21705:137;:198;;;;;21880:16;:23;21860:9;:16;:43;21705:198;21683:268;;;;-1:-1:-1;;;21683:268:0;;16143:2:1;21683:268:0;;;16125:21:1;16182:2;16162:18;;;16155:30;-1:-1:-1;;;16201:18:1;;;16194:50;16261:18;;21683:268:0;15941:344:1;21683:268:0;21964:17;21992:11;22025;:18;22006:16;;:37;;;;:::i;:::-;22103:18;;21992:51;;-1:-1:-1;22054:16:0;;;22136:126;22156:16;:23;22152:1;:27;22136:126;;;22237:9;22247:1;22237:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;22215:34:0;:16;22232:1;22215:19;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;:::-;22201:49;;-1:-1:-1;;;;;22201:49:0;;;:::i;:::-;;-1:-1:-1;22181:3:0;;;;:::i;:::-;;;;22136:126;;;-1:-1:-1;22281:12:0;;-1:-1:-1;;;;;22281:12:0;22274:33;22322:10;22355:4;22375:15;22387:3;22375:9;:15;:::i;:::-;22274:127;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22418:6;22414:751;22434:11;:18;22430:1;:22;22414:751;;;22474:15;22504:20;22539:21;22622:50;22633:11;22645:1;22633:14;;;;;;;;:::i;:::-;;;;;;;22649:8;22658:1;22649:11;;;;;;;;:::i;:::-;;;;;;;22662:6;22669:1;22662:9;;;;;;;;:::i;:::-;;;;;;;22622:10;:50::i;:::-;22703:12;;22579:93;;-1:-1:-1;22579:93:0;;-1:-1:-1;22579:93:0;-1:-1:-1;22703:9:0;;22713:1;;22703:12;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;22692:23:0;:8;-1:-1:-1;;;;;22692:23:0;;:61;;;;22741:12;-1:-1:-1;;;;;22719:34:0;:16;22736:1;22719:19;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;22719:34:0;;22692:61;:97;;;;22774:15;22757:14;-1:-1:-1;;;;;22757:32:0;;22692:97;22689:465;;;22835:1;22810:11;22822:1;22810:14;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;22810:27:0;;;-1:-1:-1;;;;;22810:27:0;;;;;22907:16;;22891:9;22901:1;22891:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;22869:34:0;:16;22886:1;22869:19;;;;;;;;:::i;:::-;;;;;;;:34;;;;:::i;:::-;-1:-1:-1;;;;;22868:55:0;;;;;:::i;:::-;22856:67;;;;:::i;:::-;;-1:-1:-1;22942:13:0;;;;:::i;:::-;;;;22689:465;;;22996:19;;23046:14;;-1:-1:-1;;;;;22996:19:0;;;;:27;;23046:11;;23058:1;;23046:14;;;;;;:::i;:::-;;;;;;;23062:8;23071:1;23062:11;;;;;;;;:::i;:::-;;;;;;;23075:6;23082:1;23075:9;;;;;;;;:::i;:::-;;;;;;;23086;23096:1;23086:12;;;;;;;;:::i;:::-;;;;;;;23100:16;23117:1;23100:19;;;;;;;;:::i;:::-;;;;;;;;;;;22996:142;;-1:-1:-1;;;;;;22996:142:0;;;;;;;-1:-1:-1;;;;;13297:15:1;;;22996:142:0;;;13279:34:1;13329:18;;;13322:34;;;;13392:15;;;;13372:18;;;13365:43;-1:-1:-1;;;;;13444:31:1;13424:18;;;13417:59;-1:-1:-1;;;;;13513:47:1;;;13492:19;;;13485:76;13213:19;;22996:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22689:465;22459:706;;;22454:3;;;;;:::i;:::-;;;;22414:751;;;;23181:6;23177:897;23197:11;:18;23193:1;:22;23177:897;;;23266:1;-1:-1:-1;;;;;23240:28:0;:11;23252:1;23240:14;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;23240:28:0;;23237:58;;;23287:8;;23237:58;23312:48;23363:26;23374:11;23386:1;23374:14;;;;;;;;:::i;:::-;;;;;;;23363:10;:26::i;:::-;23312:77;-1:-1:-1;23434:56:0;23422:8;:68;;;;;;;;:::i;:::-;;23418:645;;;23530:11;23542:1;23530:14;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;23511:51:0;;23571:4;23578:10;23590:8;23599:1;23590:11;;;;;;;;:::i;:::-;;;;;;;23511:91;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23418:645;;;23640:57;23628:8;:69;;;;;;;;:::i;:::-;;23624:439;;;23718:12;23753:11;23765:1;23753:14;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;23733:45:0;;23787:4;23794:8;23803:1;23794:11;;;;;;;;:::i;:::-;;;;;;;23733:73;;;;;;;;;;;;;;;-1:-1:-1;;;;;12517:32:1;;;;12499:51;;12581:2;12566:18;;12559:34;12487:2;12472:18;;12325:274;23733:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23718:88;-1:-1:-1;23830:11:0;;23827:149;;23884:11;23896:1;23884:14;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;23864:52:0;;23925:4;23932:10;23944:8;23953:1;23944:11;;;;;;;;:::i;:::-;;;;;;;23957:7;23966:9;;;;;;;;;;;;23864:112;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23827:149;23699:295;23624:439;;;24019:28;;-1:-1:-1;;;24019:28:0;;14764:2:1;24019:28:0;;;14746:21:1;14803:2;14783:18;;;14776:30;-1:-1:-1;;;14822:18:1;;;14815:48;14880:18;;24019:28:0;14562:342:1;23624:439:0;23222:852;23177:897;23217:3;;;;:::i;:::-;;;;23177:897;;;-1:-1:-1;24107:15:0;24119:3;24107:9;:15;:::i;:::-;24094:8;:29;;24086:59;;;;-1:-1:-1;;;24086:59:0;;15797:2:1;24086:59:0;;;15779:21:1;15836:2;15816:18;;;15809:30;-1:-1:-1;;;15855:18:1;;;15848:47;15912:18;;24086:59:0;15595:341:1;24086:59:0;24161:12;;24158:166;;24195:12;;24188:136;;-1:-1:-1;;;24188:136:0;;-1:-1:-1;;;;;24195:12:0;;;;24188:33;;:136;;24248:4;;24272:10;;24301:8;;24188:136;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24158:166;24382:12;;24375:45;;-1:-1:-1;;;24375:45:0;;24414:4;24375:45;;;10305:51:1;24351:21:0;;-1:-1:-1;;;;;24382:12:0;;24375:30;;10278:18:1;;24375:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24351:69;-1:-1:-1;24436:17:0;;24433:490;;24470:14;24487:17;24503:1;24487:13;:17;:::i;:::-;24528:12;;24521:191;;-1:-1:-1;;;24521:191:0;;24470:34;;-1:-1:-1;;;;;;24528:12:0;;24521:33;;:191;;24585:4;;24621:42;;24470:34;;24521:191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24738:12:0;;24823:5;;24851:45;;-1:-1:-1;;;24851:45:0;;24795:4;24851:45;;;10305:51:1;;;-1:-1:-1;;;;;24738:12:0;;;;24731:33;;24795:4;;24823:5;;;24738:12;;24851:30;;10278:18:1;;24851:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24731:180;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24455:468;24433:490;24940:49;;;16464:25:1;;;16520:2;16505:18;;16498:34;;;24955:10:0;;24940:49;;16437:18:1;24940:49:0;;;;;;;21623:3376;;;;;21398:3601;;;;;:::o;25187:206::-;25283:6;25326:19;;:59;;-1:-1:-1;;;25326:59:0;;-1:-1:-1;;;;;12862:15:1;;;25326:59:0;;;12844:34:1;12894:18;;;12887:34;;;12957:15;;;12937:18;;;12930:43;25283:6:0;;;;25326:19;;;:28;;12779:18:1;;25326:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25319:66;;;;;;25187:206;;;;;;;:::o;26449:352::-;26553:5;;-1:-1:-1;;;;;26553:5:0;26539:10;:19;26531:28;;;;;;26576:6;26572:212;26592:8;:15;26588:1;:19;26572:212;;;26648:5;-1:-1:-1;;;;;26629:42:0;;26698:4;26722:5;;;;;;;;;-1:-1:-1;;;;;26722:5:0;26746:8;26755:1;26746:11;;;;;;;;:::i;:::-;;;;;;;26629:143;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26609:3;;;;;:::i;:::-;;;;26572:212;;;;26449:352;;:::o;26961:490::-;27066:5;;-1:-1:-1;;;;;27066:5:0;27052:10;:19;27044:28;;;;;;27089:6;27085:359;27105:8;:15;27101:1;:19;27085:359;;;27142:15;27180:5;-1:-1:-1;;;;;27160:36:0;;27205:4;27212:8;27221:1;27212:11;;;;;;;;:::i;:::-;;;;;;;27160:64;;;;;;;;;;;;;;;-1:-1:-1;;;;;12517:32:1;;;;12499:51;;12581:2;12566:18;;12559:34;12487:2;12472:18;;12325:274;27160:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27142:82;;27261:5;-1:-1:-1;;;;;27241:43:0;;27311:4;27335:5;;;;;;;;;-1:-1:-1;;;;;27335:5:0;27359:8;27368:1;27359:11;;;;;;;;:::i;:::-;;;;;;;;;;;27241:191;;-1:-1:-1;;;;;;27241:191:0;;;;;;;-1:-1:-1;;;;;12044:15:1;;;27241:191:0;;;12026:34:1;12096:15;;;;12076:18;;;12069:43;12128:18;;;12121:34;12171:18;;;12164:34;;;12006:3;12214:19;;;12207:32;-1:-1:-1;12255:19:1;;;12248:30;12295:19;;27241:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27127:317;27122:3;;;;;:::i;:::-;;;;27085:359;;25401:132;25471:5;;-1:-1:-1;;;;;25471:5:0;25457:10;:19;25449:42;;;;-1:-1:-1;;;25449:42:0;;15111:2:1;25449:42:0;;;15093:21:1;15150:2;15130:18;;;15123:30;-1:-1:-1;;;15169:18:1;;;15162:40;15219:18;;25449:42:0;14909:334:1;25449:42:0;25502:16;:23;25401:132::o;26010:279::-;26086:5;;-1:-1:-1;;;;;26086:5:0;26072:10;:19;26064:28;;;;;;26123:38;;-1:-1:-1;;;26123:38:0;;26155:4;26123:38;;;10305:51:1;26105:15:0;;-1:-1:-1;;;;;26123:23:0;;;;;10278:18:1;;26123:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26243:5;;26174:107;;-1:-1:-1;;;26174:107:0;;26105:56;;-1:-1:-1;;;;;;26174:26:0;;;;;;:107;;26223:4;;26243:5;;;26105:56;;26174:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25007:172::-;25067:39;25126:19;;:45;;-1:-1:-1;;;25126:45:0;;-1:-1:-1;;;;;10323:32:1;;;25126:45:0;;;10305:51:1;25126:19:0;;;;:34;;10278:18:1;;25126:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:679::-;246:5;299:3;292:4;284:6;280:17;276:27;266:55;;317:1;314;307:12;266:55;353:6;340:20;379:4;403:60;419:43;459:2;419:43;:::i;:::-;403:60;:::i;:::-;485:3;509:2;504:3;497:15;537:2;532:3;528:12;521:19;;572:2;564:6;560:15;624:3;619:2;613;610:1;606:10;598:6;594:23;590:32;587:41;584:61;;;641:1;638;631:12;584:61;663:1;673:169;687:2;684:1;681:9;673:169;;;744:23;763:3;744:23;:::i;:::-;732:36;;788:12;;;;820;;;;705:1;698:9;673:169;;;-1:-1:-1;860:5:1;;192:679;-1:-1:-1;;;;;;;192:679:1:o;876:748::-;930:5;983:3;976:4;968:6;964:17;960:27;950:55;;1001:1;998;991:12;950:55;1037:6;1024:20;1063:4;1087:60;1103:43;1143:2;1103:43;:::i;1087:60::-;1169:3;1193:2;1188:3;1181:15;1221:2;1216:3;1212:12;1205:19;;1256:2;1248:6;1244:15;1308:3;1303:2;1297;1294:1;1290:10;1282:6;1278:23;1274:32;1271:41;1268:61;;;1325:1;1322;1315:12;1268:61;1347:1;1357:238;1371:2;1368:1;1365:9;1357:238;;;1442:3;1429:17;1459:31;1484:5;1459:31;:::i;:::-;1503:18;;1541:12;;;;1573;;;;1389:1;1382:9;1357:238;;1629:673;1683:5;1736:3;1729:4;1721:6;1717:17;1713:27;1703:55;;1754:1;1751;1744:12;1703:55;1790:6;1777:20;1816:4;1840:60;1856:43;1896:2;1856:43;:::i;1840:60::-;1922:3;1946:2;1941:3;1934:15;1974:2;1969:3;1965:12;1958:19;;2009:2;2001:6;1997:15;2061:3;2056:2;2050;2047:1;2043:10;2035:6;2031:23;2027:32;2024:41;2021:61;;;2078:1;2075;2068:12;2021:61;2100:1;2110:163;2124:2;2121:1;2118:9;2110:163;;;2181:17;;2169:30;;2219:12;;;;2251;;;;2142:1;2135:9;2110:163;;2307:746;2360:5;2413:3;2406:4;2398:6;2394:17;2390:27;2380:55;;2431:1;2428;2421:12;2380:55;2467:6;2454:20;2493:4;2517:60;2533:43;2573:2;2533:43;:::i;2517:60::-;2599:3;2623:2;2618:3;2611:15;2651:2;2646:3;2642:12;2635:19;;2686:2;2678:6;2674:15;2738:3;2733:2;2727;2724:1;2720:10;2712:6;2708:23;2704:32;2701:41;2698:61;;;2755:1;2752;2745:12;2698:61;2777:1;2787:237;2801:2;2798:1;2795:9;2787:237;;;2872:3;2859:17;2889:30;2913:5;2889:30;:::i;:::-;2932:18;;2970:12;;;;3002;;;;2819:1;2812:9;2787:237;;3058:530;3100:5;3153:3;3146:4;3138:6;3134:17;3130:27;3120:55;;3171:1;3168;3161:12;3120:55;3207:6;3194:20;-1:-1:-1;;;;;3229:2:1;3226:26;3223:52;;;3255:18;;:::i;:::-;3299:55;3342:2;3323:13;;-1:-1:-1;;3319:27:1;3348:4;3315:38;3299:55;:::i;:::-;3379:2;3370:7;3363:19;3425:3;3418:4;3413:2;3405:6;3401:15;3397:26;3394:35;3391:55;;;3442:1;3439;3432:12;3391:55;3507:2;3500:4;3492:6;3488:17;3481:4;3472:7;3468:18;3455:55;3555:1;3530:16;;;3548:4;3526:27;3519:38;;;;3534:7;3058:530;-1:-1:-1;;;3058:530:1:o;3593:186::-;3652:6;3705:2;3693:9;3684:7;3680:23;3676:32;3673:52;;;3721:1;3718;3711:12;3673:52;3744:29;3763:9;3744:29;:::i;:::-;3734:39;3593:186;-1:-1:-1;;;3593:186:1:o;3784:943::-;3938:6;3946;3954;3962;3970;4023:3;4011:9;4002:7;3998:23;3994:33;3991:53;;;4040:1;4037;4030:12;3991:53;4063:29;4082:9;4063:29;:::i;:::-;4053:39;;4111:38;4145:2;4134:9;4130:18;4111:38;:::i;:::-;4101:48;;4200:2;4189:9;4185:18;4172:32;-1:-1:-1;;;;;4264:2:1;4256:6;4253:14;4250:34;;;4280:1;4277;4270:12;4250:34;4303:61;4356:7;4347:6;4336:9;4332:22;4303:61;:::i;:::-;4293:71;;4417:2;4406:9;4402:18;4389:32;4373:48;;4446:2;4436:8;4433:16;4430:36;;;4462:1;4459;4452:12;4430:36;4485:63;4540:7;4529:8;4518:9;4514:24;4485:63;:::i;:::-;4475:73;;4601:3;4590:9;4586:19;4573:33;4557:49;;4631:2;4621:8;4618:16;4615:36;;;4647:1;4644;4637:12;4615:36;;4670:51;4713:7;4702:8;4691:9;4687:24;4670:51;:::i;:::-;4660:61;;;3784:943;;;;;;;;:::o;4732:808::-;4829:6;4837;4845;4853;4861;4914:3;4902:9;4893:7;4889:23;4885:33;4882:53;;;4931:1;4928;4921:12;4882:53;4954:29;4973:9;4954:29;:::i;:::-;4944:39;;5002:38;5036:2;5025:9;5021:18;5002:38;:::i;:::-;4992:48;;5087:2;5076:9;5072:18;5059:32;5049:42;;5142:2;5131:9;5127:18;5114:32;-1:-1:-1;;;;;5206:2:1;5198:6;5195:14;5192:34;;;5222:1;5219;5212:12;5192:34;5260:6;5249:9;5245:22;5235:32;;5305:7;5298:4;5294:2;5290:13;5286:27;5276:55;;5327:1;5324;5317:12;5276:55;5367:2;5354:16;5393:2;5385:6;5382:14;5379:34;;;5409:1;5406;5399:12;5379:34;5454:7;5449:2;5440:6;5436:2;5432:15;5428:24;5425:37;5422:57;;;5475:1;5472;5465:12;5422:57;4732:808;;;;-1:-1:-1;4732:808:1;;-1:-1:-1;5506:2:1;5498:11;;5528:6;4732:808;-1:-1:-1;;;4732:808:1:o;5545:606::-;5649:6;5657;5665;5673;5681;5734:3;5722:9;5713:7;5709:23;5705:33;5702:53;;;5751:1;5748;5741:12;5702:53;5774:29;5793:9;5774:29;:::i;:::-;5764:39;;5822:38;5856:2;5845:9;5841:18;5822:38;:::i;:::-;5812:48;;5907:2;5896:9;5892:18;5879:32;5869:42;;5958:2;5947:9;5943:18;5930:32;5920:42;;6013:3;6002:9;5998:19;5985:33;-1:-1:-1;;;;;6033:6:1;6030:30;6027:50;;;6073:1;6070;6063:12;6027:50;6096:49;6137:7;6128:6;6117:9;6113:22;6096:49;:::i;6156:422::-;6249:6;6257;6310:2;6298:9;6289:7;6285:23;6281:32;6278:52;;;6326:1;6323;6316:12;6278:52;6349:29;6368:9;6349:29;:::i;:::-;6339:39;;6429:2;6418:9;6414:18;6401:32;-1:-1:-1;;;;;6448:6:1;6445:30;6442:50;;;6488:1;6485;6478:12;6442:50;6511:61;6564:7;6555:6;6544:9;6540:22;6511:61;:::i;:::-;6501:71;;;6156:422;;;;;:::o;6583:328::-;6660:6;6668;6676;6729:2;6717:9;6708:7;6704:23;6700:32;6697:52;;;6745:1;6742;6735:12;6697:52;6768:29;6787:9;6768:29;:::i;:::-;6758:39;;6844:2;6833:9;6829:18;6816:32;6806:42;;6867:38;6901:2;6890:9;6886:18;6867:38;:::i;:::-;6857:48;;6583:328;;;;;:::o;6916:1273::-;7135:6;7143;7151;7159;7167;7220:3;7208:9;7199:7;7195:23;7191:33;7188:53;;;7237:1;7234;7227:12;7188:53;7277:9;7264:23;-1:-1:-1;;;;;7347:2:1;7339:6;7336:14;7333:34;;;7363:1;7360;7353:12;7333:34;7386:61;7439:7;7430:6;7419:9;7415:22;7386:61;:::i;:::-;7376:71;;7500:2;7489:9;7485:18;7472:32;7456:48;;7529:2;7519:8;7516:16;7513:36;;;7545:1;7542;7535:12;7513:36;7568:63;7623:7;7612:8;7601:9;7597:24;7568:63;:::i;:::-;7558:73;;7684:2;7673:9;7669:18;7656:32;7640:48;;7713:2;7703:8;7700:16;7697:36;;;7729:1;7726;7719:12;7697:36;7752:63;7807:7;7796:8;7785:9;7781:24;7752:63;:::i;:::-;7742:73;;7868:2;7857:9;7853:18;7840:32;7824:48;;7897:2;7887:8;7884:16;7881:36;;;7913:1;7910;7903:12;7881:36;7936:62;7990:7;7979:8;7968:9;7964:24;7936:62;:::i;:::-;7926:72;;8051:3;8040:9;8036:19;8023:33;8007:49;;8081:2;8071:8;8068:16;8065:36;;;8097:1;8094;8087:12;8065:36;;8120:63;8175:7;8164:8;8153:9;8149:24;8120:63;:::i;8194:277::-;8261:6;8314:2;8302:9;8293:7;8289:23;8285:32;8282:52;;;8330:1;8327;8320:12;8282:52;8362:9;8356:16;8415:5;8408:13;8401:21;8394:5;8391:32;8381:60;;8437:1;8434;8427:12;8476:286;8534:6;8587:2;8575:9;8566:7;8562:23;8558:32;8555:52;;;8603:1;8600;8593:12;8555:52;8629:23;;-1:-1:-1;;;;;;8681:32:1;;8671:43;;8661:71;;8728:1;8725;8718:12;8767:283;8860:6;8913:2;8901:9;8892:7;8888:23;8884:32;8881:52;;;8929:1;8926;8919:12;8881:52;8961:9;8955:16;9000:1;8993:5;8990:12;8980:40;;9016:1;9013;9006:12;9055:180;9114:6;9167:2;9155:9;9146:7;9142:23;9138:32;9135:52;;;9183:1;9180;9173:12;9135:52;-1:-1:-1;9206:23:1;;9055:180;-1:-1:-1;9055:180:1:o;9240:184::-;9310:6;9363:2;9351:9;9342:7;9338:23;9334:32;9331:52;;;9379:1;9376;9369:12;9331:52;-1:-1:-1;9402:16:1;;9240:184;-1:-1:-1;9240:184:1:o;9429:515::-;9515:6;9523;9531;9584:2;9572:9;9563:7;9559:23;9555:32;9552:52;;;9600:1;9597;9590:12;9552:52;9632:9;9626:16;9651:30;9675:5;9651:30;:::i;:::-;9750:2;9735:18;;9729:25;9700:5;;-1:-1:-1;9763:33:1;9729:25;9763:33;:::i;:::-;9867:2;9852:18;;9846:25;9815:7;;-1:-1:-1;9880:32:1;9846:25;9880:32;:::i;:::-;9931:7;9921:17;;;9429:515;;;;;:::o;10367:375::-;-1:-1:-1;;;;;10625:15:1;;;10607:34;;10677:15;;;;10672:2;10657:18;;10650:43;10724:2;10709:18;;10702:34;;;;10557:2;10542:18;;10367:375::o;10747:941::-;10969:4;11015:1;11011;11006:3;11002:11;10998:19;11056:2;11048:6;11044:15;11033:9;11026:34;11079:2;11129;11121:6;11117:15;11112:2;11101:9;11097:18;11090:43;11169:6;11164:2;11153:9;11149:18;11142:34;11212:6;11207:2;11196:9;11192:18;11185:34;11256:3;11250;11239:9;11235:19;11228:32;11289:6;11283:13;11269:27;;11333:6;11327:3;11316:9;11312:19;11305:35;11358:1;11368:141;11382:6;11379:1;11376:13;11368:141;;;11478:14;;;11474:23;;11468:30;11443:17;;;11462:3;11439:27;11432:67;11397:10;;11368:141;;;11527:6;11524:1;11521:13;11518:92;;;11598:1;11592:3;11583:6;11572:9;11568:22;11564:32;11557:43;11518:92;-1:-1:-1;;11671:2:1;11650:15;-1:-1:-1;;11646:29:1;11631:45;;;;11678:3;11627:55;;10747:941;-1:-1:-1;;;;;;10747:941:1:o;14206:351::-;14361:2;14346:18;;14394:1;14383:13;;14373:144;;14439:10;14434:3;14430:20;14427:1;14420:31;14474:4;14471:1;14464:15;14502:4;14499:1;14492:15;14373:144;14526:25;;;14206:351;:::o;16959:275::-;17030:2;17024:9;17095:2;17076:13;;-1:-1:-1;;17072:27:1;17060:40;;-1:-1:-1;;;;;17115:34:1;;17151:22;;;17112:62;17109:88;;;17177:18;;:::i;:::-;17213:2;17206:22;16959:275;;-1:-1:-1;16959:275:1:o;17239:183::-;17299:4;-1:-1:-1;;;;;17324:6:1;17321:30;17318:56;;;17354:18;;:::i;:::-;-1:-1:-1;17399:1:1;17395:14;17411:4;17391:25;;17239:183::o;17427:128::-;17467:3;17498:1;17494:6;17491:1;17488:13;17485:39;;;17504:18;;:::i;:::-;-1:-1:-1;17540:9:1;;17427:128::o;17560:217::-;17600:1;17626;17616:132;;17670:10;17665:3;17661:20;17658:1;17651:31;17705:4;17702:1;17695:15;17733:4;17730:1;17723:15;17616:132;-1:-1:-1;17762:9:1;;17560:217::o;17782:287::-;17822:7;-1:-1:-1;;;;;17915:2:1;17912:1;17908:10;17945:2;17942:1;17938:10;18001:3;17997:2;17993:12;17988:3;17985:21;17978:3;17971:11;17964:19;17960:47;17957:73;;;18010:18;;:::i;:::-;18050:13;;17782:287;-1:-1:-1;;;;17782:287:1:o;18074:168::-;18114:7;18180:1;18176;18172:6;18168:14;18165:1;18162:21;18157:1;18150:9;18143:17;18139:45;18136:71;;;18187:18;;:::i;:::-;-1:-1:-1;18227:9:1;;18074:168::o;18247:136::-;18286:3;18314:5;18304:39;;18323:18;;:::i;:::-;-1:-1:-1;;;18359:18:1;;18247:136::o;18388:135::-;18427:3;-1:-1:-1;;18448:17:1;;18445:43;;;18468:18;;:::i;:::-;-1:-1:-1;18515:1:1;18504:13;;18388:135::o;18528:127::-;18589:10;18584:3;18580:20;18577:1;18570:31;18620:4;18617:1;18610:15;18644:4;18641:1;18634:15;18660:127;18721:10;18716:3;18712:20;18709:1;18702:31;18752:4;18749:1;18742:15;18776:4;18773:1;18766:15;18792:127;18853:10;18848:3;18844:20;18841:1;18834:31;18884:4;18881:1;18874:15;18908:4;18905:1;18898:15;18924:127;18985:10;18980:3;18976:20;18973:1;18966:31;19016:4;19013:1;19006:15;19040:4;19037:1;19030:15;19056:146;-1:-1:-1;;;;;19135:5:1;19131:46;19124:5;19121:57;19111:85;;19192:1;19189;19182:12;19207:129;-1:-1:-1;;;;;19285:5:1;19281:30;19274:5;19271:41;19261:69;;19326:1;19323;19316:12

Metadata Hash

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