Contract 0x8c8d06991646a9701266794a385db4b576e2678d

Contract Overview

Balance:
0 MATIC
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x25f87bd66c7e5ca32bbe019c3769bd44896fd63ec6d0bbb33997405410814ef3Set Approval For...274785182022-08-05 3:33:193 days 7 hrs ago0x77d2f2789fb4d9186ca18d3d3aced7f7c9fe9a96 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000116905 2.500000008
0xc098673a48aecd01d6a10dc6b725eec70bdd03c8eaca1748a40cca5344a4a032Set URI257339982022-03-30 19:43:43130 days 15 hrs ago0x748dc7e76dfe83ac5b2d55a61fd8b85da90b08e6 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.001119736863 9.409
0xc65a95c84054438b929481fea6971eded785eacfa1e16b01292f5a96477d2eaaMint257339932022-03-30 19:43:18130 days 15 hrs ago0x748dc7e76dfe83ac5b2d55a61fd8b85da90b08e6 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000976208 9.7
0xc68871a78c07a822fc927647a07257f3c516e971022c5b7078301141c158d0ddApproove Proposa...257339842022-03-30 19:42:33130 days 15 hrs ago0x2b8e0f335b20aa0709843fee64d50564e02880be IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.001725959799 19.399999999
0x0e6edeb2620c43b7eb303fdfd2efd908e8ae1cac3eb35a156af76a3ed576ff87Propose257339682022-03-30 19:41:13130 days 15 hrs ago0x748dc7e76dfe83ac5b2d55a61fd8b85da90b08e6 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000743209153 2.425000011
0xc8f19b7a204b87e61b297905ae1951ec29e813794e9f019788381e1d5cc2e00cPropose257114172022-03-29 4:58:45132 days 6 hrs ago0xe0b3901a8d89134e272c9a4fe43e7da709a69881 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.001056603417 3.687120653
0x468ce0f9ef5a5a3cf829c220bad6040cb07c28e0a8b9dad93e28e0d255122caaApproove Proposa...256673272022-03-25 22:50:26135 days 12 hrs ago0x2b8e0f335b20aa0709843fee64d50564e02880be IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000054288368 2.213232037
0xc214a13692327b3c7e3bd9c1d738e2ffba6c4dfe0224b90ac71881ae15174b2eApproove Proposa...256673272022-03-25 22:50:26135 days 12 hrs ago0x2b8e0f335b20aa0709843fee64d50564e02880be IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000202242556 8.245038803
0x1c1547b90a870c84a992800bf206dfc733f50cc3403f5c04909e0c1dd24d27c2Approove Proposa...256673272022-03-25 22:50:26135 days 12 hrs ago0x2b8e0f335b20aa0709843fee64d50564e02880be IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000059482825 2.425000012
0x9e748de5879c0bf9f16028a843bb75e660ad9900ab1824acab7707905e851b49Set URI256672212022-03-25 22:41:35135 days 12 hrs ago0x77d2f2789fb4d9186ca18d3d3aced7f7c9fe9a96 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000178510501 1.500000009
0x8fbb5fac6b5e77533a35f61721579025a9ce8051b5af62e3a0fd987acf4586bcMint256672152022-03-25 22:41:05135 days 12 hrs ago0x77d2f2789fb4d9186ca18d3d3aced7f7c9fe9a96 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000180828001 1.500000009
0x3c441da41e9a2fa55dd878a36c05d248aad67087450249e13f2c7cbf48af1c47Approove Proposa...256671312022-03-25 22:34:03135 days 12 hrs ago0x249767c5ad21de5ba684adf79907bc3ee9ff3197 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000328139477 3.688328
0x94e9f1787e41b00e7872b43fd4f2255723c9f7927003220d7bfb56a8b8c60b02Propose256671172022-03-25 22:32:53135 days 12 hrs ago0x77d2f2789fb4d9186ca18d3d3aced7f7c9fe9a96 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000459717002 1.500000009
0xf304998b81cc19a4a047dc9e914094f1d49defa90267a27df20a427282d147e8Set URI256668872022-03-25 22:13:40135 days 13 hrs ago0xff9a0ee51d0cf809aa2ceb79d7058e269f7a37da IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000981213869 8.2450097
0xb0ecc65ae38fe8de12e0e985fedbed22d27d2dfcd990a9c0a24e3473553a901aMint256668812022-03-25 22:13:10135 days 13 hrs ago0xff9a0ee51d0cf809aa2ceb79d7058e269f7a37da IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000275061389 2.281682509
0xdfb21f5c59944b393b8d5f62a257e6cb5ce0c51ad6852a02743e5f41552e0900Approove Proposa...256668682022-03-25 22:12:04135 days 13 hrs ago0x249767c5ad21de5ba684adf79907bc3ee9ff3197 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000215744975 2.425000009
0x62ea1503e4270c56e71c8ed7c3c340f0887df81c154a2def732f336ba2ea4f5ePropose256665152022-03-25 21:42:34135 days 13 hrs ago0xff9a0ee51d0cf809aa2ceb79d7058e269f7a37da IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000678306927 2.213232035
0x361fc6a3b09c81de9f5f9beedc6356e4346b75175487a1adf686d8d05c147394Set URI256664122022-03-25 21:33:57135 days 13 hrs ago0x745c54172ea405230d026f8cfd50f9b124de3ebc IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000340538532 2.861500014
0x87218d3b15d2aa1921d85677c78a61206537adbc05ae2b304539dfd203089d94Set URI256658802022-03-25 20:49:29135 days 14 hrs ago0xb135ee2eef96b91b75b40f9410e48c70339046f9 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000178510501 1.500000011
0xe50b4a66b670ea335d130c2e53d347103348e8bc785d0f65c20fe7bb2766cd95Mint256656762022-03-25 20:32:26135 days 14 hrs ago0xb135ee2eef96b91b75b40f9410e48c70339046f9 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000426895275 3.541171239
0xa600366a48448f96c12666468dec35c07f79c08bf53e155066589e205470d9cfApproove Proposa...256656272022-03-25 20:28:20135 days 14 hrs ago0x2b8e0f335b20aa0709843fee64d50564e02880be IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000215744976 2.425000012
0xafd33c40e44fe663ea6b7fcc2217bb0cdde948f74bc5a25abe7cf94e758e071aMint256655562022-03-25 20:22:24135 days 15 hrs ago0x745c54172ea405230d026f8cfd50f9b124de3ebc IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000216057481 2.146835073
0xf162b6b431cc5023a5ff9e054aa677a78d68ea6719f205db5a350ef7edf8b627Approove Proposa...256655372022-03-25 20:20:49135 days 15 hrs ago0x2b8e0f335b20aa0709843fee64d50564e02880be IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000202994447 2.28168251
0xe55a04437635cbaceca31585801804870cac7ef038becfb2ea2113f707227ecaPropose256651372022-03-25 19:47:22135 days 15 hrs ago0x745c54172ea405230d026f8cfd50f9b124de3ebc IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000699285493 2.281682513
0x34a9dfc0b6b30f6b7c07ce78ff639ab31b8249a252b5ec6cbf8ecd688aea7c88Propose256649512022-03-25 19:31:49135 days 15 hrs ago0xb135ee2eef96b91b75b40f9410e48c70339046f9 IN  0x8c8d06991646a9701266794a385db4b576e2678d0 MATIC0.000678306927 2.213232036
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
newLYS2

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/utils/Address.sol


// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

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

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

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

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

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

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

// 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/IERC1155.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 IERC1155 is IERC165 {
    /**
     * @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/ERC1155/extensions/IERC1155MetadataURI.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)

pragma solidity ^0.8.0;


/**
 * @dev Interface of the optional ERC1155MetadataExtension interface, as defined
 * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155MetadataURI is IERC1155 {
    /**
     * @dev Returns the URI for token type `id`.
     *
     * If the `\{id\}` substring is present in the URI, it must be replaced by
     * clients with the actual token type ID.
     */
    function uri(uint256 id) external view returns (string memory);
}

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


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

pragma solidity ^0.8.0;







/**
 * @dev Implementation of the basic standard multi-token.
 * See https://eips.ethereum.org/EIPS/eip-1155
 * Originally based on code by Enjin: https://github.com/enjin/erc-1155
 *
 * _Available since v3.1._
 */
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
    using Address for address;

    // Mapping from token ID to account balances
    mapping(uint256 => mapping(address => uint256)) private _balances;

    // Mapping from account to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
    string private _uri;

    /**
     * @dev See {_setURI}.
     */
    constructor(string memory uri_) {
        _setURI(uri_);
    }

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC1155).interfaceId ||
            interfaceId == type(IERC1155MetadataURI).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    /**
     * @dev See {IERC1155MetadataURI-uri}.
     *
     * This implementation returns the same URI for *all* token types. It relies
     * on the token type ID substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * Clients calling this function must replace the `\{id\}` substring with the
     * actual token type ID.
     */
    function uri(uint256) public view virtual override returns (string memory) {
        return _uri;
    }

    /**
     * @dev See {IERC1155-balanceOf}.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
        require(account != address(0), "ERC1155: balance query for the zero address");
        return _balances[id][account];
    }

    /**
     * @dev See {IERC1155-balanceOfBatch}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
        public
        view
        virtual
        override
        returns (uint256[] memory)
    {
        require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");

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

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

        return batchBalances;
    }

    /**
     * @dev See {IERC1155-setApprovalForAll}.
     */
    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_msgSender(), operator, approved);
    }

    /**
     * @dev See {IERC1155-isApprovedForAll}.
     */
    function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[account][operator];
    }

    /**
     * @dev See {IERC1155-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );
        _safeTransferFrom(from, to, id, amount, data);
    }

    /**
     * @dev See {IERC1155-safeBatchTransferFrom}.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: transfer caller is not owner nor approved"
        );
        _safeBatchTransferFrom(from, to, ids, amounts, data);
    }

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - `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 memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data);

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }
        _balances[id][to] += amount;

        emit TransferSingle(operator, from, to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - 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[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; ++i) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
            _balances[id][to] += amount;
        }

        emit TransferBatch(operator, from, to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
    }

    /**
     * @dev Sets a new URI for all token types, by relying on the token type ID
     * substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * By this mechanism, any occurrence of the `\{id\}` substring in either the
     * URI or any of the amounts in the JSON file at said URI will be replaced by
     * clients with the token type ID.
     *
     * For example, the `https://token-cdn-domain/\{id\}.json` URI would be
     * interpreted by clients as
     * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
     * for token type ID 0x4cce0.
     *
     * See {uri}.
     *
     * Because these URIs cannot be meaningfully represented by the {URI} event,
     * this function emits no events.
     */
    function _setURI(string memory newuri) internal virtual {
        _uri = newuri;
    }

    /**
     * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, _asSingletonArray(id), _asSingletonArray(amount), data);

        _balances[id][to] += amount;
        emit TransferSingle(operator, address(0), to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
     *
     * 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 _mintBatch(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; i++) {
            _balances[ids[i]][to] += amounts[i];
        }

        emit TransferBatch(operator, address(0), to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
    }

    /**
     * @dev Destroys `amount` tokens of token type `id` from `from`
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `from` must have at least `amount` tokens of token type `id`.
     */
    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), _asSingletonArray(id), _asSingletonArray(amount), "");

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }

        emit TransferSingle(operator, from, address(0), id, amount);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     */
    function _burnBatch(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");

        for (uint256 i = 0; i < ids.length; i++) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
        }

        emit TransferBatch(operator, from, address(0), ids, amounts);
    }

    /**
     * @dev Approve `operator` to operate on all of `owner` tokens
     *
     * Emits a {ApprovalForAll} event.
     */
    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC1155: setting approval status for self");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    /**
     * @dev Hook that is called before any token transfer. This includes minting
     * and burning, as well as batched variants.
     *
     * The same hook is called on both single and batched variants. For single
     * transfers, the length of the `id` and `amount` arrays will be 1.
     *
     * Calling conditions (for each `id` and `amount` pair):
     *
     * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * of token type `id` will be  transferred to `to`.
     * - When `from` is zero, `amount` tokens of token type `id` will be minted
     * for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
     * will be burned.
     * - `from` and `to` are never both zero.
     * - `ids` and `amounts` have the same, non-zero length.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {}

    function _doSafeTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, 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 _doSafeBatchTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, 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");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;

        return array;
    }
}

// File: newLYS2.sol


pragma solidity ^0.8.4;


interface Impact {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

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

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

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

contract newLYS2 is ERC1155 {
    address owner;
    uint256 _tokenIds = 1;
    uint256 proposalId = 1;
    Impact impact;

    enum Status {
        pending,
        approoved,
        rejected
    }

    struct ProposalStruct {
        uint256 id;
        string link;
        uint256 LYStokenAmount;
        Status status;
    }
    ProposalStruct[] proposalArray;
    mapping(uint256 => string) public tokenURI;
    mapping(uint256 => address) public ownerOfToken;
    mapping(uint256 => string) public proposalIdtoUri;
    mapping(uint256 => address) public proposorAddress;
    mapping(uint256 => bool) public approove;
    mapping(address => uint256) public proposalMapId;
    mapping(address=>uint) public hasLYSId;
    event proposalSubmitEvent(
        uint256 indexed id,
        address indexed propsal,
        string indexed proposalUri
    );
    event approovedEvent(
        uint256 indexed id,
        address indexed propsal,
        string indexed proposalUri
    );

    constructor(address _impactContractAddress) ERC1155("") {
        impact = Impact(_impactContractAddress);
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "You are not the owner");
        _;
    }
    function isProposalApproved(uint id) view external returns(bool){
        return approove[id];
    }
    function getPropsalLink(uint256 _id) external view returns (string memory) {
        return proposalIdtoUri[_id];
    }
    function getLYSTokenId(address addrr) view public returns(uint){
        return hasLYSId[addrr];
    }
    function getProposalAddress(uint256 _id) external view returns (address) {
        return proposorAddress[_id];
    }

    function getAllProposal() external view returns (ProposalStruct[] memory) {
        return proposalArray;
    }
    function changeImpactAddress(address newImpact) external onlyOwner{
        impact = Impact(newImpact);
    }
    function propose(string memory detailUri, uint256 amount) external {
        require(proposalMapId[msg.sender]==0,"Only one proposal can be issued by per address");
        uint256 currentId = proposalId;
        proposalIdtoUri[currentId] = detailUri;
        proposorAddress[currentId] = msg.sender;
        proposalArray.push(
            ProposalStruct({
                id: currentId,
                link: detailUri,
                LYStokenAmount: amount,
                status: Status.pending
            })
        );
        emit proposalSubmitEvent(currentId, msg.sender, detailUri);
        proposalId++;
        proposalMapId[msg.sender] = currentId;
    }

    function getProposalId(address addrr) public view returns (uint256) {
        return proposalMapId[addrr];
    }

    function approoveProposal(uint256 _proposalId, bool success) external {
        require(approove[_proposalId] == false, "proposal already approoved");
        bool hasImpact = isImpactHolder(msg.sender);
        require(hasImpact == true, "you do not have impact token");
        ProposalStruct storage temp = proposalArray[_proposalId - 1];
        require(
            temp.status == Status.pending,
            "Proposal is already checked and considered"
        );
        if (success == true) {
            approove[_proposalId] = true;
            temp.status = Status.approoved;
            emit approovedEvent(_proposalId, msg.sender, temp.link);
        } else {
            approove[_proposalId] = false;
            temp.status = Status.rejected;
        }
    }

    function isImpactHolder(address caller) internal view returns (bool) {
        uint256 balance = impact.balanceOf(caller);
        return balance > 0;
    }

    function mint(uint256 _proposalId, uint256 amount)
        external
    {
        require(
            msg.sender == proposorAddress[_proposalId],
            "You are not the owner of this proposalId"
        );
        require(
            approove[_proposalId] == true,
            "This proposal is not approoved by the impact token holders"
        );
        ProposalStruct memory temp = proposalArray[_proposalId - 1];
        require(
            amount <= temp.LYStokenAmount,
            "You cannot mint these many LYS tokes"
        );
        require(hasLYSId[msg.sender]==0,"One address can mint maximum one LYS token");
        uint256 currentId = _tokenIds;
        _mint(msg.sender, currentId, amount, "");
        ownerOfToken[currentId] = msg.sender;
        hasLYSId[msg.sender]=currentId;
        _tokenIds++;
    }

    function setURI(uint _LYSTokenId, string memory newuri) public {
        // require(
        //     msg.sender == proposorAddress[_proposald],
        //     "You are not the owner of this proposalId"
        // );
        // require(
        //     approove[_proposald] == true,
        //     "This proposal is not approoved by the impact token holders"
        // );
        require(
            msg.sender == ownerOfToken[_LYSTokenId],
            "You do not contain token of this Id"
        );
        require(bytes(tokenURI[_LYSTokenId]).length == 0, "URI already set");
        tokenURI[_LYSTokenId] = newuri;
        emit URI(newuri, _LYSTokenId);
    }

    function uri(uint256 _id) public view override returns (string memory) {
        return tokenURI[_id];
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_impactContractAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"propsal","type":"address"},{"indexed":true,"internalType":"string","name":"proposalUri","type":"string"}],"name":"approovedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"propsal","type":"address"},{"indexed":true,"internalType":"string","name":"proposalUri","type":"string"}],"name":"proposalSubmitEvent","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"approove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"}],"name":"approoveProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImpact","type":"address"}],"name":"changeImpactAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllProposal","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"link","type":"string"},{"internalType":"uint256","name":"LYStokenAmount","type":"uint256"},{"internalType":"enum newLYS2.Status","name":"status","type":"uint8"}],"internalType":"struct newLYS2.ProposalStruct[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addrr","type":"address"}],"name":"getLYSTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getProposalAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addrr","type":"address"}],"name":"getProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getPropsalLink","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasLYSId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isProposalApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownerOfToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalIdtoUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"proposalMapId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"detailUri","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposorAddress","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":"amounts","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":"amount","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":"uint256","name":"_LYSTokenId","type":"uint256"},{"internalType":"string","name":"newuri","type":"string"}],"name":"setURI","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

6080604052600160045560016005553480156200001b57600080fd5b5060405162004b3b38038062004b3b8339818101604052810190620000419190620001cf565b604051806020016040528060008152506200006281620000ec60201b60201c565b5080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002b9565b80600290805190602001906200010492919062000108565b5050565b828054620001169062000235565b90600052602060002090601f0160209004810192826200013a576000855562000186565b82601f106200015557805160ff191683800117855562000186565b8280016001018555821562000186579182015b828111156200018557825182559160200191906001019062000168565b5b50905062000195919062000199565b5090565b5b80821115620001b45760008160009055506001016200019a565b5090565b600081519050620001c9816200029f565b92915050565b600060208284031215620001e857620001e76200029a565b5b6000620001f884828501620001b8565b91505092915050565b60006200020e8262000215565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200024e57607f821691505b602082108114156200026557620002646200026b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620002aa8162000201565b8114620002b657600080fd5b50565b61487280620002c96000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063862440e2116100de578063a7b8e95011610097578063c87b56dd11610071578063c87b56dd14610528578063dacf80d014610558578063e985e9c514610574578063f242432a146105a45761018d565b8063a7b8e950146104ac578063c3f18b83146104dc578063c57ac5d6146104f85761018d565b8063862440e2146103c857806387ec064b146103e45780638d1cb8b5146104145780639abcc0cc14610430578063a10f554f14610460578063a22cb465146104905761018d565b80631b2ef1ca1161014b5780634334498311610125578063433449831461031a57806343e33452146103385780634e1273f414610368578063852b1c04146103985761018d565b80631b2ef1ca146102b25780632eb2c2d6146102ce5780633cf0a9b1146102ea5761018d565b8062fdd58e1461019257806301ffc9a7146101c25780630238b799146101f25780630e89341c146102225780631128bbfd14610252578063169c54f114610282575b600080fd5b6101ac60048036038101906101a79190612e80565b6105c0565b6040516101b99190613bb1565b60405180910390f35b6101dc60048036038101906101d79190612f38565b610689565b6040516101e991906138b4565b60405180910390f35b61020c60048036038101906102079190612fee565b61076b565b604051610219919061375c565b60405180910390f35b61023c60048036038101906102379190612fee565b61079e565b60405161024991906138cf565b60405180910390f35b61026c60048036038101906102679190612fee565b610843565b604051610279919061375c565b60405180910390f35b61029c60048036038101906102979190612c6d565b610880565b6040516102a99190613bb1565b60405180910390f35b6102cc60048036038101906102c791906130e4565b6108c9565b005b6102e860048036038101906102e39190612cda565b610c8e565b005b61030460048036038101906102ff9190612fee565b610d2f565b60405161031191906138cf565b60405180910390f35b610322610dcf565b60405161032f9190613839565b60405180910390f35b610352600480360381019061034d9190612c6d565b610f0f565b60405161035f9190613bb1565b60405180910390f35b610382600480360381019061037d9190612ec0565b610f27565b60405161038f919061385b565b60405180910390f35b6103b260048036038101906103ad9190612c6d565b611040565b6040516103bf9190613bb1565b60405180910390f35b6103e260048036038101906103dd9190613088565b611089565b005b6103fe60048036038101906103f99190612fee565b6111f0565b60405161040b91906138cf565b60405180910390f35b61042e60048036038101906104299190612f92565b611295565b005b61044a60048036038101906104459190612fee565b611515565b60405161045791906138b4565b60405180910390f35b61047a60048036038101906104759190612fee565b61153f565b60405161048791906138b4565b60405180910390f35b6104aa60048036038101906104a59190612e40565b61155f565b005b6104c660048036038101906104c19190612c6d565b611575565b6040516104d39190613bb1565b60405180910390f35b6104f660048036038101906104f19190612c6d565b61158d565b005b610512600480360381019061050d9190612fee565b611661565b60405161051f919061375c565b60405180910390f35b610542600480360381019061053d9190612fee565b611694565b60405161054f91906138cf565b60405180910390f35b610572600480360381019061056d9190613048565b611734565b005b61058e60048036038101906105899190612c9a565b6119c1565b60405161059b91906138b4565b60405180910390f35b6105be60048036038101906105b99190612da9565b611a55565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062890613951565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061075457507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610764575061076382611af6565b5b9050919050565b600b6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606008600083815260200190815260200160002080546107be90613f14565b80601f01602080910402602001604051908101604052809291908181526020018280546107ea90613f14565b80156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b50505050509050919050565b6000600b600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096190613ad1565b60405180910390fd5b60011515600c600084815260200190815260200160002060009054906101000a900460ff161515146109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c890613a91565b60405180910390fd5b600060076001846109e29190613e05565b815481106109f3576109f261404d565b5b906000526020600020906004020160405180608001604052908160008201548152602001600182018054610a2690613f14565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5290613f14565b8015610a9f5780601f10610a7457610100808354040283529160200191610a9f565b820191906000526020600020905b815481529060010190602001808311610a8257829003601f168201915b50505050508152602001600282015481526020016003820160009054906101000a900460ff166002811115610ad757610ad6613fef565b5b6002811115610ae957610ae8613fef565b5b8152505090508060400151821115610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90613931565b60405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90613971565b60405180910390fd5b60006004549050610bda33828560405180602001604052806000815250611b60565b336009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060046000815480929190610c8390613f77565b919050555050505050565b610c96611cf6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610cdc5750610cdb85610cd6611cf6565b6119c1565b5b610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290613a71565b60405180910390fd5b610d288585858585611cfe565b5050505050565b600a6020528060005260406000206000915090508054610d4e90613f14565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7a90613f14565b8015610dc75780601f10610d9c57610100808354040283529160200191610dc7565b820191906000526020600020905b815481529060010190602001808311610daa57829003601f168201915b505050505081565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610f06578382906000526020600020906004020160405180608001604052908160008201548152602001600182018054610e3090613f14565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5c90613f14565b8015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b50505050508152602001600282015481526020016003820160009054906101000a900460ff166002811115610ee157610ee0613fef565b5b6002811115610ef357610ef2613fef565b5b8152505081526020019060010190610df3565b50505050905090565b600d6020528060005260406000206000915090505481565b60608151835114610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6490613b31565b60405180910390fd5b6000835167ffffffffffffffff811115610f8a57610f8961407c565b5b604051908082528060200260200182016040528015610fb85781602001602082028036833780820191505090505b50905060005b845181101561103557611005858281518110610fdd57610fdc61404d565b5b6020026020010151858381518110610ff857610ff761404d565b5b60200260200101516105c0565b8282815181106110185761101761404d565b5b6020026020010181815250508061102e90613f77565b9050610fbe565b508091505092915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6009600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613af1565b60405180910390fd5b600060086000848152602001908152602001600020805461114a90613f14565b90501461118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390613991565b60405180910390fd5b806008600084815260200190815260200160002090805190602001906111b3929190612930565b50817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b826040516111e491906138cf565b60405180910390a25050565b6060600a6000838152602001908152602001600020805461121090613f14565b80601f016020809104026020016040519081016040528092919081815260200182805461123c90613f14565b80156112895780601f1061125e57610100808354040283529160200191611289565b820191906000526020600020905b81548152906001019060200180831161126c57829003601f168201915b50505050509050919050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90613a31565b60405180910390fd5b6000600554905082600a60008381526020019081526020016000209080519060200190611345929190612930565b5033600b600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060076040518060800160405280838152602001858152602001848152602001600060028111156113cb576113ca613fef565b5b815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000155602082015181600101908051906020019061141d929190612930565b506040820151816002015560608201518160030160006101000a81548160ff0219169083600281111561145357611452613fef565b5b0217905550505082604051611468919061372e565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff16827faa0c59e71ea37dfb08476219854dd47540431224f0f0c71a6377cae4aea1eb7a60405160405180910390a4600560008154809291906114c790613f77565b919050555080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600c600083815260200190815260200160002060009054906101000a900460ff169050919050565b600c6020528060005260406000206000915054906101000a900460ff1681565b61157161156a611cf6565b8383612012565b5050565b600e6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614906139f1565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860205280600052604060002060009150905080546116b390613f14565b80601f01602080910402602001604051908101604052809291908181526020018280546116df90613f14565b801561172c5780601f106117015761010080835404028352916020019161172c565b820191906000526020600020905b81548152906001019060200180831161170f57829003601f168201915b505050505081565b60001515600c600084815260200190815260200160002060009054906101000a900460ff1615151461179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290613b91565b60405180910390fd5b60006117a63361217f565b905060011515811515146117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e690613a11565b60405180910390fd5b600060076001856118009190613e05565b815481106118115761181061404d565b5b906000526020600020906004020190506000600281111561183557611834613fef565b5b8160030160009054906101000a900460ff16600281111561185957611858613fef565b5b14611899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611890906139d1565b60405180910390fd5b600115158315151415611961576001600c600086815260200190815260200160002060006101000a81548160ff02191690831515021790555060018160030160006101000a81548160ff021916908360028111156118fa576118f9613fef565b5b0217905550806001016040516119109190613745565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff16857f22f44d3a8e4da5c6b2ba377d86c3f6e91dc26dd57f85ab70f5bfc7d2b8143fd960405160405180910390a46119bb565b6000600c600086815260200190815260200160002060006101000a81548160ff02191690831515021790555060028160030160006101000a81548160ff021916908360028111156119b5576119b4613fef565b5b02179055505b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a5d611cf6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611aa35750611aa285611a9d611cf6565b6119c1565b5b611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906139b1565b60405180910390fd5b611aef858585858561223b565b5050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613b71565b60405180910390fd5b6000611bda611cf6565b9050611bfb81600087611bec886124bd565b611bf5886124bd565b87612537565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c5a9190613daf565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611cd8929190613bcc565b60405180910390a4611cef8160008787878761253f565b5050505050565b600033905090565b8151835114611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613b51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613a51565b60405180910390fd5b6000611dbc611cf6565b9050611dcc818787878787612537565b60005b8451811015611f7d576000858281518110611ded57611dec61404d565b5b602002602001015190506000858381518110611e0c57611e0b61404d565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea490613ab1565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f629190613daf565b9250508190555050505080611f7690613f77565b9050611dcf565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611ff492919061387d565b60405180910390a461200a818787878787612726565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207890613b11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161217291906138b4565b60405180910390a3505050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016121dd919061375c565b60206040518083038186803b1580156121f557600080fd5b505afa158015612209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222d919061301b565b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a290613a51565b60405180910390fd5b60006122b5611cf6565b90506122d58187876122c6886124bd565b6122cf886124bd565b87612537565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508381101561236c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236390613ab1565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124219190613daf565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161249e929190613bcc565b60405180910390a46124b482888888888861253f565b50505050505050565b60606000600167ffffffffffffffff8111156124dc576124db61407c565b5b60405190808252806020026020018201604052801561250a5781602001602082028036833780820191505090505b50905082816000815181106125225761252161404d565b5b60200260200101818152505080915050919050565b505050505050565b61255e8473ffffffffffffffffffffffffffffffffffffffff1661290d565b1561271e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016125a49594939291906137df565b602060405180830381600087803b1580156125be57600080fd5b505af19250505080156125ef57506040513d601f19601f820116820180604052508101906125ec9190612f65565b60015b612695576125fb6140ab565b806308c379a014156126585750612610614736565b8061261b575061265a565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f91906138cf565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c906138f1565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461271c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271390613911565b60405180910390fd5b505b505050505050565b6127458473ffffffffffffffffffffffffffffffffffffffff1661290d565b15612905578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161278b959493929190613777565b602060405180830381600087803b1580156127a557600080fd5b505af19250505080156127d657506040513d601f19601f820116820180604052508101906127d39190612f65565b60015b61287c576127e26140ab565b806308c379a0141561283f57506127f7614736565b806128025750612841565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283691906138cf565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612873906138f1565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90613911565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b82805461293c90613f14565b90600052602060002090601f01602090048101928261295e57600085556129a5565b82601f1061297757805160ff19168380011785556129a5565b828001600101855582156129a5579182015b828111156129a4578251825591602001919060010190612989565b5b5090506129b291906129b6565b5090565b5b808211156129cf5760008160009055506001016129b7565b5090565b60006129e66129e184613c1a565b613bf5565b90508083825260208201905082856020860282011115612a0957612a086140d2565b5b60005b85811015612a395781612a1f8882612b37565b845260208401935060208301925050600181019050612a0c565b5050509392505050565b6000612a56612a5184613c46565b613bf5565b90508083825260208201905082856020860282011115612a7957612a786140d2565b5b60005b85811015612aa95781612a8f8882612c43565b845260208401935060208301925050600181019050612a7c565b5050509392505050565b6000612ac6612ac184613c72565b613bf5565b905082815260208101848484011115612ae257612ae16140d7565b5b612aed848285613ed2565b509392505050565b6000612b08612b0384613ca3565b613bf5565b905082815260208101848484011115612b2457612b236140d7565b5b612b2f848285613ed2565b509392505050565b600081359050612b46816147e0565b92915050565b600082601f830112612b6157612b606140cd565b5b8135612b718482602086016129d3565b91505092915050565b600082601f830112612b8f57612b8e6140cd565b5b8135612b9f848260208601612a43565b91505092915050565b600081359050612bb7816147f7565b92915050565b600081359050612bcc8161480e565b92915050565b600081519050612be18161480e565b92915050565b600082601f830112612bfc57612bfb6140cd565b5b8135612c0c848260208601612ab3565b91505092915050565b600082601f830112612c2a57612c296140cd565b5b8135612c3a848260208601612af5565b91505092915050565b600081359050612c5281614825565b92915050565b600081519050612c6781614825565b92915050565b600060208284031215612c8357612c826140e1565b5b6000612c9184828501612b37565b91505092915050565b60008060408385031215612cb157612cb06140e1565b5b6000612cbf85828601612b37565b9250506020612cd085828601612b37565b9150509250929050565b600080600080600060a08688031215612cf657612cf56140e1565b5b6000612d0488828901612b37565b9550506020612d1588828901612b37565b945050604086013567ffffffffffffffff811115612d3657612d356140dc565b5b612d4288828901612b7a565b935050606086013567ffffffffffffffff811115612d6357612d626140dc565b5b612d6f88828901612b7a565b925050608086013567ffffffffffffffff811115612d9057612d8f6140dc565b5b612d9c88828901612be7565b9150509295509295909350565b600080600080600060a08688031215612dc557612dc46140e1565b5b6000612dd388828901612b37565b9550506020612de488828901612b37565b9450506040612df588828901612c43565b9350506060612e0688828901612c43565b925050608086013567ffffffffffffffff811115612e2757612e266140dc565b5b612e3388828901612be7565b9150509295509295909350565b60008060408385031215612e5757612e566140e1565b5b6000612e6585828601612b37565b9250506020612e7685828601612ba8565b9150509250929050565b60008060408385031215612e9757612e966140e1565b5b6000612ea585828601612b37565b9250506020612eb685828601612c43565b9150509250929050565b60008060408385031215612ed757612ed66140e1565b5b600083013567ffffffffffffffff811115612ef557612ef46140dc565b5b612f0185828601612b4c565b925050602083013567ffffffffffffffff811115612f2257612f216140dc565b5b612f2e85828601612b7a565b9150509250929050565b600060208284031215612f4e57612f4d6140e1565b5b6000612f5c84828501612bbd565b91505092915050565b600060208284031215612f7b57612f7a6140e1565b5b6000612f8984828501612bd2565b91505092915050565b60008060408385031215612fa957612fa86140e1565b5b600083013567ffffffffffffffff811115612fc757612fc66140dc565b5b612fd385828601612c15565b9250506020612fe485828601612c43565b9150509250929050565b600060208284031215613004576130036140e1565b5b600061301284828501612c43565b91505092915050565b600060208284031215613031576130306140e1565b5b600061303f84828501612c58565b91505092915050565b6000806040838503121561305f5761305e6140e1565b5b600061306d85828601612c43565b925050602061307e85828601612ba8565b9150509250929050565b6000806040838503121561309f5761309e6140e1565b5b60006130ad85828601612c43565b925050602083013567ffffffffffffffff8111156130ce576130cd6140dc565b5b6130da85828601612c15565b9150509250929050565b600080604083850312156130fb576130fa6140e1565b5b600061310985828601612c43565b925050602061311a85828601612c43565b9150509250929050565b600061313083836136ad565b905092915050565b60006131448383613710565b60208301905092915050565b61315981613e39565b82525050565b600061316a82613d09565b6131748185613d4f565b93508360208202850161318685613cd4565b8060005b858110156131c257848403895281516131a38582613124565b94506131ae83613d35565b925060208a0199505060018101905061318a565b50829750879550505050505092915050565b60006131df82613d14565b6131e98185613d60565b93506131f483613ce4565b8060005b8381101561322557815161320c8882613138565b975061321783613d42565b9250506001810190506131f8565b5085935050505092915050565b61323b81613e4b565b82525050565b600061324c82613d1f565b6132568185613d71565b9350613266818560208601613ee1565b61326f816140e6565b840191505092915050565b61328381613ec0565b82525050565b600061329482613d2a565b61329e8185613d82565b93506132ae818560208601613ee1565b6132b7816140e6565b840191505092915050565b60006132cd82613d2a565b6132d78185613d93565b93506132e7818560208601613ee1565b6132f0816140e6565b840191505092915050565b600061330682613d2a565b6133108185613da4565b9350613320818560208601613ee1565b80840191505092915050565b6000815461333981613f14565b6133438186613da4565b9450600182166000811461335e576001811461336f576133a2565b60ff198316865281860193506133a2565b61337885613cf4565b60005b8381101561339a5781548189015260018201915060208101905061337b565b838801955050505b50505092915050565b60006133b8603483613d93565b91506133c382614104565b604082019050919050565b60006133db602883613d93565b91506133e682614153565b604082019050919050565b60006133fe602483613d93565b9150613409826141a2565b604082019050919050565b6000613421602b83613d93565b915061342c826141f1565b604082019050919050565b6000613444602a83613d93565b915061344f82614240565b604082019050919050565b6000613467600f83613d93565b91506134728261428f565b602082019050919050565b600061348a602983613d93565b9150613495826142b8565b604082019050919050565b60006134ad602a83613d93565b91506134b882614307565b604082019050919050565b60006134d0601583613d93565b91506134db82614356565b602082019050919050565b60006134f3601c83613d93565b91506134fe8261437f565b602082019050919050565b6000613516602e83613d93565b9150613521826143a8565b604082019050919050565b6000613539602583613d93565b9150613544826143f7565b604082019050919050565b600061355c603283613d93565b915061356782614446565b604082019050919050565b600061357f603a83613d93565b915061358a82614495565b604082019050919050565b60006135a2602a83613d93565b91506135ad826144e4565b604082019050919050565b60006135c5602883613d93565b91506135d082614533565b604082019050919050565b60006135e8602383613d93565b91506135f382614582565b604082019050919050565b600061360b602983613d93565b9150613616826145d1565b604082019050919050565b600061362e602983613d93565b915061363982614620565b604082019050919050565b6000613651602883613d93565b915061365c8261466f565b604082019050919050565b6000613674602183613d93565b915061367f826146be565b604082019050919050565b6000613697601a83613d93565b91506136a28261470d565b602082019050919050565b60006080830160008301516136c56000860182613710565b50602083015184820360208601526136dd8282613289565b91505060408301516136f26040860182613710565b506060830151613705606086018261327a565b508091505092915050565b61371981613eb6565b82525050565b61372881613eb6565b82525050565b600061373a82846132fb565b915081905092915050565b6000613751828461332c565b915081905092915050565b60006020820190506137716000830184613150565b92915050565b600060a08201905061378c6000830188613150565b6137996020830187613150565b81810360408301526137ab81866131d4565b905081810360608301526137bf81856131d4565b905081810360808301526137d38184613241565b90509695505050505050565b600060a0820190506137f46000830188613150565b6138016020830187613150565b61380e604083018661371f565b61381b606083018561371f565b818103608083015261382d8184613241565b90509695505050505050565b60006020820190508181036000830152613853818461315f565b905092915050565b6000602082019050818103600083015261387581846131d4565b905092915050565b6000604082019050818103600083015261389781856131d4565b905081810360208301526138ab81846131d4565b90509392505050565b60006020820190506138c96000830184613232565b92915050565b600060208201905081810360008301526138e981846132c2565b905092915050565b6000602082019050818103600083015261390a816133ab565b9050919050565b6000602082019050818103600083015261392a816133ce565b9050919050565b6000602082019050818103600083015261394a816133f1565b9050919050565b6000602082019050818103600083015261396a81613414565b9050919050565b6000602082019050818103600083015261398a81613437565b9050919050565b600060208201905081810360008301526139aa8161345a565b9050919050565b600060208201905081810360008301526139ca8161347d565b9050919050565b600060208201905081810360008301526139ea816134a0565b9050919050565b60006020820190508181036000830152613a0a816134c3565b9050919050565b60006020820190508181036000830152613a2a816134e6565b9050919050565b60006020820190508181036000830152613a4a81613509565b9050919050565b60006020820190508181036000830152613a6a8161352c565b9050919050565b60006020820190508181036000830152613a8a8161354f565b9050919050565b60006020820190508181036000830152613aaa81613572565b9050919050565b60006020820190508181036000830152613aca81613595565b9050919050565b60006020820190508181036000830152613aea816135b8565b9050919050565b60006020820190508181036000830152613b0a816135db565b9050919050565b60006020820190508181036000830152613b2a816135fe565b9050919050565b60006020820190508181036000830152613b4a81613621565b9050919050565b60006020820190508181036000830152613b6a81613644565b9050919050565b60006020820190508181036000830152613b8a81613667565b9050919050565b60006020820190508181036000830152613baa8161368a565b9050919050565b6000602082019050613bc6600083018461371f565b92915050565b6000604082019050613be1600083018561371f565b613bee602083018461371f565b9392505050565b6000613bff613c10565b9050613c0b8282613f46565b919050565b6000604051905090565b600067ffffffffffffffff821115613c3557613c3461407c565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613c6157613c6061407c565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613c8d57613c8c61407c565b5b613c96826140e6565b9050602081019050919050565b600067ffffffffffffffff821115613cbe57613cbd61407c565b5b613cc7826140e6565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613dba82613eb6565b9150613dc583613eb6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dfa57613df9613fc0565b5b828201905092915050565b6000613e1082613eb6565b9150613e1b83613eb6565b925082821015613e2e57613e2d613fc0565b5b828203905092915050565b6000613e4482613e96565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050613e91826147cc565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613ecb82613e83565b9050919050565b82818337600083830152505050565b60005b83811015613eff578082015181840152602081019050613ee4565b83811115613f0e576000848401525b50505050565b60006002820490506001821680613f2c57607f821691505b60208210811415613f4057613f3f61401e565b5b50919050565b613f4f826140e6565b810181811067ffffffffffffffff82111715613f6e57613f6d61407c565b5b80604052505050565b6000613f8282613eb6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613fb557613fb4613fc0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156140ca5760046000803e6140c76000516140f7565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f596f752063616e6e6f74206d696e74207468657365206d616e79204c5953207460008201527f6f6b657300000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f6e6520616464726573732063616e206d696e74206d6178696d756d206f6e6560008201527f204c595320746f6b656e00000000000000000000000000000000000000000000602082015250565b7f55524920616c7265616479207365740000000000000000000000000000000000600082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f50726f706f73616c20697320616c726561647920636865636b656420616e642060008201527f636f6e7369646572656400000000000000000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e65720000000000000000000000600082015250565b7f796f7520646f206e6f74206861766520696d7061637420746f6b656e00000000600082015250565b7f4f6e6c79206f6e652070726f706f73616c2063616e206265206973737565642060008201527f6279207065722061646472657373000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f546869732070726f706f73616c206973206e6f7420617070726f6f766564206260008201527f792074686520696d7061637420746f6b656e20686f6c64657273000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320707260008201527f6f706f73616c4964000000000000000000000000000000000000000000000000602082015250565b7f596f7520646f206e6f7420636f6e7461696e20746f6b656e206f66207468697360008201527f2049640000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f70726f706f73616c20616c726561647920617070726f6f766564000000000000600082015250565b600060443d1015614746576147c9565b61474e613c10565b60043d036004823e80513d602482011167ffffffffffffffff821117156147765750506147c9565b808201805167ffffffffffffffff81111561479457505050506147c9565b80602083010160043d0385018111156147b15750505050506147c9565b6147c082602001850186613f46565b82955050505050505b90565b600381106147dd576147dc613fef565b5b50565b6147e981613e39565b81146147f457600080fd5b50565b61480081613e4b565b811461480b57600080fd5b50565b61481781613e57565b811461482257600080fd5b50565b61482e81613eb6565b811461483957600080fd5b5056fea26469706673582212200d206447571fb08219b65b5fa568c3816f657d88c1ac084519147de2b5add18c64736f6c6343000807003300000000000000000000000027717a752d65f1f05fcad8e64794b0bc5c8bf96d

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

00000000000000000000000027717a752d65f1f05fcad8e64794b0bc5c8bf96d

-----Decoded View---------------
Arg [0] : _impactContractAddress (address): 0x27717a752d65f1f05fcad8e64794b0bc5c8bf96d

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000027717a752d65f1f05fcad8e64794b0bc5c8bf96d


Deployed ByteCode Sourcemap

35206:5447:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20880:231;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19903:310;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35756:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;40540:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;36842:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;37899:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;38987:858;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22819:442;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;35700:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;36969:113;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35860:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21277:524;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;36732:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39853:679;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;36605:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;37205:686;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;36497:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35813:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21874:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;35915:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;37088:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;35646:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35597:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;38021:791;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22101:168;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22341:401;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20880:231;20966:7;21013:1;20994:21;;:7;:21;;;;20986:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;21081:9;:13;21091:2;21081:13;;;;;;;;;;;:22;21095:7;21081:22;;;;;;;;;;;;;;;;21074:29;;20880:231;;;;:::o;19903:310::-;20005:4;20057:26;20042:41;;;:11;:41;;;;:110;;;;20115:37;20100:52;;;:11;:52;;;;20042:110;:163;;;;20169:36;20193:11;20169:23;:36::i;:::-;20042:163;20022:183;;19903:310;;;:::o;35756:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;40540:110::-;40596:13;40629:8;:13;40638:3;40629:13;;;;;;;;;;;40622:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40540:110;;;:::o;36842:119::-;36906:7;36933:15;:20;36949:3;36933:20;;;;;;;;;;;;;;;;;;;;;36926:27;;36842:119;;;:::o;37899:114::-;37958:7;37985:13;:20;37999:5;37985:20;;;;;;;;;;;;;;;;37978:27;;37899:114;;;:::o;38987:858::-;39108:15;:28;39124:11;39108:28;;;;;;;;;;;;;;;;;;;;;39094:42;;:10;:42;;;39072:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;39262:4;39237:29;;:8;:21;39246:11;39237:21;;;;;;;;;;;;;;;;;;;;;:29;;;39215:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;39363:26;39392:13;39420:1;39406:11;:15;;;;:::i;:::-;39392:30;;;;;;;;:::i;:::-;;;;;;;;;;;;39363:59;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;39465:4;:19;;;39455:6;:29;;39433:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;39589:1;39567:8;:20;39576:10;39567:20;;;;;;;;;;;;;;;;:23;39559:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;39647:17;39667:9;;39647:29;;39687:40;39693:10;39705:9;39716:6;39687:40;;;;;;;;;;;;:5;:40::i;:::-;39764:10;39738:12;:23;39751:9;39738:23;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;39806:9;39785:8;:20;39794:10;39785:20;;;;;;;;;;;;;;;:30;;;;39826:9;;:11;;;;;;;;;:::i;:::-;;;;;;39061:784;;38987:858;;:::o;22819:442::-;23060:12;:10;:12::i;:::-;23052:20;;:4;:20;;;:60;;;;23076:36;23093:4;23099:12;:10;:12::i;:::-;23076:16;:36::i;:::-;23052:60;23030:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;23201:52;23224:4;23230:2;23234:3;23239:7;23248:4;23201:22;:52::i;:::-;22819:442;;;;;:::o;35700:49::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;36969:113::-;37018:23;37061:13;37054:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;36969:113;:::o;35860:48::-;;;;;;;;;;;;;;;;;:::o;21277:524::-;21433:16;21494:3;:10;21475:8;:15;:29;21467:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;21563:30;21610:8;:15;21596:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21563:63;;21644:9;21639:122;21663:8;:15;21659:1;:19;21639:122;;;21719:30;21729:8;21738:1;21729:11;;;;;;;;:::i;:::-;;;;;;;;21742:3;21746:1;21742:6;;;;;;;;:::i;:::-;;;;;;;;21719:9;:30::i;:::-;21700:13;21714:1;21700:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;21680:3;;;;:::i;:::-;;;21639:122;;;;21780:13;21773:20;;;21277:524;;;;:::o;36732:104::-;36790:4;36813:8;:15;36822:5;36813:15;;;;;;;;;;;;;;;;36806:22;;36732:104;;;:::o;39853:679::-;40276:12;:25;40289:11;40276:25;;;;;;;;;;;;;;;;;;;;;40262:39;;:10;:39;;;40240:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;40422:1;40389:8;:21;40398:11;40389:21;;;;;;;;;;;40383:35;;;;;:::i;:::-;;;:40;40375:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;40478:6;40454:8;:21;40463:11;40454:21;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;40512:11;40500:24;40504:6;40500:24;;;;;;:::i;:::-;;;;;;;;39853:679;;:::o;36605:121::-;36665:13;36698:15;:20;36714:3;36698:20;;;;;;;;;;;36691:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36605:121;;;:::o;37205:686::-;37318:1;37291:13;:25;37305:10;37291:25;;;;;;;;;;;;;;;;:28;37283:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;37380:17;37400:10;;37380:30;;37450:9;37421:15;:26;37437:9;37421:26;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;37499:10;37470:15;:26;37486:9;37470:26;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;37520:13;37553:179;;;;;;;;37591:9;37553:179;;;;37625:9;37553:179;;;;37669:6;37553:179;;;;37702:14;37553:179;;;;;;;;:::i;:::-;;;;;37520:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;37802:9;37759:53;;;;;;:::i;:::-;;;;;;;;37790:10;37759:53;;37779:9;37759:53;;;;;;;;;;37823:10;;:12;;;;;;;;;:::i;:::-;;;;;;37874:9;37846:13;:25;37860:10;37846:25;;;;;;;;;;;;;;;:37;;;;37272:619;37205:686;;:::o;36497:102::-;36556:4;36579:8;:12;36588:2;36579:12;;;;;;;;;;;;;;;;;;;;;36572:19;;36497:102;;;:::o;35813:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;21874:155::-;21969:52;21988:12;:10;:12::i;:::-;22002:8;22012;21969:18;:52::i;:::-;21874:155;;:::o;35915:38::-;;;;;;;;;;;;;;;;;:::o;37088:111::-;36440:5;;;;;;;;;;;36426:19;;:10;:19;;;36418:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;37181:9:::1;37165:6;;:26;;;;;;;;;;;;;;;;;;37088:111:::0;:::o;35646:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;35597:42::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;38021:791::-;38135:5;38110:30;;:8;:21;38119:11;38110:21;;;;;;;;;;;;;;;;;;;;;:30;;;38102:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;38182:14;38199:26;38214:10;38199:14;:26::i;:::-;38182:43;;38257:4;38244:17;;:9;:17;;;38236:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;38305:27;38335:13;38363:1;38349:11;:15;;;;:::i;:::-;38335:30;;;;;;;;:::i;:::-;;;;;;;;;;;;38305:60;;38413:14;38398:29;;;;;;;;:::i;:::-;;:4;:11;;;;;;;;;;;;:29;;;;;;;;:::i;:::-;;;38376:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;38523:4;38512:15;;:7;:15;;;38508:297;;;38568:4;38544:8;:21;38553:11;38544:21;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;38601:16;38587:4;:11;;;:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;38677:4;:9;;38637:50;;;;;;:::i;:::-;;;;;;;;38665:10;38637:50;;38652:11;38637:50;;;;;;;;;;38508:297;;;38744:5;38720:8;:21;38729:11;38720:21;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;38778:15;38764:4;:11;;;:29;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;38508:297;38091:721;;38021:791;;:::o;22101:168::-;22200:4;22224:18;:27;22243:7;22224:27;;;;;;;;;;;;;;;:37;22252:8;22224:37;;;;;;;;;;;;;;;;;;;;;;;;;22217:44;;22101:168;;;;:::o;22341:401::-;22557:12;:10;:12::i;:::-;22549:20;;:4;:20;;;:60;;;;22573:36;22590:4;22596:12;:10;:12::i;:::-;22573:16;:36::i;:::-;22549:60;22527:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;22689:45;22707:4;22713:2;22717;22721:6;22729:4;22689:17;:45::i;:::-;22341:401;;;;;:::o;11211:157::-;11296:4;11335:25;11320:40;;;:11;:40;;;;11313:47;;11211:157;;;:::o;27295:569::-;27462:1;27448:16;;:2;:16;;;;27440:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;27515:16;27534:12;:10;:12::i;:::-;27515:31;;27559:102;27580:8;27598:1;27602:2;27606:21;27624:2;27606:17;:21::i;:::-;27629:25;27647:6;27629:17;:25::i;:::-;27656:4;27559:20;:102::i;:::-;27695:6;27674:9;:13;27684:2;27674:13;;;;;;;;;;;:17;27688:2;27674:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;27754:2;27717:52;;27750:1;27717:52;;27732:8;27717:52;;;27758:2;27762:6;27717:52;;;;;;;:::i;:::-;;;;;;;;27782:74;27813:8;27831:1;27835:2;27839;27843:6;27851:4;27782:30;:74::i;:::-;27429:435;27295:569;;;;:::o;712:98::-;765:7;792:10;785:17;;712:98;:::o;24903:1074::-;25130:7;:14;25116:3;:10;:28;25108:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;25222:1;25208:16;;:2;:16;;;;25200:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;25279:16;25298:12;:10;:12::i;:::-;25279:31;;25323:60;25344:8;25354:4;25360:2;25364:3;25369:7;25378:4;25323:20;:60::i;:::-;25401:9;25396:421;25420:3;:10;25416:1;:14;25396:421;;;25452:10;25465:3;25469:1;25465:6;;;;;;;;:::i;:::-;;;;;;;;25452:19;;25486:14;25503:7;25511:1;25503:10;;;;;;;;:::i;:::-;;;;;;;;25486:27;;25530:19;25552:9;:13;25562:2;25552:13;;;;;;;;;;;:19;25566:4;25552:19;;;;;;;;;;;;;;;;25530:41;;25609:6;25594:11;:21;;25586:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;25742:6;25728:11;:20;25706:9;:13;25716:2;25706:13;;;;;;;;;;;:19;25720:4;25706:19;;;;;;;;;;;;;;;:42;;;;25799:6;25778:9;:13;25788:2;25778:13;;;;;;;;;;;:17;25792:2;25778:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;25437:380;;;25432:3;;;;:::i;:::-;;;25396:421;;;;25864:2;25834:47;;25858:4;25834:47;;25848:8;25834:47;;;25868:3;25873:7;25834:47;;;;;;;:::i;:::-;;;;;;;;25894:75;25930:8;25940:4;25946:2;25950:3;25955:7;25964:4;25894:35;:75::i;:::-;25097:880;24903:1074;;;;;:::o;31089:331::-;31244:8;31235:17;;:5;:17;;;;31227:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;31347:8;31309:18;:25;31328:5;31309:25;;;;;;;;;;;;;;;:35;31335:8;31309:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;31393:8;31371:41;;31386:5;31371:41;;;31403:8;31371:41;;;;;;:::i;:::-;;;;;;;;31089:331;;;:::o;38820:159::-;38883:4;38900:15;38918:6;;;;;;;;;;;:16;;;38935:6;38918:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38900:42;;38970:1;38960:7;:11;38953:18;;;38820:159;;;:::o;23725:820::-;23927:1;23913:16;;:2;:16;;;;23905:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23984:16;24003:12;:10;:12::i;:::-;23984:31;;24028:96;24049:8;24059:4;24065:2;24069:21;24087:2;24069:17;:21::i;:::-;24092:25;24110:6;24092:17;:25::i;:::-;24119:4;24028:20;:96::i;:::-;24137:19;24159:9;:13;24169:2;24159:13;;;;;;;;;;;:19;24173:4;24159:19;;;;;;;;;;;;;;;;24137:41;;24212:6;24197:11;:21;;24189:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;24337:6;24323:11;:20;24301:9;:13;24311:2;24301:13;;;;;;;;;;;:19;24315:4;24301:19;;;;;;;;;;;;;;;:42;;;;24386:6;24365:9;:13;24375:2;24365:13;;;;;;;;;;;:17;24379:2;24365:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;24441:2;24410:46;;24435:4;24410:46;;24425:8;24410:46;;;24445:2;24449:6;24410:46;;;;;;;:::i;:::-;;;;;;;;24469:68;24500:8;24510:4;24516:2;24520;24524:6;24532:4;24469:30;:68::i;:::-;23894:651;;23725:820;;;;;:::o;34178:198::-;34244:16;34273:22;34312:1;34298:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34273:41;;34336:7;34325:5;34331:1;34325:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;34363:5;34356:12;;;34178:198;;;:::o;32376:221::-;;;;;;;:::o;32605:744::-;32820:15;:2;:13;;;:15::i;:::-;32816:526;;;32873:2;32856:38;;;32895:8;32905:4;32911:2;32915:6;32923:4;32856:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;32852:479;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;33204:6;33197:14;;;;;;;;;;;:::i;:::-;;;;;;;;32852:479;;;33253:62;;;;;;;;;;:::i;:::-;;;;;;;;32852:479;32990:43;;;32978:55;;;:8;:55;;;;32974:154;;33058:50;;;;;;;;;;:::i;:::-;;;;;;;;32974:154;32929:214;32816:526;32605:744;;;;;;:::o;33357:813::-;33597:15;:2;:13;;;:15::i;:::-;33593:570;;;33650:2;33633:43;;;33677:8;33687:4;33693:3;33698:7;33707:4;33633:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;33629:523;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;34025:6;34018:14;;;;;;;;;;;:::i;:::-;;;;;;;;33629:523;;;34074:62;;;;;;;;;;:::i;:::-;;;;;;;;33629:523;33806:48;;;33794:60;;;:8;:60;;;;33790:159;;33879:50;;;;;;;;;;:::i;:::-;;;;;;;;33790:159;33713:251;33593:570;33357:813;;;;;;:::o;2159:326::-;2219:4;2476:1;2454:7;:19;;;:23;2447:30;;2159:326;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:410::-;1574:5;1599:65;1615:48;1656:6;1615:48;:::i;:::-;1599:65;:::i;:::-;1590:74;;1687:6;1680:5;1673:21;1725:4;1718:5;1714:16;1763:3;1754:6;1749:3;1745:16;1742:25;1739:112;;;1770:79;;:::i;:::-;1739:112;1860:41;1894:6;1889:3;1884;1860:41;:::i;:::-;1580:327;1497:410;;;;;:::o;1913:412::-;1991:5;2016:66;2032:49;2074:6;2032:49;:::i;:::-;2016:66;:::i;:::-;2007:75;;2105:6;2098:5;2091:21;2143:4;2136:5;2132:16;2181:3;2172:6;2167:3;2163:16;2160:25;2157:112;;;2188:79;;:::i;:::-;2157:112;2278:41;2312:6;2307:3;2302;2278:41;:::i;:::-;1997:328;1913:412;;;;;:::o;2331:139::-;2377:5;2415:6;2402:20;2393:29;;2431:33;2458:5;2431:33;:::i;:::-;2331:139;;;;:::o;2493:370::-;2564:5;2613:3;2606:4;2598:6;2594:17;2590:27;2580:122;;2621:79;;:::i;:::-;2580:122;2738:6;2725:20;2763:94;2853:3;2845:6;2838:4;2830:6;2826:17;2763:94;:::i;:::-;2754:103;;2570:293;2493:370;;;;:::o;2886:::-;2957:5;3006:3;2999:4;2991:6;2987:17;2983:27;2973:122;;3014:79;;:::i;:::-;2973:122;3131:6;3118:20;3156:94;3246:3;3238:6;3231:4;3223:6;3219:17;3156:94;:::i;:::-;3147:103;;2963:293;2886:370;;;;:::o;3262:133::-;3305:5;3343:6;3330:20;3321:29;;3359:30;3383:5;3359:30;:::i;:::-;3262:133;;;;:::o;3401:137::-;3446:5;3484:6;3471:20;3462:29;;3500:32;3526:5;3500:32;:::i;:::-;3401:137;;;;:::o;3544:141::-;3600:5;3631:6;3625:13;3616:22;;3647:32;3673:5;3647:32;:::i;:::-;3544:141;;;;:::o;3704:338::-;3759:5;3808:3;3801:4;3793:6;3789:17;3785:27;3775:122;;3816:79;;:::i;:::-;3775:122;3933:6;3920:20;3958:78;4032:3;4024:6;4017:4;4009:6;4005:17;3958:78;:::i;:::-;3949:87;;3765:277;3704:338;;;;:::o;4062:340::-;4118:5;4167:3;4160:4;4152:6;4148:17;4144:27;4134:122;;4175:79;;:::i;:::-;4134:122;4292:6;4279:20;4317:79;4392:3;4384:6;4377:4;4369:6;4365:17;4317:79;:::i;:::-;4308:88;;4124:278;4062:340;;;;:::o;4408:139::-;4454:5;4492:6;4479:20;4470:29;;4508:33;4535:5;4508:33;:::i;:::-;4408:139;;;;:::o;4553:143::-;4610:5;4641:6;4635:13;4626:22;;4657:33;4684:5;4657:33;:::i;:::-;4553:143;;;;:::o;4702:329::-;4761:6;4810:2;4798:9;4789:7;4785:23;4781:32;4778:119;;;4816:79;;:::i;:::-;4778:119;4936:1;4961:53;5006:7;4997:6;4986:9;4982:22;4961:53;:::i;:::-;4951:63;;4907:117;4702:329;;;;:::o;5037:474::-;5105:6;5113;5162:2;5150:9;5141:7;5137:23;5133:32;5130:119;;;5168:79;;:::i;:::-;5130:119;5288:1;5313:53;5358:7;5349:6;5338:9;5334:22;5313:53;:::i;:::-;5303:63;;5259:117;5415:2;5441:53;5486:7;5477:6;5466:9;5462:22;5441:53;:::i;:::-;5431:63;;5386:118;5037:474;;;;;:::o;5517:1509::-;5671:6;5679;5687;5695;5703;5752:3;5740:9;5731:7;5727:23;5723:33;5720:120;;;5759:79;;:::i;:::-;5720:120;5879:1;5904:53;5949:7;5940:6;5929:9;5925:22;5904:53;:::i;:::-;5894:63;;5850:117;6006:2;6032:53;6077:7;6068:6;6057:9;6053:22;6032:53;:::i;:::-;6022:63;;5977:118;6162:2;6151:9;6147:18;6134:32;6193:18;6185:6;6182:30;6179:117;;;6215:79;;:::i;:::-;6179:117;6320:78;6390:7;6381:6;6370:9;6366:22;6320:78;:::i;:::-;6310:88;;6105:303;6475:2;6464:9;6460:18;6447:32;6506:18;6498:6;6495:30;6492:117;;;6528:79;;:::i;:::-;6492:117;6633:78;6703:7;6694:6;6683:9;6679:22;6633:78;:::i;:::-;6623:88;;6418:303;6788:3;6777:9;6773:19;6760:33;6820:18;6812:6;6809:30;6806:117;;;6842:79;;:::i;:::-;6806:117;6947:62;7001:7;6992:6;6981:9;6977:22;6947:62;:::i;:::-;6937:72;;6731:288;5517:1509;;;;;;;;:::o;7032:1089::-;7136:6;7144;7152;7160;7168;7217:3;7205:9;7196:7;7192:23;7188:33;7185:120;;;7224:79;;:::i;:::-;7185:120;7344:1;7369:53;7414:7;7405:6;7394:9;7390:22;7369:53;:::i;:::-;7359:63;;7315:117;7471:2;7497:53;7542:7;7533:6;7522:9;7518:22;7497:53;:::i;:::-;7487:63;;7442:118;7599:2;7625:53;7670:7;7661:6;7650:9;7646:22;7625:53;:::i;:::-;7615:63;;7570:118;7727:2;7753:53;7798:7;7789:6;7778:9;7774:22;7753:53;:::i;:::-;7743:63;;7698:118;7883:3;7872:9;7868:19;7855:33;7915:18;7907:6;7904:30;7901:117;;;7937:79;;:::i;:::-;7901:117;8042:62;8096:7;8087:6;8076:9;8072:22;8042:62;:::i;:::-;8032:72;;7826:288;7032:1089;;;;;;;;:::o;8127:468::-;8192:6;8200;8249:2;8237:9;8228:7;8224:23;8220:32;8217:119;;;8255:79;;:::i;:::-;8217:119;8375:1;8400:53;8445:7;8436:6;8425:9;8421:22;8400:53;:::i;:::-;8390:63;;8346:117;8502:2;8528:50;8570:7;8561:6;8550:9;8546:22;8528:50;:::i;:::-;8518:60;;8473:115;8127:468;;;;;:::o;8601:474::-;8669:6;8677;8726:2;8714:9;8705:7;8701:23;8697:32;8694:119;;;8732:79;;:::i;:::-;8694:119;8852:1;8877:53;8922:7;8913:6;8902:9;8898:22;8877:53;:::i;:::-;8867:63;;8823:117;8979:2;9005:53;9050:7;9041:6;9030:9;9026:22;9005:53;:::i;:::-;8995:63;;8950:118;8601:474;;;;;:::o;9081:894::-;9199:6;9207;9256:2;9244:9;9235:7;9231:23;9227:32;9224:119;;;9262:79;;:::i;:::-;9224:119;9410:1;9399:9;9395:17;9382:31;9440:18;9432:6;9429:30;9426:117;;;9462:79;;:::i;:::-;9426:117;9567:78;9637:7;9628:6;9617:9;9613:22;9567:78;:::i;:::-;9557:88;;9353:302;9722:2;9711:9;9707:18;9694:32;9753:18;9745:6;9742:30;9739:117;;;9775:79;;:::i;:::-;9739:117;9880:78;9950:7;9941:6;9930:9;9926:22;9880:78;:::i;:::-;9870:88;;9665:303;9081:894;;;;;:::o;9981:327::-;10039:6;10088:2;10076:9;10067:7;10063:23;10059:32;10056:119;;;10094:79;;:::i;:::-;10056:119;10214:1;10239:52;10283:7;10274:6;10263:9;10259:22;10239:52;:::i;:::-;10229:62;;10185:116;9981:327;;;;:::o;10314:349::-;10383:6;10432:2;10420:9;10411:7;10407:23;10403:32;10400:119;;;10438:79;;:::i;:::-;10400:119;10558:1;10583:63;10638:7;10629:6;10618:9;10614:22;10583:63;:::i;:::-;10573:73;;10529:127;10314:349;;;;:::o;10669:654::-;10747:6;10755;10804:2;10792:9;10783:7;10779:23;10775:32;10772:119;;;10810:79;;:::i;:::-;10772:119;10958:1;10947:9;10943:17;10930:31;10988:18;10980:6;10977:30;10974:117;;;11010:79;;:::i;:::-;10974:117;11115:63;11170:7;11161:6;11150:9;11146:22;11115:63;:::i;:::-;11105:73;;10901:287;11227:2;11253:53;11298:7;11289:6;11278:9;11274:22;11253:53;:::i;:::-;11243:63;;11198:118;10669:654;;;;;:::o;11329:329::-;11388:6;11437:2;11425:9;11416:7;11412:23;11408:32;11405:119;;;11443:79;;:::i;:::-;11405:119;11563:1;11588:53;11633:7;11624:6;11613:9;11609:22;11588:53;:::i;:::-;11578:63;;11534:117;11329:329;;;;:::o;11664:351::-;11734:6;11783:2;11771:9;11762:7;11758:23;11754:32;11751:119;;;11789:79;;:::i;:::-;11751:119;11909:1;11934:64;11990:7;11981:6;11970:9;11966:22;11934:64;:::i;:::-;11924:74;;11880:128;11664:351;;;;:::o;12021:468::-;12086:6;12094;12143:2;12131:9;12122:7;12118:23;12114:32;12111:119;;;12149:79;;:::i;:::-;12111:119;12269:1;12294:53;12339:7;12330:6;12319:9;12315:22;12294:53;:::i;:::-;12284:63;;12240:117;12396:2;12422:50;12464:7;12455:6;12444:9;12440:22;12422:50;:::i;:::-;12412:60;;12367:115;12021:468;;;;;:::o;12495:654::-;12573:6;12581;12630:2;12618:9;12609:7;12605:23;12601:32;12598:119;;;12636:79;;:::i;:::-;12598:119;12756:1;12781:53;12826:7;12817:6;12806:9;12802:22;12781:53;:::i;:::-;12771:63;;12727:117;12911:2;12900:9;12896:18;12883:32;12942:18;12934:6;12931:30;12928:117;;;12964:79;;:::i;:::-;12928:117;13069:63;13124:7;13115:6;13104:9;13100:22;13069:63;:::i;:::-;13059:73;;12854:288;12495:654;;;;;:::o;13155:474::-;13223:6;13231;13280:2;13268:9;13259:7;13255:23;13251:32;13248:119;;;13286:79;;:::i;:::-;13248:119;13406:1;13431:53;13476:7;13467:6;13456:9;13452:22;13431:53;:::i;:::-;13421:63;;13377:117;13533:2;13559:53;13604:7;13595:6;13584:9;13580:22;13559:53;:::i;:::-;13549:63;;13504:118;13155:474;;;;;:::o;13635:284::-;13768:10;13803:110;13909:3;13901:6;13803:110;:::i;:::-;13789:124;;13635:284;;;;:::o;13925:179::-;13994:10;14015:46;14057:3;14049:6;14015:46;:::i;:::-;14093:4;14088:3;14084:14;14070:28;;13925:179;;;;:::o;14110:118::-;14197:24;14215:5;14197:24;:::i;:::-;14192:3;14185:37;14110:118;;:::o;14308:1167::-;14491:3;14520:86;14600:5;14520:86;:::i;:::-;14622:118;14733:6;14728:3;14622:118;:::i;:::-;14615:125;;14766:3;14811:4;14803:6;14799:17;14794:3;14790:27;14841:88;14923:5;14841:88;:::i;:::-;14952:7;14983:1;14968:462;14993:6;14990:1;14987:13;14968:462;;;15064:9;15058:4;15054:20;15049:3;15042:33;15115:6;15109:13;15143:128;15266:4;15251:13;15143:128;:::i;:::-;15135:136;;15294:92;15379:6;15294:92;:::i;:::-;15284:102;;15415:4;15410:3;15406:14;15399:21;;15028:402;15015:1;15012;15008:9;15003:14;;14968:462;;;14972:14;15446:4;15439:11;;15466:3;15459:10;;14496:979;;;;;14308:1167;;;;:::o;15511:732::-;15630:3;15659:54;15707:5;15659:54;:::i;:::-;15729:86;15808:6;15803:3;15729:86;:::i;:::-;15722:93;;15839:56;15889:5;15839:56;:::i;:::-;15918:7;15949:1;15934:284;15959:6;15956:1;15953:13;15934:284;;;16035:6;16029:13;16062:63;16121:3;16106:13;16062:63;:::i;:::-;16055:70;;16148:60;16201:6;16148:60;:::i;:::-;16138:70;;15994:224;15981:1;15978;15974:9;15969:14;;15934:284;;;15938:14;16234:3;16227:10;;15635:608;;;15511:732;;;;:::o;16249:109::-;16330:21;16345:5;16330:21;:::i;:::-;16325:3;16318:34;16249:109;;:::o;16364:360::-;16450:3;16478:38;16510:5;16478:38;:::i;:::-;16532:70;16595:6;16590:3;16532:70;:::i;:::-;16525:77;;16611:52;16656:6;16651:3;16644:4;16637:5;16633:16;16611:52;:::i;:::-;16688:29;16710:6;16688:29;:::i;:::-;16683:3;16679:39;16672:46;;16454:270;16364:360;;;;:::o;16730:139::-;16816:46;16856:5;16816:46;:::i;:::-;16811:3;16804:59;16730:139;;:::o;16875:344::-;16953:3;16981:39;17014:5;16981:39;:::i;:::-;17036:61;17090:6;17085:3;17036:61;:::i;:::-;17029:68;;17106:52;17151:6;17146:3;17139:4;17132:5;17128:16;17106:52;:::i;:::-;17183:29;17205:6;17183:29;:::i;:::-;17178:3;17174:39;17167:46;;16957:262;16875:344;;;;:::o;17225:364::-;17313:3;17341:39;17374:5;17341:39;:::i;:::-;17396:71;17460:6;17455:3;17396:71;:::i;:::-;17389:78;;17476:52;17521:6;17516:3;17509:4;17502:5;17498:16;17476:52;:::i;:::-;17553:29;17575:6;17553:29;:::i;:::-;17548:3;17544:39;17537:46;;17317:272;17225:364;;;;:::o;17595:377::-;17701:3;17729:39;17762:5;17729:39;:::i;:::-;17784:89;17866:6;17861:3;17784:89;:::i;:::-;17777:96;;17882:52;17927:6;17922:3;17915:4;17908:5;17904:16;17882:52;:::i;:::-;17959:6;17954:3;17950:16;17943:23;;17705:267;17595:377;;;;:::o;18002:845::-;18105:3;18142:5;18136:12;18171:36;18197:9;18171:36;:::i;:::-;18223:89;18305:6;18300:3;18223:89;:::i;:::-;18216:96;;18343:1;18332:9;18328:17;18359:1;18354:137;;;;18505:1;18500:341;;;;18321:520;;18354:137;18438:4;18434:9;18423;18419:25;18414:3;18407:38;18474:6;18469:3;18465:16;18458:23;;18354:137;;18500:341;18567:38;18599:5;18567:38;:::i;:::-;18627:1;18641:154;18655:6;18652:1;18649:13;18641:154;;;18729:7;18723:14;18719:1;18714:3;18710:11;18703:35;18779:1;18770:7;18766:15;18755:26;;18677:4;18674:1;18670:12;18665:17;;18641:154;;;18824:6;18819:3;18815:16;18808:23;;18507:334;;18321:520;;18109:738;;18002:845;;;;:::o;18853:366::-;18995:3;19016:67;19080:2;19075:3;19016:67;:::i;:::-;19009:74;;19092:93;19181:3;19092:93;:::i;:::-;19210:2;19205:3;19201:12;19194:19;;18853:366;;;:::o;19225:::-;19367:3;19388:67;19452:2;19447:3;19388:67;:::i;:::-;19381:74;;19464:93;19553:3;19464:93;:::i;:::-;19582:2;19577:3;19573:12;19566:19;;19225:366;;;:::o;19597:::-;19739:3;19760:67;19824:2;19819:3;19760:67;:::i;:::-;19753:74;;19836:93;19925:3;19836:93;:::i;:::-;19954:2;19949:3;19945:12;19938:19;;19597:366;;;:::o;19969:::-;20111:3;20132:67;20196:2;20191:3;20132:67;:::i;:::-;20125:74;;20208:93;20297:3;20208:93;:::i;:::-;20326:2;20321:3;20317:12;20310:19;;19969:366;;;:::o;20341:::-;20483:3;20504:67;20568:2;20563:3;20504:67;:::i;:::-;20497:74;;20580:93;20669:3;20580:93;:::i;:::-;20698:2;20693:3;20689:12;20682:19;;20341:366;;;:::o;20713:::-;20855:3;20876:67;20940:2;20935:3;20876:67;:::i;:::-;20869:74;;20952:93;21041:3;20952:93;:::i;:::-;21070:2;21065:3;21061:12;21054:19;;20713:366;;;:::o;21085:::-;21227:3;21248:67;21312:2;21307:3;21248:67;:::i;:::-;21241:74;;21324:93;21413:3;21324:93;:::i;:::-;21442:2;21437:3;21433:12;21426:19;;21085:366;;;:::o;21457:::-;21599:3;21620:67;21684:2;21679:3;21620:67;:::i;:::-;21613:74;;21696:93;21785:3;21696:93;:::i;:::-;21814:2;21809:3;21805:12;21798:19;;21457:366;;;:::o;21829:::-;21971:3;21992:67;22056:2;22051:3;21992:67;:::i;:::-;21985:74;;22068:93;22157:3;22068:93;:::i;:::-;22186:2;22181:3;22177:12;22170:19;;21829:366;;;:::o;22201:::-;22343:3;22364:67;22428:2;22423:3;22364:67;:::i;:::-;22357:74;;22440:93;22529:3;22440:93;:::i;:::-;22558:2;22553:3;22549:12;22542:19;;22201:366;;;:::o;22573:::-;22715:3;22736:67;22800:2;22795:3;22736:67;:::i;:::-;22729:74;;22812:93;22901:3;22812:93;:::i;:::-;22930:2;22925:3;22921:12;22914:19;;22573:366;;;:::o;22945:::-;23087:3;23108:67;23172:2;23167:3;23108:67;:::i;:::-;23101:74;;23184:93;23273:3;23184:93;:::i;:::-;23302:2;23297:3;23293:12;23286:19;;22945:366;;;:::o;23317:::-;23459:3;23480:67;23544:2;23539:3;23480:67;:::i;:::-;23473:74;;23556:93;23645:3;23556:93;:::i;:::-;23674:2;23669:3;23665:12;23658:19;;23317:366;;;:::o;23689:::-;23831:3;23852:67;23916:2;23911:3;23852:67;:::i;:::-;23845:74;;23928:93;24017:3;23928:93;:::i;:::-;24046:2;24041:3;24037:12;24030:19;;23689:366;;;:::o;24061:::-;24203:3;24224:67;24288:2;24283:3;24224:67;:::i;:::-;24217:74;;24300:93;24389:3;24300:93;:::i;:::-;24418:2;24413:3;24409:12;24402:19;;24061:366;;;:::o;24433:::-;24575:3;24596:67;24660:2;24655:3;24596:67;:::i;:::-;24589:74;;24672:93;24761:3;24672:93;:::i;:::-;24790:2;24785:3;24781:12;24774:19;;24433:366;;;:::o;24805:::-;24947:3;24968:67;25032:2;25027:3;24968:67;:::i;:::-;24961:74;;25044:93;25133:3;25044:93;:::i;:::-;25162:2;25157:3;25153:12;25146:19;;24805:366;;;:::o;25177:::-;25319:3;25340:67;25404:2;25399:3;25340:67;:::i;:::-;25333:74;;25416:93;25505:3;25416:93;:::i;:::-;25534:2;25529:3;25525:12;25518:19;;25177:366;;;:::o;25549:::-;25691:3;25712:67;25776:2;25771:3;25712:67;:::i;:::-;25705:74;;25788:93;25877:3;25788:93;:::i;:::-;25906:2;25901:3;25897:12;25890:19;;25549:366;;;:::o;25921:::-;26063:3;26084:67;26148:2;26143:3;26084:67;:::i;:::-;26077:74;;26160:93;26249:3;26160:93;:::i;:::-;26278:2;26273:3;26269:12;26262:19;;25921:366;;;:::o;26293:::-;26435:3;26456:67;26520:2;26515:3;26456:67;:::i;:::-;26449:74;;26532:93;26621:3;26532:93;:::i;:::-;26650:2;26645:3;26641:12;26634:19;;26293:366;;;:::o;26665:::-;26807:3;26828:67;26892:2;26887:3;26828:67;:::i;:::-;26821:74;;26904:93;26993:3;26904:93;:::i;:::-;27022:2;27017:3;27013:12;27006:19;;26665:366;;;:::o;27107:977::-;27230:3;27266:4;27261:3;27257:14;27351:4;27344:5;27340:16;27334:23;27370:63;27427:4;27422:3;27418:14;27404:12;27370:63;:::i;:::-;27281:162;27525:4;27518:5;27514:16;27508:23;27578:3;27572:4;27568:14;27561:4;27556:3;27552:14;27545:38;27604:73;27672:4;27658:12;27604:73;:::i;:::-;27596:81;;27453:235;27780:4;27773:5;27769:16;27763:23;27799:63;27856:4;27851:3;27847:14;27833:12;27799:63;:::i;:::-;27698:174;27956:4;27949:5;27945:16;27939:23;27975:72;28041:4;28036:3;28032:14;28018:12;27975:72;:::i;:::-;27882:175;28074:4;28067:11;;27235:849;27107:977;;;;:::o;28090:108::-;28167:24;28185:5;28167:24;:::i;:::-;28162:3;28155:37;28090:108;;:::o;28204:118::-;28291:24;28309:5;28291:24;:::i;:::-;28286:3;28279:37;28204:118;;:::o;28328:275::-;28460:3;28482:95;28573:3;28564:6;28482:95;:::i;:::-;28475:102;;28594:3;28587:10;;28328:275;;;;:::o;28609:269::-;28738:3;28760:92;28848:3;28839:6;28760:92;:::i;:::-;28753:99;;28869:3;28862:10;;28609:269;;;;:::o;28884:222::-;28977:4;29015:2;29004:9;29000:18;28992:26;;29028:71;29096:1;29085:9;29081:17;29072:6;29028:71;:::i;:::-;28884:222;;;;:::o;29112:1053::-;29435:4;29473:3;29462:9;29458:19;29450:27;;29487:71;29555:1;29544:9;29540:17;29531:6;29487:71;:::i;:::-;29568:72;29636:2;29625:9;29621:18;29612:6;29568:72;:::i;:::-;29687:9;29681:4;29677:20;29672:2;29661:9;29657:18;29650:48;29715:108;29818:4;29809:6;29715:108;:::i;:::-;29707:116;;29870:9;29864:4;29860:20;29855:2;29844:9;29840:18;29833:48;29898:108;30001:4;29992:6;29898:108;:::i;:::-;29890:116;;30054:9;30048:4;30044:20;30038:3;30027:9;30023:19;30016:49;30082:76;30153:4;30144:6;30082:76;:::i;:::-;30074:84;;29112:1053;;;;;;;;:::o;30171:751::-;30394:4;30432:3;30421:9;30417:19;30409:27;;30446:71;30514:1;30503:9;30499:17;30490:6;30446:71;:::i;:::-;30527:72;30595:2;30584:9;30580:18;30571:6;30527:72;:::i;:::-;30609;30677:2;30666:9;30662:18;30653:6;30609:72;:::i;:::-;30691;30759:2;30748:9;30744:18;30735:6;30691:72;:::i;:::-;30811:9;30805:4;30801:20;30795:3;30784:9;30780:19;30773:49;30839:76;30910:4;30901:6;30839:76;:::i;:::-;30831:84;;30171:751;;;;;;;;:::o;30928:501::-;31135:4;31173:2;31162:9;31158:18;31150:26;;31222:9;31216:4;31212:20;31208:1;31197:9;31193:17;31186:47;31250:172;31417:4;31408:6;31250:172;:::i;:::-;31242:180;;30928:501;;;;:::o;31435:373::-;31578:4;31616:2;31605:9;31601:18;31593:26;;31665:9;31659:4;31655:20;31651:1;31640:9;31636:17;31629:47;31693:108;31796:4;31787:6;31693:108;:::i;:::-;31685:116;;31435:373;;;;:::o;31814:634::-;32035:4;32073:2;32062:9;32058:18;32050:26;;32122:9;32116:4;32112:20;32108:1;32097:9;32093:17;32086:47;32150:108;32253:4;32244:6;32150:108;:::i;:::-;32142:116;;32305:9;32299:4;32295:20;32290:2;32279:9;32275:18;32268:48;32333:108;32436:4;32427:6;32333:108;:::i;:::-;32325:116;;31814:634;;;;;:::o;32454:210::-;32541:4;32579:2;32568:9;32564:18;32556:26;;32592:65;32654:1;32643:9;32639:17;32630:6;32592:65;:::i;:::-;32454:210;;;;:::o;32670:313::-;32783:4;32821:2;32810:9;32806:18;32798:26;;32870:9;32864:4;32860:20;32856:1;32845:9;32841:17;32834:47;32898:78;32971:4;32962:6;32898:78;:::i;:::-;32890:86;;32670:313;;;;:::o;32989:419::-;33155:4;33193:2;33182:9;33178:18;33170:26;;33242:9;33236:4;33232:20;33228:1;33217:9;33213:17;33206:47;33270:131;33396:4;33270:131;:::i;:::-;33262:139;;32989:419;;;:::o;33414:::-;33580:4;33618:2;33607:9;33603:18;33595:26;;33667:9;33661:4;33657:20;33653:1;33642:9;33638:17;33631:47;33695:131;33821:4;33695:131;:::i;:::-;33687:139;;33414:419;;;:::o;33839:::-;34005:4;34043:2;34032:9;34028:18;34020:26;;34092:9;34086:4;34082:20;34078:1;34067:9;34063:17;34056:47;34120:131;34246:4;34120:131;:::i;:::-;34112:139;;33839:419;;;:::o;34264:::-;34430:4;34468:2;34457:9;34453:18;34445:26;;34517:9;34511:4;34507:20;34503:1;34492:9;34488:17;34481:47;34545:131;34671:4;34545:131;:::i;:::-;34537:139;;34264:419;;;:::o;34689:::-;34855:4;34893:2;34882:9;34878:18;34870:26;;34942:9;34936:4;34932:20;34928:1;34917:9;34913:17;34906:47;34970:131;35096:4;34970:131;:::i;:::-;34962:139;;34689:419;;;:::o;35114:::-;35280:4;35318:2;35307:9;35303:18;35295:26;;35367:9;35361:4;35357:20;35353:1;35342:9;35338:17;35331:47;35395:131;35521:4;35395:131;:::i;:::-;35387:139;;35114:419;;;:::o;35539:::-;35705:4;35743:2;35732:9;35728:18;35720:26;;35792:9;35786:4;35782:20;35778:1;35767:9;35763:17;35756:47;35820:131;35946:4;35820:131;:::i;:::-;35812:139;;35539:419;;;:::o;35964:::-;36130:4;36168:2;36157:9;36153:18;36145:26;;36217:9;36211:4;36207:20;36203:1;36192:9;36188:17;36181:47;36245:131;36371:4;36245:131;:::i;:::-;36237:139;;35964:419;;;:::o;36389:::-;36555:4;36593:2;36582:9;36578:18;36570:26;;36642:9;36636:4;36632:20;36628:1;36617:9;36613:17;36606:47;36670:131;36796:4;36670:131;:::i;:::-;36662:139;;36389:419;;;:::o;36814:::-;36980:4;37018:2;37007:9;37003:18;36995:26;;37067:9;37061:4;37057:20;37053:1;37042:9;37038:17;37031:47;37095:131;37221:4;37095:131;:::i;:::-;37087:139;;36814:419;;;:::o;37239:::-;37405:4;37443:2;37432:9;37428:18;37420:26;;37492:9;37486:4;37482:20;37478:1;37467:9;37463:17;37456:47;37520:131;37646:4;37520:131;:::i;:::-;37512:139;;37239:419;;;:::o;37664:::-;37830:4;37868:2;37857:9;37853:18;37845:26;;37917:9;37911:4;37907:20;37903:1;37892:9;37888:17;37881:47;37945:131;38071:4;37945:131;:::i;:::-;37937:139;;37664:419;;;:::o;38089:::-;38255:4;38293:2;38282:9;38278:18;38270:26;;38342:9;38336:4;38332:20;38328:1;38317:9;38313:17;38306:47;38370:131;38496:4;38370:131;:::i;:::-;38362:139;;38089:419;;;:::o;38514:::-;38680:4;38718:2;38707:9;38703:18;38695:26;;38767:9;38761:4;38757:20;38753:1;38742:9;38738:17;38731:47;38795:131;38921:4;38795:131;:::i;:::-;38787:139;;38514:419;;;:::o;38939:::-;39105:4;39143:2;39132:9;39128:18;39120:26;;39192:9;39186:4;39182:20;39178:1;39167:9;39163:17;39156:47;39220:131;39346:4;39220:131;:::i;:::-;39212:139;;38939:419;;;:::o;39364:::-;39530:4;39568:2;39557:9;39553:18;39545:26;;39617:9;39611:4;39607:20;39603:1;39592:9;39588:17;39581:47;39645:131;39771:4;39645:131;:::i;:::-;39637:139;;39364:419;;;:::o;39789:::-;39955:4;39993:2;39982:9;39978:18;39970:26;;40042:9;40036:4;40032:20;40028:1;40017:9;40013:17;40006:47;40070:131;40196:4;40070:131;:::i;:::-;40062:139;;39789:419;;;:::o;40214:::-;40380:4;40418:2;40407:9;40403:18;40395:26;;40467:9;40461:4;40457:20;40453:1;40442:9;40438:17;40431:47;40495:131;40621:4;40495:131;:::i;:::-;40487:139;;40214:419;;;:::o;40639:::-;40805:4;40843:2;40832:9;40828:18;40820:26;;40892:9;40886:4;40882:20;40878:1;40867:9;40863:17;40856:47;40920:131;41046:4;40920:131;:::i;:::-;40912:139;;40639:419;;;:::o;41064:::-;41230:4;41268:2;41257:9;41253:18;41245:26;;41317:9;41311:4;41307:20;41303:1;41292:9;41288:17;41281:47;41345:131;41471:4;41345:131;:::i;:::-;41337:139;;41064:419;;;:::o;41489:::-;41655:4;41693:2;41682:9;41678:18;41670:26;;41742:9;41736:4;41732:20;41728:1;41717:9;41713:17;41706:47;41770:131;41896:4;41770:131;:::i;:::-;41762:139;;41489:419;;;:::o;41914:::-;42080:4;42118:2;42107:9;42103:18;42095:26;;42167:9;42161:4;42157:20;42153:1;42142:9;42138:17;42131:47;42195:131;42321:4;42195:131;:::i;:::-;42187:139;;41914:419;;;:::o;42339:222::-;42432:4;42470:2;42459:9;42455:18;42447:26;;42483:71;42551:1;42540:9;42536:17;42527:6;42483:71;:::i;:::-;42339:222;;;;:::o;42567:332::-;42688:4;42726:2;42715:9;42711:18;42703:26;;42739:71;42807:1;42796:9;42792:17;42783:6;42739:71;:::i;:::-;42820:72;42888:2;42877:9;42873:18;42864:6;42820:72;:::i;:::-;42567:332;;;;;:::o;42905:129::-;42939:6;42966:20;;:::i;:::-;42956:30;;42995:33;43023:4;43015:6;42995:33;:::i;:::-;42905:129;;;:::o;43040:75::-;43073:6;43106:2;43100:9;43090:19;;43040:75;:::o;43121:311::-;43198:4;43288:18;43280:6;43277:30;43274:56;;;43310:18;;:::i;:::-;43274:56;43360:4;43352:6;43348:17;43340:25;;43420:4;43414;43410:15;43402:23;;43121:311;;;:::o;43438:::-;43515:4;43605:18;43597:6;43594:30;43591:56;;;43627:18;;:::i;:::-;43591:56;43677:4;43669:6;43665:17;43657:25;;43737:4;43731;43727:15;43719:23;;43438:311;;;:::o;43755:307::-;43816:4;43906:18;43898:6;43895:30;43892:56;;;43928:18;;:::i;:::-;43892:56;43966:29;43988:6;43966:29;:::i;:::-;43958:37;;44050:4;44044;44040:15;44032:23;;43755:307;;;:::o;44068:308::-;44130:4;44220:18;44212:6;44209:30;44206:56;;;44242:18;;:::i;:::-;44206:56;44280:29;44302:6;44280:29;:::i;:::-;44272:37;;44364:4;44358;44354:15;44346:23;;44068:308;;;:::o;44382:164::-;44481:4;44504:3;44496:11;;44534:4;44529:3;44525:14;44517:22;;44382:164;;;:::o;44552:132::-;44619:4;44642:3;44634:11;;44672:4;44667:3;44663:14;44655:22;;44552:132;;;:::o;44690:141::-;44739:4;44762:3;44754:11;;44785:3;44782:1;44775:14;44819:4;44816:1;44806:18;44798:26;;44690:141;;;:::o;44837:146::-;44936:6;44970:5;44964:12;44954:22;;44837:146;;;:::o;44989:114::-;45056:6;45090:5;45084:12;45074:22;;44989:114;;;:::o;45109:98::-;45160:6;45194:5;45188:12;45178:22;;45109:98;;;:::o;45213:99::-;45265:6;45299:5;45293:12;45283:22;;45213:99;;;:::o;45318:145::-;45420:4;45452;45447:3;45443:14;45435:22;;45318:145;;;:::o;45469:113::-;45539:4;45571;45566:3;45562:14;45554:22;;45469:113;;;:::o;45588:216::-;45719:11;45753:6;45748:3;45741:19;45793:4;45788:3;45784:14;45769:29;;45588:216;;;;:::o;45810:184::-;45909:11;45943:6;45938:3;45931:19;45983:4;45978:3;45974:14;45959:29;;45810:184;;;;:::o;46000:168::-;46083:11;46117:6;46112:3;46105:19;46157:4;46152:3;46148:14;46133:29;;46000:168;;;;:::o;46174:159::-;46248:11;46282:6;46277:3;46270:19;46322:4;46317:3;46313:14;46298:29;;46174:159;;;;:::o;46339:169::-;46423:11;46457:6;46452:3;46445:19;46497:4;46492:3;46488:14;46473:29;;46339:169;;;;:::o;46514:148::-;46616:11;46653:3;46638:18;;46514:148;;;;:::o;46668:305::-;46708:3;46727:20;46745:1;46727:20;:::i;:::-;46722:25;;46761:20;46779:1;46761:20;:::i;:::-;46756:25;;46915:1;46847:66;46843:74;46840:1;46837:81;46834:107;;;46921:18;;:::i;:::-;46834:107;46965:1;46962;46958:9;46951:16;;46668:305;;;;:::o;46979:191::-;47019:4;47039:20;47057:1;47039:20;:::i;:::-;47034:25;;47073:20;47091:1;47073:20;:::i;:::-;47068:25;;47112:1;47109;47106:8;47103:34;;;47117:18;;:::i;:::-;47103:34;47162:1;47159;47155:9;47147:17;;46979:191;;;;:::o;47176:96::-;47213:7;47242:24;47260:5;47242:24;:::i;:::-;47231:35;;47176:96;;;:::o;47278:90::-;47312:7;47355:5;47348:13;47341:21;47330:32;;47278:90;;;:::o;47374:149::-;47410:7;47450:66;47443:5;47439:78;47428:89;;47374:149;;;:::o;47529:133::-;47577:7;47606:5;47595:16;;47612:44;47650:5;47612:44;:::i;:::-;47529:133;;;:::o;47668:126::-;47705:7;47745:42;47738:5;47734:54;47723:65;;47668:126;;;:::o;47800:77::-;47837:7;47866:5;47855:16;;47800:77;;;:::o;47883:133::-;47942:9;47975:35;48004:5;47975:35;:::i;:::-;47962:48;;47883:133;;;:::o;48022:154::-;48106:6;48101:3;48096;48083:30;48168:1;48159:6;48154:3;48150:16;48143:27;48022:154;;;:::o;48182:307::-;48250:1;48260:113;48274:6;48271:1;48268:13;48260:113;;;48359:1;48354:3;48350:11;48344:18;48340:1;48335:3;48331:11;48324:39;48296:2;48293:1;48289:10;48284:15;;48260:113;;;48391:6;48388:1;48385:13;48382:101;;;48471:1;48462:6;48457:3;48453:16;48446:27;48382:101;48231:258;48182:307;;;:::o;48495:320::-;48539:6;48576:1;48570:4;48566:12;48556:22;;48623:1;48617:4;48613:12;48644:18;48634:81;;48700:4;48692:6;48688:17;48678:27;;48634:81;48762:2;48754:6;48751:14;48731:18;48728:38;48725:84;;;48781:18;;:::i;:::-;48725:84;48546:269;48495:320;;;:::o;48821:281::-;48904:27;48926:4;48904:27;:::i;:::-;48896:6;48892:40;49034:6;49022:10;49019:22;48998:18;48986:10;48983:34;48980:62;48977:88;;;49045:18;;:::i;:::-;48977:88;49085:10;49081:2;49074:22;48864:238;48821:281;;:::o;49108:233::-;49147:3;49170:24;49188:5;49170:24;:::i;:::-;49161:33;;49216:66;49209:5;49206:77;49203:103;;;49286:18;;:::i;:::-;49203:103;49333:1;49326:5;49322:13;49315:20;;49108:233;;;:::o;49347:180::-;49395:77;49392:1;49385:88;49492:4;49489:1;49482:15;49516:4;49513:1;49506:15;49533:180;49581:77;49578:1;49571:88;49678:4;49675:1;49668:15;49702:4;49699:1;49692:15;49719:180;49767:77;49764:1;49757:88;49864:4;49861:1;49854:15;49888:4;49885:1;49878:15;49905:180;49953:77;49950:1;49943:88;50050:4;50047:1;50040:15;50074:4;50071:1;50064:15;50091:180;50139:77;50136:1;50129:88;50236:4;50233:1;50226:15;50260:4;50257:1;50250:15;50277:183;50312:3;50350:1;50332:16;50329:23;50326:128;;;50388:1;50385;50382;50367:23;50410:34;50441:1;50435:8;50410:34;:::i;:::-;50403:41;;50326:128;50277:183;:::o;50466:117::-;50575:1;50572;50565:12;50589:117;50698:1;50695;50688:12;50712:117;50821:1;50818;50811:12;50835:117;50944:1;50941;50934:12;50958:117;51067:1;51064;51057:12;51081:102;51122:6;51173:2;51169:7;51164:2;51157:5;51153:14;51149:28;51139:38;;51081:102;;;:::o;51189:106::-;51233:8;51282:5;51277:3;51273:15;51252:36;;51189:106;;;:::o;51301:239::-;51441:34;51437:1;51429:6;51425:14;51418:58;51510:22;51505:2;51497:6;51493:15;51486:47;51301:239;:::o;51546:227::-;51686:34;51682:1;51674:6;51670:14;51663:58;51755:10;51750:2;51742:6;51738:15;51731:35;51546:227;:::o;51779:223::-;51919:34;51915:1;51907:6;51903:14;51896:58;51988:6;51983:2;51975:6;51971:15;51964:31;51779:223;:::o;52008:230::-;52148:34;52144:1;52136:6;52132:14;52125:58;52217:13;52212:2;52204:6;52200:15;52193:38;52008:230;:::o;52244:229::-;52384:34;52380:1;52372:6;52368:14;52361:58;52453:12;52448:2;52440:6;52436:15;52429:37;52244:229;:::o;52479:165::-;52619:17;52615:1;52607:6;52603:14;52596:41;52479:165;:::o;52650:228::-;52790:34;52786:1;52778:6;52774:14;52767:58;52859:11;52854:2;52846:6;52842:15;52835:36;52650:228;:::o;52884:229::-;53024:34;53020:1;53012:6;53008:14;53001:58;53093:12;53088:2;53080:6;53076:15;53069:37;52884:229;:::o;53119:171::-;53259:23;53255:1;53247:6;53243:14;53236:47;53119:171;:::o;53296:178::-;53436:30;53432:1;53424:6;53420:14;53413:54;53296:178;:::o;53480:233::-;53620:34;53616:1;53608:6;53604:14;53597:58;53689:16;53684:2;53676:6;53672:15;53665:41;53480:233;:::o;53719:224::-;53859:34;53855:1;53847:6;53843:14;53836:58;53928:7;53923:2;53915:6;53911:15;53904:32;53719:224;:::o;53949:237::-;54089:34;54085:1;54077:6;54073:14;54066:58;54158:20;54153:2;54145:6;54141:15;54134:45;53949:237;:::o;54192:245::-;54332:34;54328:1;54320:6;54316:14;54309:58;54401:28;54396:2;54388:6;54384:15;54377:53;54192:245;:::o;54443:229::-;54583:34;54579:1;54571:6;54567:14;54560:58;54652:12;54647:2;54639:6;54635:15;54628:37;54443:229;:::o;54678:227::-;54818:34;54814:1;54806:6;54802:14;54795:58;54887:10;54882:2;54874:6;54870:15;54863:35;54678:227;:::o;54911:222::-;55051:34;55047:1;55039:6;55035:14;55028:58;55120:5;55115:2;55107:6;55103:15;55096:30;54911:222;:::o;55139:228::-;55279:34;55275:1;55267:6;55263:14;55256:58;55348:11;55343:2;55335:6;55331:15;55324:36;55139:228;:::o;55373:::-;55513:34;55509:1;55501:6;55497:14;55490:58;55582:11;55577:2;55569:6;55565:15;55558:36;55373:228;:::o;55607:227::-;55747:34;55743:1;55735:6;55731:14;55724:58;55816:10;55811:2;55803:6;55799:15;55792:35;55607:227;:::o;55840:220::-;55980:34;55976:1;55968:6;55964:14;55957:58;56049:3;56044:2;56036:6;56032:15;56025:28;55840:220;:::o;56066:176::-;56206:28;56202:1;56194:6;56190:14;56183:52;56066:176;:::o;56248:711::-;56287:3;56325:4;56307:16;56304:26;56301:39;;;56333:5;;56301:39;56362:20;;:::i;:::-;56437:1;56419:16;56415:24;56412:1;56406:4;56391:49;56470:4;56464:11;56569:16;56562:4;56554:6;56550:17;56547:39;56514:18;56506:6;56503:30;56487:113;56484:146;;;56615:5;;;;56484:146;56661:6;56655:4;56651:17;56697:3;56691:10;56724:18;56716:6;56713:30;56710:43;;;56746:5;;;;;;56710:43;56794:6;56787:4;56782:3;56778:14;56774:27;56853:1;56835:16;56831:24;56825:4;56821:35;56816:3;56813:44;56810:57;;;56860:5;;;;;;;56810:57;56877;56925:6;56919:4;56915:17;56907:6;56903:30;56897:4;56877:57;:::i;:::-;56950:3;56943:10;;56291:668;;;;;56248:711;;:::o;56965:116::-;57049:1;57042:5;57039:12;57029:46;;57055:18;;:::i;:::-;57029:46;56965:116;:::o;57087:122::-;57160:24;57178:5;57160:24;:::i;:::-;57153:5;57150:35;57140:63;;57199:1;57196;57189:12;57140:63;57087:122;:::o;57215:116::-;57285:21;57300:5;57285:21;:::i;:::-;57278:5;57275:32;57265:60;;57321:1;57318;57311:12;57265:60;57215:116;:::o;57337:120::-;57409:23;57426:5;57409:23;:::i;:::-;57402:5;57399:34;57389:62;;57447:1;57444;57437:12;57389:62;57337:120;:::o;57463:122::-;57536:24;57554:5;57536:24;:::i;:::-;57529:5;57526:35;57516:63;;57575:1;57572;57565:12;57516:63;57463:122;:::o

Swarm Source

ipfs://0d206447571fb08219b65b5fa568c3816f657d88c1ac084519147de2b5add18c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading