Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Export Items Fro... | 6508112 | 4 days ago | IN | 0 ETH | 0.00000863 | ||||
Export Items Fro... | 6508103 | 4 days ago | IN | 0 ETH | 0.00002135 | ||||
Export Items Fro... | 6508062 | 4 days ago | IN | 0 ETH | 0.00001192 | ||||
Export Items Fro... | 6508051 | 4 days ago | IN | 0 ETH | 0.00001218 | ||||
Import Items Int... | 6507297 | 4 days ago | IN | 0 ETH | 0.00000613 | ||||
Export Items Fro... | 6507042 | 4 days ago | IN | 0 ETH | 0.00001257 | ||||
Set Paused | 6503459 | 5 days ago | IN | 0 ETH | 0.00000294 | ||||
Initialize | 6502235 | 5 days ago | IN | 0 ETH | 0.00000437 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH | ||||
6508112 | 4 days ago | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
ImportExportSystem
Compiler Version
v0.8.28+commit.7893614a
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {ID as GAME_ITEMS_CONTRACT_ID, IGameItems} from "../tokens/IGameItems.sol"; import {DataTable} from "../db/DataTable.sol"; import {MANAGER_ROLE, SERVER_JUDGE_ROLE, DEPLOYER_ROLE} from "../constants/RoleConstants.sol"; import {PLAYER_CID, GAME_ITEM_ID_CID, IMPORT_AMOUNT_CID, NAME_CID, EXPORT_AMOUNT_CID, ID_CID, EXPORT_LICENSE_CID, IS_SOULBOUND_CID} from "../constants/ColumnConstants.sol"; uint256 constant ID = uint256(keccak256("game.gigaverse.system.importexport")); contract ImportExportSystem is DataTable { constructor(address gameRegistryAddress) DataTable(gameRegistryAddress, ID) {} function initialize() external override onlyRole(DEPLOYER_ROLE) { initializeTable("ImportExportSystem", ID); } //////////////////// // Public Writes // ////////////////// function importItemsIntoGame(uint256[] memory itemIds, uint256[] memory itemAmounts) external whenNotPaused returns (uint256) { return _importItemsIntoGame(msg.sender, itemIds, itemAmounts); } //////////////////// // Public Reads /// ////////////////// function getGameItemExportLicense(uint256 itemId) public view returns (uint256) { return getDocUint256Value(_getGameItemDocId(itemId), EXPORT_LICENSE_CID); } function playerCanExportItem(address player, uint256 itemId) public view returns (bool) { if (!isExportable(itemId)) { return false; } uint256 exportLicenseId = getGameItemExportLicense(itemId); if (exportLicenseId == 0) { return true; } IGameItems gameItemContract = IGameItems(_gameRegistry.getSystem(GAME_ITEMS_CONTRACT_ID)); return gameItemContract.balanceOf(player, exportLicenseId) > 0; } function isExportable(uint256 itemId) public view returns (bool) { // SOULBOUND Column on this contract is used for marking as not exportable -- Not representing tradability // It is okay if a souldbound game item is exportable. return !getDocBoolValue(_getGameItemDocId(itemId), IS_SOULBOUND_CID); } ////////////// // Manager // //////////// function importItemsIntoGameForPlayer(address player, uint256[] memory itemIds, uint256[] memory itemAmounts) external onlyRole(SERVER_JUDGE_ROLE) whenNotPaused returns (uint256) { return _importItemsIntoGame(player, itemIds, itemAmounts); } function exportItemsFromGame(address player, uint256[] memory itemIds, uint256[] memory itemAmounts, string memory offchainId) external onlyRole(SERVER_JUDGE_ROLE) whenNotPaused returns (uint256) { return _exportItemsFromGame(player, itemIds, itemAmounts, offchainId); } function setGameItemExportLicense(uint256 itemId, uint256 licenseId) external onlyRole(MANAGER_ROLE) whenNotPaused { _setDocUint256Value(_getGameItemDocId(itemId), EXPORT_LICENSE_CID, licenseId); _setDocUint256Value(_getGameItemDocId(itemId), GAME_ITEM_ID_CID, itemId); } function setItemIsExportable(uint256 itemId, bool exportable) external onlyRole(MANAGER_ROLE) whenNotPaused { _setDocBoolValue(_getGameItemDocId(itemId), IS_SOULBOUND_CID, !exportable); } //////////////////////// // Internal Helpers /// ////////////////////// function _importItemsIntoGame(address player, uint256[] memory itemIds, uint256[] memory itemAmounts) internal returns (uint256) { uint256 txId = _getAndIncrementAutoIncId(); IGameItems(_gameRegistry.getSystem(GAME_ITEMS_CONTRACT_ID)).burnBatch(player, itemIds, itemAmounts); _createTxDoc(txId, player, itemIds, itemAmounts, true); return txId; } function _exportItemsFromGame(address player, uint256[] memory itemIds, uint256[] memory itemAmounts, string memory offchainId) internal returns (uint256) { uint256 txId = _getAndIncrementAutoIncId(); uint256 exportDocId = getExportDocId(offchainId); _trackExport(exportDocId, txId, offchainId); IGameItems gameItems = IGameItems(_gameRegistry.getSystem(GAME_ITEMS_CONTRACT_ID)); for (uint256 i = 0; i < itemIds.length; i++) { require(playerCanExportItem(player, itemIds[i]), "Player does not have export license"); gameItems.mint(player, itemIds[i], itemAmounts[i]); } _createTxDoc(txId, player, itemIds, itemAmounts, false); return txId; } function getExportDocId(string memory offchainId) internal pure returns (uint256) { return uint256(keccak256(abi.encodePacked("export", offchainId))); } function _trackExport(uint256 exportDocId, uint256 txId, string memory offchainId) internal { require(getDocUint256Value(exportDocId, ID_CID) == 0, "Export doc already exists"); _setDocUint256Value(exportDocId, ID_CID, txId); _setDocStringValue(exportDocId, NAME_CID, offchainId); } function _createTxDoc(uint256 txId, address player, uint256[] memory itemIds, uint256[] memory itemAmounts, bool isImport) internal { _setDocAddressValue(txId, PLAYER_CID, player); _setDocUint256ArrayValue(txId, GAME_ITEM_ID_CID, itemIds); if (isImport) { _setDocUint256ArrayValue(txId, IMPORT_AMOUNT_CID, itemAmounts); } else { _setDocUint256ArrayValue(txId, EXPORT_AMOUNT_CID, itemAmounts); } } function _getPlayerItemDocId(address player, uint256 itemId) internal pure returns (uint256) { return uint256(keccak256(abi.encodePacked(player, itemId))); } function _getGameItemDocId(uint256 itemId) internal pure returns (uint256) { return uint256(keccak256(abi.encodePacked("item", itemId))); } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; uint256 constant ID = uint256(keccak256("game.gigaverse.gameitems")); interface IGameItems is IERC1155 { /** * Mints a ERC1155 token * * @param to Recipient of the token * @param id Id of token to mint * @param amount Quantity of token to mint */ function mint(address to, uint256 id, uint256 amount) external; /** * Burn a token - any payment / game logic should be handled in the game contract. * * @param from Account to burn from * @param id Id of the token to burn * @param amount Quantity to burn */ function burn(address from, uint256 id, uint256 amount) external; /** * @param id Id of the type to get data for * * @return How many of the given token id have been minted */ function minted(uint256 id) external view returns (uint256); function burnBatch(address from, uint256[] memory ids, uint256[] memory amounts) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; import {DataStore, ID as DATA_STORE_ID} from "./DataStore.sol"; import {DEPLOYER_ROLE} from "../constants/RoleConstants.sol"; import {NAME_CID, ADDRESS_CID, ID_CID, NEXT_DOCID_CID, OWNER_CID} from "../constants/ColumnConstants.sol"; import {GameRegistryConsumer} from "../core/GameRegistryConsumer.sol"; contract DataTable is GameRegistryConsumer { error AlreadyInitialized(); bool private _initialized; constructor(address gameRegistryAddress, uint256 ID) GameRegistryConsumer(gameRegistryAddress, ID) {} function owner() public view virtual returns (address) { return getTableAddressValue(OWNER_CID); } function name() public view virtual returns (string memory) { return getTableStringValue(NAME_CID); } function initializeTable(string memory nameToSet, uint256 id) internal { if (_initialized) { revert AlreadyInitialized(); } _setTableAddressValue(ADDRESS_CID, address(this)); _setTableAddressValue(OWNER_CID, msg.sender); _setTableStringValue(NAME_CID, nameToSet); _setTableUint256Value(ID_CID, id); _initialized = true; } function getTableId() public virtual view returns (uint256) { return getId(); } function _getAndIncrementAutoIncId() internal returns (uint256) { uint256 currentId = getTableUint256Value(NEXT_DOCID_CID); _setTableUint256Value(NEXT_DOCID_CID, currentId + 1); return currentId + 1; } function _incrementAmount(uint256 docId, uint256 columnId, uint256 amount) internal { uint256 currentAmount = getDocUint256Value(docId, columnId); _setDocUint256Value(docId, columnId, currentAmount + amount); } function _decrementAmount(uint256 docId, uint256 columnId, uint256 amount) internal { uint256 currentAmount = getDocUint256Value(docId, columnId); _setDocUint256Value(docId, columnId, currentAmount - amount); } function _setTableStringValue(uint256 columnId, string memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setString(getTableId(), 0, columnId, value); } function _setTableUint256Value(uint256 columnId, uint256 value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256(getTableId(), 0, columnId, value); } function _setTableAddressValue(uint256 columnId, address value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddress(getTableId(), 0, columnId, value); } function _setTableBoolValue(uint256 columnId, bool value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBool(getTableId(), 0, columnId, value); } function _setTableAdddressValue(uint256 columnId, address value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddress(getTableId(), 0, columnId, value); } function _setTableUint256ArrayValue(uint256 columnId, uint256[] memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256ArrayValue(getTableId(), 0, columnId, value); } function _setTableBoolArrayValue(uint256 columnId, bool[] memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBoolArrayValue(getTableId(), 0, columnId, value); } function _setTableAddressArrayValue(uint256 columnId, address[] memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddressArrayValue(getTableId(), 0, columnId, value); } function _setDocAddressArrayValue(uint256 docId, uint256 columnId, address[] memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddressArrayValue(getTableId(), docId, columnId, value); } function _setDocBoolArrayValue(uint256 docId, uint256 columnId, bool[] memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBoolArrayValue(getTableId(), docId, columnId, value); } function _setDocStringValue(uint256 docId, uint256 columnId, string memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setString(getTableId(), docId, columnId, value); } function _setDocUint256Value(uint256 docId, uint256 columnId, uint256 value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256(getTableId(), docId, columnId, value); } function _setDocUint256ArrayValue(uint256 docId, uint256 columnId, uint256[] memory value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setUint256ArrayValue(getTableId(), docId, columnId, value); } function _setDocBoolValue(uint256 docId, uint256 columnId, bool value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setBool(getTableId(), docId, columnId, value); } function _setDocAddressValue(uint256 docId, uint256 columnId, address value) internal { DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).setAddress(getTableId(), docId, columnId, value); } function getTableBoolValue(uint256 columnId) public view returns (bool) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getBool(getTableId(), 0, columnId); } function getTableUint256Value(uint256 columnId) public view returns (uint256) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256(getTableId(), 0, columnId); } function getTableStringValue(uint256 columnId) public view returns (string memory) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getString(getTableId(), 0, columnId); } function getTableAddressValue(uint256 columnId) public view returns (address) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getAddress(getTableId(), 0, columnId); } function getTableUint256ArrayValue(uint256 columnId) public view returns (uint256[] memory) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256Array(getTableId(), 0, columnId); } function getDocUint256ArrayValue(uint256 docId, uint256 columnId) public view returns (uint256[] memory) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256Array(getTableId(), docId, columnId); } function getDocStringValue(uint256 docId, uint256 columnId) public view returns (string memory) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getString(getTableId(), docId, columnId); } function getDocUint256Value(uint256 docId, uint256 columnId) public view returns (uint256) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getUint256(getTableId(), docId, columnId); } function getDocBoolValue(uint256 docId, uint256 columnId) public view returns (bool) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getBool(getTableId(), docId, columnId); } function getDocAddressValue(uint256 docId, uint256 columnId) public view returns (address) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).getAddress(getTableId(), docId, columnId); } function hasDocStringValue(uint256 docId, uint256 columnId) public view returns (bool) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).hasStringValue(getTableId(), docId, columnId); } function hasDocValue(uint256 docId, uint256 columnId) public view returns (bool) { return DataStore(_gameRegistry.getSystem(DATA_STORE_ID)).hasValue(getTableId(), docId, columnId); } function getPlayerDocId(address player) public pure returns (uint256) { return uint256(uint160(player)); } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; // Pauser Role - Can pause the game bytes32 constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); // Minter Role - Can mint items, NFTs, and ERC20 currency bytes32 constant MINTER_ROLE = keccak256("MINTER_ROLE"); // Manager Role - Can manage the shop, loot tables, and other game data bytes32 constant MANAGER_ROLE = keccak256("MANAGER_ROLE"); // Depoloyer Role - Can Deploy new Systems bytes32 constant DEPLOYER_ROLE = keccak256("DEPLOYER_ROLE"); // Game Logic Contract - Contract that executes game logic and accesses other systems bytes32 constant GAME_LOGIC_CONTRACT_ROLE = keccak256("GAME_LOGIC_CONTRACT_ROLE"); // For functions callable from game server bytes32 constant SERVER_JUDGE_ROLE = keccak256("SERVER_JUDGE_ROLE");
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; uint256 constant NAME_CID = uint256(keccak256("name")); uint256 constant DESCRIPTION_CID = uint256(keccak256("description")); uint256 constant LEVEL_CID = uint256(keccak256("level")); uint256 constant IS_NOOB_CID = uint256(keccak256("is_noob")); uint256 constant NOOB_TOKEN_CID = uint256(keccak256("noob_tokend_id")); uint256 constant GIGA_NAME_TOKENDID_CID = uint256(keccak256("giganame_tokend_id")); uint256 constant IS_GIGA_NAME_CID = uint256(keccak256("is_giga_name")); uint256 constant GAME_ITEM_ID_CID = uint256(keccak256("game_item_id")); uint256 constant UINT256_CID = uint256(keccak256("int256")); uint256 constant ETH_MINT_PRICE_CID = uint256(keccak256("eth_mint_price")); uint256 constant NEXT_DOCID_CID = uint256(keccak256("next_token_id")); uint256 constant ID_CID = uint256(keccak256("id")); uint256 constant BASE_NAME_CID = uint256(keccak256("base_name")); uint256 constant BASE_URI_CID = uint256(keccak256("base_uri")); uint256 constant LAST_TRANSFER_TIME_CID = uint256(keccak256("last_transfer_time")); uint256 constant OWNER_CID = uint256(keccak256("owner")); uint256 constant INITIALIZED_CID = uint256(keccak256("initialized")); uint256 constant MAX_SUPPLY_CID = uint256(keccak256("max_supply")); uint256 constant ADDRESS_CID = uint256(keccak256("address")); uint256 constant IS_SOULBOUND_CID = uint256(keccak256("soulbound")); uint256 constant TIME_BETWEEN_CID = uint256(keccak256("time_between")); uint256 constant TIMESTAMP_CID = uint256(keccak256("timestamp")); uint256 constant IMG_URL_CID = uint256(keccak256("img_url")); uint256 constant PLAYER_CID = uint256(keccak256("player")); uint256 constant MINT_COUNT_CID = uint256(keccak256("mint_count")); uint256 constant CONTRACT_URI_CID = uint256(keccak256("contract_uri")); uint256 constant IS_RECYCLABLE_CID = uint256(keccak256("is_recyclable")); uint256 constant BURN_COUNT_CID = uint256(keccak256("burn_count")); uint256 constant BALANCE_CID = uint256(keccak256("balance")); uint256 constant ICON_URL_CID = uint256(keccak256("icon_url")); uint256 constant DUNGEON_ID_CID = uint256(keccak256("dungeon_id")); uint256 constant ENERGY_CID = uint256(keccak256("energy")); uint256 constant IS_CANCELLED_CID = uint256(keccak256("is_cancelled")); uint256 constant SPRITE_SHEET_URL_CID = uint256(keccak256("sprite_sheet_url")); uint256 constant IMPORT_AMOUNT_CID = uint256(keccak256("import_amount")); uint256 constant EXPORT_AMOUNT_CID = uint256(keccak256("export_amount")); uint256 constant EXPORT_LICENSE_CID = uint256(keccak256("export_license")); uint256 constant UNLOCKED_CID = uint256(keccak256("unlocked")); uint256 constant FACTION_CID = uint256(keccak256("faction"));
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @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 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; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./DataTypes.sol"; import {IDataStore, ID} from "./IDataStore.sol"; import {GameRegistryConsumer} from "../core/GameRegistryConsumer.sol"; import {GAME_LOGIC_CONTRACT_ROLE} from "../constants/RoleConstants.sol"; contract DataStore is IDataStore, GameRegistryConsumer { using DataTypes for *; mapping(uint256 => mapping(uint256 => bytes32)) public datastore; mapping(uint256 => mapping(uint256 => bytes32[])) public arrayStore; mapping(uint256 => mapping(uint256 => string)) private stringStore; mapping(uint256 => bytes32) public columnTypes; constructor(address gameRegistryAddress) GameRegistryConsumer(gameRegistryAddress, ID) {} function generateKey(uint256 docId, uint256 colId) public pure returns (uint256) { return uint256(keccak256(abi.encodePacked(docId, colId))); } function generateArrayKey (uint256 docId, uint256 colId) public pure returns (uint256) { return uint256(keccak256(abi.encodePacked(docId, colId, "__array"))); } function setValue(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { datastore[tableId][uint256(keccak256(abi.encodePacked(docId, colId)))] = value; emit ValueSet(tableId, docId, colId, value); } function setArrayValue(uint256 tableId, uint256 docId, uint256 colId, bytes32[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { arrayStore[tableId][generateArrayKey(docId, colId)] = value; emit ArrayValueSet(tableId, docId, colId, value); } function setUint256ArrayValue(uint256 tableId, uint256 docId, uint256 colId, uint256[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require (getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256ARRAY"); bytes32[] memory packedValues = new bytes32[](value.length); for (uint256 i = 0; i < value.length; i++) { packedValues[i] = value[i].packUint256(); } setArrayValue(tableId, docId, colId, packedValues); } function setBoolArrayValue(uint256 tableId, uint256 docId, uint256 colId, bool[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require (getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOLARRAY"); bytes32[] memory packedValues = new bytes32[](value.length); for (uint256 i = 0; i < value.length; i++) { packedValues[i] = value[i].packBool(); } setArrayValue(tableId, docId, colId, packedValues); } function setAddressArrayValue(uint256 tableId, uint256 docId, uint256 colId, address[] memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require (getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESSARRAY"); bytes32[] memory packedValues = new bytes32[](value.length); for (uint256 i = 0; i < value.length; i++) { packedValues[i] = value[i].packAddress(); } setArrayValue(tableId, docId, colId, packedValues); } function getUint256Array(uint256 tableId, uint256 docId, uint256 colId) public view returns (uint256[] memory) { require (getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256"); bytes32[] memory byteArray = arrayStore[tableId][generateArrayKey(docId, colId)]; uint256[] memory uintArray = new uint256[](byteArray.length); for (uint256 i = 0; i < byteArray.length; i++) { uintArray[i] = byteArray[i].unpackUint256(); } return uintArray; } function getBoolArray(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool[] memory) { require (getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOL"); bytes32[] memory byteArray = arrayStore[tableId][generateArrayKey(docId, colId)]; bool[] memory boolArray = new bool[](byteArray.length); for (uint256 i = 0; i < byteArray.length; i++) { boolArray[i] = byteArray[i].unpackBool(); } return boolArray; } function getAddressArray(uint256 tableId, uint256 docId, uint256 colId) public view returns (address[] memory) { require (getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESS"); bytes32[] memory byteArray = arrayStore[tableId][generateArrayKey(docId, colId)]; address[] memory addressArray = new address[](byteArray.length); for (uint256 i = 0; i < byteArray.length; i++) { addressArray[i] = byteArray[i].unpackAddress(); } return addressArray; } function getValue(uint256 tableId, uint256 docId, uint256 colId) public view returns (bytes32) { return datastore[tableId][uint256(keccak256(abi.encodePacked(docId, colId)))]; } function setColumnType(uint256 colId, IDataStore.ColumnType columnType) public onlyRole(GAME_LOGIC_CONTRACT_ROLE) { require(!isColumnTypeSet(colId), "Column type already set"); columnTypes[colId] = bytes32(uint256(columnType)); emit ColumnTypeSet(colId, columnType); } function isColumnTypeSet(uint256 colId) public view returns (bool) { return columnTypes[colId] != bytes32(0); } function getColumnType(uint256 colId) public view returns (IDataStore.ColumnType) { bytes32 typeValue = columnTypes[colId]; require(typeValue != bytes32(0), "Column type not set"); return IDataStore.ColumnType(uint8(uint256(typeValue))); } // Type-specific setters function setUint256(uint256 tableId, uint256 docId, uint256 colId, uint256 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256"); setValue(tableId, docId, colId, value.packUint256()); } function setInt256(uint256 tableId, uint256 docId, uint256 colId, int256 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.INT256, "Column is not INT256"); setValue(tableId, docId, colId, value.packInt256()); } function setBool(uint256 tableId, uint256 docId, uint256 colId, bool value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOL"); setValue(tableId, docId, colId, value.packBool()); } function setAddress(uint256 tableId, uint256 docId, uint256 colId, address value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESS"); setValue(tableId, docId, colId, value.packAddress()); } function setBytes32(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.BYTES32, "Column is not BYTES32"); setValue(tableId, docId, colId, value); } function setString(uint256 tableId, uint256 docId, uint256 colId, string memory value) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ require(getColumnType(colId) == IDataStore.ColumnType.STRING, "Column is not STRING"); uint256 key = generateKey(docId, colId); stringStore[tableId][key] = value; emit StringValueSet(tableId, docId, colId, value); } function deleteValue(uint256 tableId, uint256 docId, uint256 colId) public onlyRole(GAME_LOGIC_CONTRACT_ROLE){ uint256 key = generateKey(docId, colId); delete datastore[tableId][key]; } // Type-specific getters function getUint256(uint256 tableId, uint256 docId, uint256 colId) public view returns (uint256) { require(getColumnType(colId) == IDataStore.ColumnType.UINT256, "Column is not UINT256"); return getValue(tableId, docId, colId).unpackUint256(); } function getInt256(uint256 tableId, uint256 docId, uint256 colId) public view returns (int256) { require(getColumnType(colId) == IDataStore.ColumnType.INT256, "Column is not INT256"); return getValue(tableId, docId, colId).unpackInt256(); } function getBool(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool) { require(getColumnType(colId) == IDataStore.ColumnType.BOOL, "Column is not BOOL"); return getValue(tableId, docId, colId).unpackBool(); } function getAddress(uint256 tableId, uint256 docId, uint256 colId) public view returns (address) { require(getColumnType(colId) == IDataStore.ColumnType.ADDRESS, "Column is not ADDRESS"); return getValue(tableId, docId, colId).unpackAddress(); } function getBytes32(uint256 tableId, uint256 docId, uint256 colId) public view returns (bytes32) { require(getColumnType(colId) == IDataStore.ColumnType.BYTES32, "Column is not BYTES32"); return getValue(tableId, docId, colId); } function getString(uint256 tableId, uint256 docId, uint256 colId) public view returns (string memory) { require(getColumnType(colId) == IDataStore.ColumnType.STRING, "Column is not STRING"); uint256 key = generateKey(docId, colId); return stringStore[tableId][key]; } function hasValue(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool) { uint256 key = generateKey(docId, colId); return datastore[tableId][key] != bytes32(0); } function hasStringValue(uint256 tableId, uint256 docId, uint256 colId) public view returns (bool) { uint256 key = generateKey(docId, colId); return keccak256(bytes(stringStore[tableId][key])) != keccak256(bytes("")); } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.13; import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import {PAUSER_ROLE, MANAGER_ROLE} from "../constants/RoleConstants.sol"; import {ISystem} from "./ISystem.sol"; import {IGameRegistry, IERC165} from "./IGameRegistry.sol"; import {IDataStore, ID as DATA_STORE_ID} from "../db/IDataStore.sol"; import {DEPLOYER_ROLE} from "../constants/RoleConstants.sol"; /** @title Contract that lets a child contract access the GameRegistry contract */ abstract contract GameRegistryConsumer is ReentrancyGuard, ISystem { /// @notice Whether or not the contract is paused bool private _paused; /// @notice Reference to the game registry that this contract belongs to IGameRegistry internal _gameRegistry; /// @notice Id for the system/component uint256 private _id; /** EVENTS **/ /// @dev Emitted when the pause is triggered by `account`. event Paused(address account); /// @dev Emitted when the pause is lifted by `account`. event Unpaused(address account); /** ERRORS **/ /// @notice Not authorized to perform action error MissingRole(address account, bytes32 expectedRole); /** MODIFIERS **/ /// @notice Modifier to verify a user has the appropriate role to call a given function modifier onlyRole(bytes32 role) { _checkRole(role, msg.sender); _; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** ERRORS **/ /// @notice Error if the game registry specified is invalid error InvalidGameRegistry(); /** SETUP **/ /** @return ID for this system */ function getId() public view override returns (uint256) { return _id; } /** * Pause/Unpause the contract * * @param shouldPause Whether or pause or unpause */ function setPaused(bool shouldPause) external onlyRole(PAUSER_ROLE) { if (shouldPause) { _pause(); } else { _unpause(); } } /** * @dev Returns true if the contract OR the GameRegistry is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused || _gameRegistry.paused(); } /** * Sets the GameRegistry contract address for this contract * * @param gameRegistryAddress Address for the GameRegistry contract */ function setGameRegistry( address gameRegistryAddress ) external onlyRole(MANAGER_ROLE) { _gameRegistry = IGameRegistry(gameRegistryAddress); if (gameRegistryAddress == address(0)) { revert InvalidGameRegistry(); } } /** @return GameRegistry contract for this contract */ function getGameRegistry() external view returns (IGameRegistry) { return _gameRegistry; } /** INTERNAL **/ /** * @dev Returns `true` if `account` has been granted `role`. */ function _hasAccessRole( bytes32 role, address account ) internal view returns (bool) { return _gameRegistry.hasAccessRole(role, account); } /** * @dev Revert with a standard message if `account` is missing `role`. * * The format of the revert reason is given by the following regular expression: * * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/ */ function _checkRole(bytes32 role, address account) internal view virtual { if (!_gameRegistry.hasAccessRole(role, account)) { revert MissingRole(account, role); } } /** @return Returns the dataStore for this contract */ function _dataStore() internal view returns (IDataStore) { return IDataStore(_getSystem(DATA_STORE_ID)); } /** @return Address for a given system */ function _getSystem(uint256 systemId) internal view returns (address) { return _gameRegistry.getSystem(systemId); } /** PAUSABLE **/ /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual { require(_paused == false, "Pausable: not paused"); _paused = true; emit Paused(msg.sender); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual { require(_paused == true, "Pausable: not paused"); _paused = false; emit Unpaused(msg.sender); } function initialize() external virtual onlyRole(DEPLOYER_ROLE) { } /** * Constructor for this contract * * @param gameRegistryAddress Address of the GameRegistry contract * @param id Id of the system/component */ constructor( address gameRegistryAddress, uint256 id ) { _gameRegistry = IGameRegistry(gameRegistryAddress); if (gameRegistryAddress == address(0)) { revert InvalidGameRegistry(); } _paused = true; _id = id; } }
// SPDX-License-Identifier: MIT // 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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.9; library DataTypes { // Pack and unpack uint256 function packUint256(uint256 value) internal pure returns (bytes32) { return bytes32(value); } function unpackUint256(bytes32 packed) internal pure returns (uint256) { return uint256(packed); } // Pack and unpack int256 function packInt256(int256 value) internal pure returns (bytes32) { return bytes32(uint256(value)); } function unpackInt256(bytes32 packed) internal pure returns (int256) { return int256(uint256(packed)); } // Pack and unpack address function packAddress(address value) internal pure returns (bytes32) { return bytes32(uint256(uint160(value))); } function unpackAddress(bytes32 packed) internal pure returns (address) { return address(uint160(uint256(packed))); } // Pack and unpack bool function packBool(bool value) internal pure returns (bytes32) { return bytes32(uint256(value ? 1 : 0)); } function unpackBool(bytes32 packed) internal pure returns (bool) { return uint256(packed) == 1; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; uint256 constant ID = uint256(keccak256("game.gigaverse.datastore")); interface IDataStore { enum ColumnType { NONE, UINT256, INT256, BOOL, ADDRESS, BYTES32, STRING, UINT256_ARRAY } event ValueSet(uint256 indexed tableId, uint256 indexed docId, uint256 indexed colId, bytes32 value); event StringValueSet(uint256 indexed tableId, uint256 indexed docId, uint256 indexed colId, string value); event ArrayValueSet(uint256 indexed tableId, uint256 indexed docId, uint256 indexed colId, bytes32[] value); event ColumnTypeSet(uint256 indexed colId, ColumnType columnType); function setValue(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) external; function getValue(uint256 tableId, uint256 docId, uint256 colId) external view returns (bytes32); function setColumnType(uint256 colId, ColumnType columnType) external; function getColumnType(uint256 colId) external view returns (ColumnType); // Type-specific setters function setUint256(uint256 tableId, uint256 docId, uint256 colId, uint256 value) external; function setInt256(uint256 tableId, uint256 docId, uint256 colId, int256 value) external; function setBool(uint256 tableId, uint256 docId, uint256 colId, bool value) external; function setAddress(uint256 tableId, uint256 docId, uint256 colId, address value) external; function setBytes32(uint256 tableId, uint256 docId, uint256 colId, bytes32 value) external; function setString(uint256 tableId, uint256 docId, uint256 colId, string memory value) external; // Type-specific getters function getUint256(uint256 tableId, uint256 docId, uint256 colId) external view returns (uint256); function getInt256(uint256 tableId, uint256 docId, uint256 colId) external view returns (int256); function getBool(uint256 tableId, uint256 docId, uint256 colId) external view returns (bool); function getAddress(uint256 tableId, uint256 docId, uint256 colId) external view returns (address); function getBytes32(uint256 tableId, uint256 docId, uint256 colId) external view returns (bytes32); function getString(uint256 tableId, uint256 docId, uint256 colId) external view returns (string memory); function deleteValue(uint256 tableId, uint256 docId, uint256 colId) external; function hasValue(uint256 tableId, uint256 docId, uint256 colId) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; /** * Defines a system the game engine */ interface ISystem { /** @return The ID for the system. Ex: a uint256 casted keccak256 hash */ function getId() external view returns (uint256); function initialize() external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.9; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; // @title Interface the game's ACL / Management Layer interface IGameRegistry is IERC165 { /** * @dev Returns `true` if `account` has been granted `role`. * @param role The role to query * @param account The address to query */ function hasAccessRole( bytes32 role, address account ) external view returns (bool); /** * @return Whether or not the registry is paused */ function paused() external view returns (bool); /** * Registers a system by id * * @param systemId Id of the system * @param systemAddress Address of the system contract */ function registerSystem(uint256 systemId, address systemAddress, bool isGameLogicContract) external; /** * @param systemId Id of the system * @return System based on an id */ function getSystem(uint256 systemId) external view returns (address); }
{ "viaIR": false, "codegen": "yul", "remappings": [ "@limitbreak/creator-token-standards/=lib/creator-token-standards/", "@openzeppelin/=lib/creator-token-standards/lib/openzeppelin-contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "murky/=lib/murky/src/", "erc721a/=lib/ERC721A/", "@creator-token-standards/=lib/creator-token-standards/src/", "@limitbreak/permit-c/=lib/creator-token-standards/lib/PermitC/src/", "@opensea/tstorish/=lib/creator-token-standards/lib/tstorish/src/", "@rari-capital/solmate/=lib/creator-token-standards/lib/PermitC/lib/solmate/", "ERC721A/=lib/ERC721A/contracts/", "PermitC/=lib/creator-token-standards/lib/PermitC/", "creator-token-standards/=lib/creator-token-standards/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-gas-metering/=lib/creator-token-standards/lib/PermitC/lib/forge-gas-metering/", "forge-zksync-std/=lib/forge-zksync-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin/=lib/creator-token-standards/lib/PermitC/lib/openzeppelin-contracts/contracts/", "solady/=lib/creator-token-standards/lib/PermitC/lib/forge-gas-metering/lib/solady/", "solmate/=lib/creator-token-standards/lib/PermitC/lib/solmate/src/", "tstorish/=lib/creator-token-standards/lib/tstorish/src/" ], "evmVersion": "cancun", "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": false, "disable_system_request_memoization": true }, "metadata": {}, "libraries": {}, "enableEraVMExtensions": false, "forceEVMLA": false }
[{"inputs":[{"internalType":"address","name":"gameRegistryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InvalidGameRegistry","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"expectedRole","type":"bytes32"}],"name":"MissingRole","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"itemAmounts","type":"uint256[]"},{"internalType":"string","name":"offchainId","type":"string"}],"name":"exportItemsFromGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocAddressValue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocBoolValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocStringValue","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocUint256ArrayValue","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getDocUint256Value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"getGameItemExportLicense","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGameRegistry","outputs":[{"internalType":"contract IGameRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getPlayerDocId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableAddressValue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableBoolValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTableId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableStringValue","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableUint256ArrayValue","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"getTableUint256Value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"hasDocStringValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"docId","type":"uint256"},{"internalType":"uint256","name":"columnId","type":"uint256"}],"name":"hasDocValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"itemAmounts","type":"uint256[]"}],"name":"importItemsIntoGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"itemAmounts","type":"uint256[]"}],"name":"importItemsIntoGameForPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"isExportable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"playerCanExportItem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"licenseId","type":"uint256"}],"name":"setGameItemExportLicense","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"gameRegistryAddress","type":"address"}],"name":"setGameRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"bool","name":"exportable","type":"bool"}],"name":"setItemIsExportable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"shouldPause","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000a0bac0c6da6cc899e26ec64685c6276c839cb4de7d89b8b2572b0a63a5600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b5f84708957e5628c363709ae1d4cb346081fbf6
Deployed Bytecode
0x0002000000000002000b0000000000020000000004020019000000000301034f000100000001035500000060011002700000098d021001970000000100400190000000370000c13d0000008001000039000000400010043f000000040020008c0000005a0000413d000000000123034f000000000403043b000000e004400270000009950040009c0000005c0000213d000009ab0040009c000000890000a13d000009ac0040009c000000c10000213d000009b20040009c0000021f0000213d000009b50040009c000002d00000613d000009b60040009c0000005a0000c13d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000101043b000a00000001001d0000000401300370000000000101043b000b00000001001d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000007210000c13d0000000003000031000000200030008c00000020040000390000000004034019000007450000013d0000000001000416000000000001004b0000005a0000c13d0000001f012000390000098e011001970000008001100039000000400010043f0000001f0420018f0000098f052001980000008001500039000000480000613d0000008006000039000000000703034f000000007807043c0000000006860436000000000016004b000000440000c13d000000000004004b000000550000613d000000000353034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000200020008c0000005a0000413d000000800100043d000009900010009c000000810000a13d00000000010000190000263300010430000009960040009c0000009e0000a13d000009970040009c000000dc0000213d0000099d0040009c0000022b0000213d000009a00040009c000002e50000613d000009a10040009c0000005a0000c13d000000440020008c0000005a0000413d0000000002000416000000000002004b0000005a0000c13d0000002402300370000000000202043b000a00000002001d0000000402300370000000000202043b000b00000002001d0000000102000039000000000202041a000009c903000041000000800030043f000009ca03000041000000840030043f000000000300041400000008022002700000099002200197000000040020008c000007630000c13d0000000003000031000000200030008c00000020040000390000000004034019000007870000013d0000000102000039000000000020041b000000000001004b000000fd0000c13d000009c501000041000000000010043f000009c6010000410000263300010430000009b70040009c0000010c0000a13d000009b80040009c0000013a0000213d000009bb0040009c0000027f0000613d000009bc0040009c0000005a0000c13d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b000009900010009c0000005a0000213d0000002402300370000000000202043b26311acf0000040f000002270000013d000009a20040009c000001270000a13d000009a30040009c000001fc0000213d000009a60040009c000002890000613d000009a70040009c0000005a0000c13d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000401043b0000000401300370000000000301043b0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000b00000003001d000a00000004001d000004b00000c13d0000000003000031000000200030008c00000020040000390000000004034019000004d40000013d000009ad0040009c0000024a0000213d000009b00040009c000002770000613d000009b10040009c0000005a0000c13d000000240020008c0000005a0000413d0000000002000416000000000002004b0000005a0000c13d0000000102000039000000000202041a000009c903000041000000800030043f000009ca03000041000000840030043f000000000300041400000008022002700000099002200197000000040020008c000007ff0000c13d0000000003000031000000200030008c00000020040000390000000004034019000008230000013d000009980040009c000002690000213d0000099b0040009c000003080000613d0000099c0040009c0000005a0000c13d000000440020008c0000005a0000413d0000000002000416000000000002004b0000005a0000c13d0000002402300370000000000202043b000a00000002001d0000000402300370000000000202043b000b00000002001d0000000102000039000000000202041a000009c903000041000000800030043f000009ca03000041000000840030043f000000000300041400000008022002700000099002200197000000040020008c000008a10000c13d0000000003000031000000200030008c00000020040000390000000004034019000008c50000013d000000000302041a000009910330019700000008011002100000099201100197000000000131019f00000001011001bf000000000012041b00000993010000410000000202000039000000000012041b0000002001000039000001000010044300000120000004430000099401000041000026320001042e000009bd0040009c000003cd0000613d000009be0040009c000003ba0000613d000009bf0040009c0000005a0000c13d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000006dd0000c13d0000000003000031000000200030008c00000020040000390000000004034019000007010000013d000009a80040009c000003e80000613d000009a90040009c000002770000613d000009aa0040009c0000005a0000c13d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b263123b70000040f263119f30000040f000000000001004b00000000010000390000000101006039000003110000013d000009b90040009c0000029c0000613d000009ba0040009c0000005a0000c13d000000840020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b000b00000001001d000009900010009c0000005a0000213d0000002401300370000000000101043b000009ce0010009c0000005a0000213d0000002304100039000000000024004b0000005a0000813d0000000404100039000000000443034f000000000504043b000009ce0050009c0000118d0000213d00000005045002100000003f06400039000009d306600197000009d40060009c0000118d0000213d0000008006600039000000400060043f000000800050043f00000024011000390000000004140019000000000024004b0000005a0000213d000000000005004b0000016a0000613d0000008005000039000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000041004b000001630000413d0000004401300370000000000101043b000009ce0010009c0000005a0000213d0000002304100039000000000024004b0000000005000019000009d005008041000009d004400197000000000004004b0000000006000019000009d006004041000009d00040009c000000000605c019000000000006004b0000005a0000c13d0000000404100039000000000443034f000000000404043b000009ce0040009c0000118d0000213d00000005054002100000003f06500039000009d306600197000000400700043d0000000006670019000a00000007001d000000000076004b00000000070000390000000107004039000009ce0060009c0000118d0000213d00000001007001900000118d0000c13d000000400060043f0000000a060000290000000006460436000900000006001d00000024011000390000000005150019000000000025004b0000005a0000213d000000000004004b0000019e0000613d0000000a04000029000000000613034f000000000606043b000000200440003900000000006404350000002001100039000000000051004b000001970000413d0000006401300370000000000401043b000009ce0040009c0000005a0000213d0000002301400039000000000021004b0000000005000019000009d005008041000009d001100197000000000001004b0000000006000019000009d006004041000009d00010009c000000000605c019000000000006004b0000005a0000c13d0000000405400039000000000153034f000000000101043b000009ce0010009c0000118d0000213d0000001f0610003900000a02066001970000003f0660003900000a0206600197000000400700043d0000000006670019000800000007001d000000000076004b00000000070000390000000107004039000009ce0060009c0000118d0000213d00000001007001900000118d0000c13d000000400060043f00000008060000290000000006160436000700000006001d00000000041400190000002404400039000000000024004b0000005a0000213d0000002002500039000000000323034f00000a02041001980000001f0510018f0000000702400029000001d50000613d000000000603034f0000000707000029000000006806043c0000000007870436000000000027004b000001d10000c13d000000000005004b000001e20000613d000000000343034f0000000304500210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000000070110002900000000000104350000000101000039000000000201041a000000400400043d000009c10100004100000000001404350000000401400039000009f203000041000000000031043500000000010004110000099003100197000600000004001d0000002401400039000400000003001d0000000000310435000000000100041400000008022002700000099002200197000000040020008c000011f30000c13d0000000003000031000000200030008c000000200400003900000000040340190000121c0000013d000009a40040009c000002bb0000613d000009a50040009c0000005a0000c13d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000401043b0000000401300370000000000101043b000a00000001001d0000000101000039000000000201041a000009c101000041000000800010043f000009c201000041000000840010043f00000000010004110000099003100197000000a40030043f000000000100041400000008022002700000099002200197000000040020008c000900000004001d000b00000003001d000005210000c13d0000000003000031000000200030008c00000020040000390000000004034019000005450000013d000009b30040009c000003180000613d000009b40040009c0000005a0000c13d0000000001000416000000000001004b0000005a0000c13d26311d3a0000040f000000000001004b0000000001000039000000010100c039000003110000013d0000099e0040009c000003530000613d0000099f0040009c0000005a0000c13d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000101043b000a00000001001d0000000401300370000000000101043b000b00000001001d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000009490000c13d0000000003000031000000200030008c000000200400003900000000040340190000096d0000013d000009ae0040009c000003870000613d000009af0040009c0000005a0000c13d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000101043b000a00000001001d0000000401300370000000000101043b000b00000001001d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000009b50000c13d0000000003000031000000200030008c00000020040000390000000004034019000009d90000013d000009990040009c0000039c0000613d0000099a0040009c0000005a0000c13d0000000001000416000000000001004b0000005a0000c13d0000000101000039000000000101041a00000008011002700000099001100197000000800010043f000009c001000041000026320001042e0000000001000416000000000001004b0000005a0000c13d0000000201000039000000000101041a000000800010043f000009c001000041000026320001042e000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b000009900010009c0000005a0000213d0000027c0000013d0000000001000416000000000001004b0000005a0000c13d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000003fd0000c13d0000000003000031000000200030008c00000020040000390000000004034019000004210000013d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000201043b000000000002004b0000000001000039000000010100c039000b00000002001d000000000012004b0000005a0000c13d0000000101000039000000000201041a000009c101000041000000800010043f000009fd01000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000099002200197000000040020008c00000a950000c13d0000000003000031000000200030008c0000002004000039000000000403401900000ab90000013d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c0000046d0000c13d0000000003000031000000200030008c00000020040000390000000004034019000004910000013d000000240020008c0000005a0000413d0000000002000416000000000002004b0000005a0000c13d0000000102000039000000000202041a000009c903000041000000800030043f000009ca03000041000000840030043f000000000300041400000008022002700000099002200197000000040020008c000006370000c13d0000000003000031000000200030008c000000200400003900000000040340190000065b0000013d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000101043b000000000001004b00000000020000390000000102006039000b00000002001d0000000002000039000000010200c039000000000021004b0000005a0000c13d0000000101000039000000000201041a000009c101000041000000800010043f000009c201000041000000840010043f00000000010004110000099001100197000a00000001001d000000a40010043f000000000100041400000008022002700000099002200197000000040020008c00000b0b0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000b2f0000013d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b263123b70000040f26311db10000040f000000400200043d00000000001204350000098d0020009c0000098d020080410000004001200210000009d1011001c7000026320001042e000000640020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b000b00000001001d000009900010009c0000005a0000213d0000002401300370000000000101043b000009ce0010009c0000005a0000213d0000002304100039000000000024004b0000005a0000813d0000000404100039000000000443034f000000000504043b000009ce0050009c0000118d0000213d00000005045002100000003f06400039000009d306600197000009d40060009c0000118d0000213d0000008006600039000000400060043f000000800050043f00000024011000390000000004140019000000000024004b0000005a0000213d000000000005004b000003440000613d0000008005000039000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000041004b0000033d0000413d0000004401300370000000000101043b000009ce0010009c0000005a0000213d0000000401100039263119ad0000040f000a00000001001d000000000100041126311e880000040f26311f0e0000040f00000080020000390000000b010000290000000a0300002926311f980000040f000003110000013d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b000009ce0010009c0000005a0000213d0000002304100039000000000024004b0000005a0000813d0000000404100039000000000443034f000000000504043b000009ce0050009c0000118d0000213d00000005045002100000003f06400039000009d306600197000009d40060009c0000118d0000213d0000008006600039000000400060043f000000800050043f00000024011000390000000004140019000000000024004b0000005a0000213d000000000005004b0000037a0000613d0000008005000039000000000613034f000000000606043b000000200550003900000000006504350000002001100039000000000041004b000003730000413d0000002401300370000000000101043b000009ce0010009c0000005a0000213d0000000401100039263119ad0000040f000b00000001001d26311f0e0000040f000000000100041100000080020000390000000b0300002926311f980000040f000003110000013d0000000001000416000000000001004b0000005a0000c13d0000000101000039000000000201041a000009c101000041000000800010043f000009ea01000041000000840010043f0000000001000411000000a40010043f000000000100041400000008022002700000099002200197000000040020008c000005580000c13d0000000003000031000000200030008c000000200400003900000000040340190000057c0000013d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000401300370000000000101043b000b00000001001d000009900010009c0000005a0000213d0000000101000039000000000201041a000009c101000041000000800010043f000009c201000041000000840010043f00000000010004110000099001100197000a00000001001d000000a40010043f000000000100041400000008022002700000099002200197000000040020008c00000b8a0000c13d0000000003000031000000200030008c0000002004000039000000000403401900000bae0000013d0000000002000416000000000002004b0000005a0000c13d0000000102000039000000000202041a000009c903000041000000800030043f000009ca03000041000000840030043f000000000300041400000008022002700000099002200197000000040020008c000005930000c13d0000000003000031000000200030008c00000020040000390000000004034019000005b70000013d000000440020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000002401300370000000000101043b000a00000001001d0000000401300370000000000101043b000b00000001001d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c000009f80000c13d0000000003000031000000200030008c0000002004000039000000000403401900000a1c0000013d000000240020008c0000005a0000413d0000000001000416000000000001004b0000005a0000c13d0000000101000039000000000201041a000009c901000041000000800010043f000009ca01000041000000840010043f000000000100041400000008022002700000099002200197000000040020008c00000a400000c13d0000000003000031000000200030008c0000002004000039000000000403401900000a640000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000004110000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000040d0000c13d000000000006004b0000041e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000a890000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e7040000410000000b05000029000000000045043500000084041001bf0000000000340435000000c403100039000009e8040000410000000000430435000000a40310003900000000000304350000000003000414000000040020008c00000a7f0000613d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f0000000b0b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000004510000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000044d0000c13d000000000006004b0000045e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000e590000c13d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000004680000c13d00000f150000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000004810000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000047d0000c13d000000000006004b0000048e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000acf0000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e5040000410000000b05000029000000000045043500000084041001bf0000000000340435000000a403100039000000000003043500000004030000390000000103300367000000000303043b000000c40410003900000000003404350000000003000414000000040020008c00000c600000c13d0000000001150019000000400010043f0000000b0200002900000a390000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000004c40000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000004c00000c13d000000000006004b000004d10000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000adb0000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e6040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000a360000613d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f000000090b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000005050000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000005010000c13d000000000006004b000005120000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000009ae0000c13d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000051c0000c13d00000f150000013d0000098d0010009c0000098d01008041000000c001100210000009c3011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000005350000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000005310000c13d000000000006004b000005420000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000ae70000613d0000001f01400039000000600110018f00000080011001bf000800000001001d000000400010043f000000200030008c0000005a0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b0000005a0000c13d000000000001004b00000c8e0000c13d000009c701000041000000000010043f0000000b0100002900000bbf0000013d0000098d0010009c0000098d01008041000000c001100210000009c3011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000056c0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000005680000c13d000000000006004b000005790000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000af30000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000000000002004b0000000004000039000000010400c039000000000042004b0000005a0000c13d000000000002004b00000cd80000c13d000009c701000041000000000010043f0000000001000411000000040010043f000009ea01000041000000240010043f000009c80100004100002633000104300000098d0030009c0000098d03008041000000c001300210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000005a70000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000005a30000c13d000000000006004b000005b40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000aff0000613d0000001f02400039000000600420018f00000080024001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000205000039000000000505041a000009cc060000410000000b0a00002900000000006a043500000084064001bf0000000000560435000000c405400039000009ef060000410000000000650435000000a40440003900000000000404350000000004000414000000040020008c000005dd0000613d0000004001a002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c72631262c0000040f00000060031002700000098d0030019d0000098d03300197000000010020019000000e870000613d0000000b0a00002900000a02053001980000001f0630018f00000000045a0019000005e70000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000005e30000c13d000000000006004b000005f40000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a02041001970000000001a40019000000000041004b00000000040000390000000104004039000009ce0010009c0000118d0000213d00000001004001900000118d0000c13d000000400010043f000009cf0030009c0000005a0000213d000000200030008c0000005a0000413d0000000b040000290000000004040433000009ce0040009c0000005a0000213d0000000b063000290000000b034000290000001f04300039000000000064004b0000000005000019000009d005008041000009d004400197000009d007600197000000000874013f000000000074004b0000000004000019000009d004004041000009d00080009c000000000405c019000000000004004b0000005a0000c13d0000000043030434000009ce0030009c0000118d0000213d0000001f0530003900000a02055001970000003f0550003900000a02055001970000000005150019000009ce0050009c0000118d0000213d000000400050043f00000000053104360000000007430019000000000067004b0000005a0000213d00000a02063001970000001f0230018f000000000054004b0000110b0000813d000000000006004b000009450000613d00000000082400190000000007250019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000006300000c13d000009450000013d0000098d0030009c0000098d03008041000000c001300210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000064b0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000006470000c13d000000000006004b000006580000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000bc40000613d0000001f02400039000000600420018f00000080024001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000205000039000000000505041a000009cc060000410000000b0a00002900000000006a043500000084064001bf0000000000560435000000a405400039000000000005043500000004050000390000000105500367000000000505043b000000c40440003900000000005404350000000004000414000000040020008c000006830000613d0000004001a002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c72631262c0000040f00000060031002700000098d0030019d0000098d03300197000000010020019000000e930000613d0000000b0a00002900000a02053001980000001f0630018f00000000045a00190000068d0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000006890000c13d000000000006004b0000069a0000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a02041001970000000001a40019000000000041004b00000000040000390000000104004039000009ce0010009c0000118d0000213d00000001004001900000118d0000c13d000000400010043f000009cf0030009c0000005a0000213d000000200030008c0000005a0000413d0000000b040000290000000004040433000009ce0040009c0000005a0000213d0000000b063000290000000b034000290000001f04300039000000000064004b0000000005000019000009d005008041000009d004400197000009d007600197000000000874013f000000000074004b0000000004000019000009d004004041000009d00080009c000000000405c019000000000004004b0000005a0000c13d0000000043030434000009ce0030009c0000118d0000213d0000001f0530003900000a02055001970000003f0550003900000a02055001970000000005150019000009ce0050009c0000118d0000213d000000400050043f00000000053104360000000007430019000000000067004b0000005a0000213d00000a02063001970000001f0230018f000000000054004b000011150000813d000000000006004b000009450000613d00000000082400190000000007250019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000006d60000c13d000009450000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000006f10000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000006ed0000c13d000000000006004b000006fe0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000bd00000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e9040000410000000b05000029000000000045043500000084041001bf0000000000340435000000a403100039000000000003043500000004030000390000000103300367000000000303043b000000c40410003900000000003404350000000003000414000000040020008c00000d7a0000c13d0000000001150019000000400010043f0000000b02000029000000000202043300000a850000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000007350000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000007310000c13d000000000006004b000007420000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000bdc0000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e7040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000da80000c13d0000000001150019000000400010043f000000090200002900000a820000013d0000098d0030009c0000098d03008041000000c001300210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000007770000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000007730000c13d000000000006004b000007840000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000be80000613d0000001f02400039000000600420018f00000080024001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000205000039000000000505041a000009d506000041000000090a00002900000000006a043500000084064001bf0000000000560435000000c4054000390000000a060000290000000000650435000000a4044000390000000b0500002900000000005404350000000004000414000000040020008c000007ae0000613d0000004001a002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c72631262c0000040f00000060031002700000098d0030019d0000098d03300197000000010020019000000eb60000613d000000090a00002900000a02053001980000001f0630018f00000000045a0019000007b80000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000007b40000c13d000000000006004b000007c50000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a02021001970000000001a20019000000000021004b00000000020000390000000102004039000009ce0010009c0000118d0000213d00000001002001900000118d0000c13d000000400010043f000009cf0030009c0000005a0000213d000000200030008c0000005a0000413d00000009020000290000000002020433000009ce0020009c0000005a0000213d000000090330002900000009022000290000001f04200039000000000034004b0000000005000019000009d005008041000009d004400197000009d006300197000000000764013f000000000064004b0000000004000019000009d004004041000009d00070009c000000000405c019000000000004004b0000005a0000c13d0000000025020434000009ce0050009c0000118d0000213d00000005045002100000003f06400039000009d3066001970000000006160019000009ce0060009c0000118d0000213d000000400060043f00000000005104350000000004240019000000000034004b0000005a0000213d000000000005004b0000089b0000613d0000000003010019000000200330003900000000250204340000000000530435000000000042004b000007f90000413d0000089b0000013d0000098d0030009c0000098d03008041000000c001300210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008130000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000080f0000c13d000000000006004b000008200000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000bf40000613d0000001f02400039000000600420018f00000080024001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000205000039000000000505041a000009d5060000410000000b0a00002900000000006a043500000084064001bf0000000000560435000000a405400039000000000005043500000004050000390000000105500367000000000505043b000000c40440003900000000005404350000000004000414000000040020008c0000084b0000613d0000004001a002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c72631262c0000040f00000060031002700000098d0030019d0000098d03300197000000010020019000000ec20000613d0000000b0a00002900000a02053001980000001f0630018f00000000045a0019000008550000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000008510000c13d000000000006004b000008620000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a02021001970000000001a20019000000000021004b00000000020000390000000102004039000009ce0010009c0000118d0000213d00000001002001900000118d0000c13d000000400010043f000009cf0030009c0000005a0000213d000000200030008c0000005a0000413d0000000b020000290000000002020433000009ce0020009c0000005a0000213d0000000b033000290000000b022000290000001f04200039000000000034004b0000000005000019000009d005008041000009d004400197000009d006300197000000000764013f000000000064004b0000000004000019000009d004004041000009d00070009c000000000405c019000000000004004b0000005a0000c13d0000000025020434000009ce0050009c0000118d0000213d00000005045002100000003f06400039000009d3066001970000000006160019000009ce0060009c0000118d0000213d000000400060043f00000000005104350000000004240019000000000034004b0000005a0000213d000000000005004b0000089b0000613d0000000003010019000000200330003900000000250204340000000000530435000000000042004b000008960000413d000000400300043d000b00000003001d00000020020000390000000002230436263119e60000040f0000113c0000013d0000098d0030009c0000098d03008041000000c001300210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000008b50000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000008b10000c13d000000000006004b000008c20000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c000000613d0000001f02400039000000600420018f00000080024001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000205000039000000000505041a000009cc06000041000000090a00002900000000006a043500000084064001bf0000000000560435000000c4054000390000000a060000290000000000650435000000a4044000390000000b0500002900000000005404350000000004000414000000040020008c000008ec0000613d0000004001a002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c72631262c0000040f00000060031002700000098d0030019d0000098d03300197000000010020019000000ece0000613d000000090a00002900000a02053001980000001f0630018f00000000045a0019000008f60000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000008f20000c13d000000000006004b000009030000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000a02041001970000000001a40019000000000041004b00000000040000390000000104004039000009ce0010009c0000118d0000213d00000001004001900000118d0000c13d000000400010043f000009cf0030009c0000005a0000213d000000200030008c0000005a0000413d00000009040000290000000004040433000009ce0040009c0000005a0000213d000000090630002900000009034000290000001f04300039000000000064004b0000000005000019000009d005008041000009d004400197000009d007600197000000000874013f000000000074004b0000000004000019000009d004004041000009d00080009c000000000405c019000000000004004b0000005a0000c13d0000000043030434000009ce0030009c0000118d0000213d0000001f0530003900000a02055001970000003f0550003900000a02055001970000000005150019000009ce0050009c0000118d0000213d000000400050043f00000000053104360000000007430019000000000067004b0000005a0000213d00000a02063001970000001f0230018f000000000054004b0000111f0000813d000000000006004b000009450000613d00000000082400190000000007250019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c0000093f0000c13d000000000002004b000011350000613d00000000070500190000112b0000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000095d0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009590000c13d000000000006004b0000096a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c0c0000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009d2040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000a360000613d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f000000090b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b00190000099e0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000099a0000c13d000000000006004b000009ab0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000eda0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c00000a380000813d0000005a0000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000009c90000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000009c50000c13d000000000006004b000009d60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c180000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e9040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000dd60000c13d0000000001150019000000400010043f0000000902000029000000000202043300000a850000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000a0c0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000a080000c13d000000000006004b00000a190000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c240000613d0000001f01400039000000600110018f00000080021001bf000900000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e5040000410000000905000029000000000045043500000084041001bf0000000000340435000000c4031000390000000a040000290000000000430435000000a4031000390000000b0400002900000000004304350000000003000414000000040020008c00000e040000c13d0000000001150019000000400010043f00000009020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000005a0000c13d00000a850000013d0000098d0010009c0000098d01008041000000c001100210000009cb011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000a540000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000a500000c13d000000000006004b00000a610000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c300000613d0000001f01400039000000600110018f00000080021001bf000b00000002001d000000400020043f000000200030008c0000005a0000413d000000800200043d000009900020009c0000005a0000213d0000000203000039000000000303041a000009e7040000410000000b05000029000000000045043500000084041001bf0000000000340435000000a403100039000000000003043500000004030000390000000103300367000000000303043b000000c40410003900000000003404350000000003000414000000040020008c00000e320000c13d0000000001150019000000400010043f0000000b020000290000000002020433000009900020009c0000005a0000213d00000000002104350000004001100210000009d1011001c7000026320001042e0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a900000c13d00000f150000013d0000098d0010009c0000098d01008041000000c001100210000009c3011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000aa90000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000aa50000c13d000000000006004b00000ab60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c3c0000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c0000005a0000413d000000800300043d000000000003004b0000000004000039000000010400c039000000000043004b0000005a0000c13d000000000003004b00000e600000c13d000009c701000041000000000010043f0000000001000411000000040010043f000009fd01000041000000240010043f000009c80100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ad60000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ae20000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000aee0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000afa0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b060000c13d00000f150000013d0000098d0010009c0000098d01008041000000c001100210000009c3011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000b1f0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000b1b0000c13d000000000006004b00000b2c0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c480000613d0000001f01400039000000600110018f00000080011001bf000900000001001d000000400010043f000000200030008c0000005a0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b0000005a0000c13d000000000001004b00000bbc0000613d0000000101000039000000000201041a000000ff0020019000000f780000c13d000009d60100004100000009040000290000000000140435000000000100041400000008022002700000099002200197000000040020008c00000f920000c13d000000200030008c00000020030080390000001f01300039000000600110018f0000000001410019000000400010043f00000009020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000005a0000c13d000000000002004b00000fbf0000c13d00000004020000390000000102200367000000000202043b0000002003100039000009d904000041000000000043043500000024041000390000000000240435000000240200003900000000002104350000006002100039000000400020043f000000400230021000000000010104330000098d0010009c0000098d010080410000006001100210000000000112019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000121019f000009da011001c700008010020000392631262c0000040f00000001002001900000005a0000613d000000000101043b000900000001001d0000000101000039000000000201041a000000400300043d000009c9010000410000000000130435000a00000003001d0000000401300039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c000010930000c13d0000000003000031000000200030008c00000020040000390000000004034019000010bc0000013d0000098d0010009c0000098d01008041000000c001100210000009c3011001c72631262c0000040f000000800a00003900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000b9e0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b00000b9a0000c13d000000000006004b00000bab0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000c540000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000005a0000413d000000800100043d000000000001004b0000000002000039000000010200c039000000000021004b0000005a0000c13d000000000001004b00000e9f0000c13d000009c701000041000000000010043f0000000a01000029000000040010043f000009c201000041000000240010043f000009c80100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bcb0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bd70000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000be30000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bef0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000bfb0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c070000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c130000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c1f0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c2b0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c370000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c430000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c4f0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000c5b0000c13d00000f150000013d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f0000000b0b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000c770000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000c730000c13d000000000006004b00000c840000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000e750000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000004ae0000813d0000005a0000013d0000000101000039000000000201041a000000ff0020019000000e810000c13d000009d60100004100000008040000290000000000140435000000000100041400000008022002700000099002200197000000040020008c00000f4b0000c13d000000200030008c00000020030080390000001f01300039000000600110018f0000000001410019000000400010043f00000008020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000005a0000c13d000000000002004b00000fbf0000c13d0000002002100039000009d903000041000000000032043500000024031000390000000a040000290000000000430435000000240300003900000000003104350000006003100039000000400030043f000000400220021000000000010104330000098d0010009c0000098d010080410000006001100210000000000112019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000121019f000009da011001c700008010020000392631262c0000040f00000001002001900000005a0000613d000000000101043b000800000001001d0000000101000039000000000201041a000000400300043d000009c9010000410000000000130435000b00000003001d0000000401300039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c00000fda0000c13d0000000003000031000000200030008c00000020040000390000000004034019000010030000013d000000c002100039000000400020043f00000012020000390000000b040000290000000000240435000000a004100039000009eb0200004100000000002404350000000302000039000000000202041a000000ff0020019000000e830000c13d000a00000004001d0000000102000039000000000202041a000000400b00043d000009c90400004100000000004b04350000000404b00039000009ca050000410000000000540435000000000400041400000008022002700000099002200197000000040020008c00000d1f0000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009db011001c700090000000b001d2631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090b000029000000090570002900000d0d0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000d090000c13d000000000006004b00000d1a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000f7a0000613d0000001f01400039000000600110018f0000000002b10019000000000012004b00000000010000390000000101004039000009ce0020009c0000118d0000213d00000001001001900000118d0000c13d000000400020043f000000200030008c0000005a0000413d00000000010b0433000900000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000800000001001d000009dc0100004100000000001004430000000901000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000000200041000000000002104350000004401300039000009ed020000410000000000210435000009ee0100004100000000001304350000000401300039000600000001001d00000008020000290000000000210435000700000003001d0000002401300039000000000001043500000000010004140000000902000029000000040020008c00000d640000613d00000007020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000902000029263126270000040f00000060031002700000098d0030019d0000000100200190000011520000613d0000000701000029000009ce0010009c0000118d0000213d0000000703000029000000400030043f0000000101000039000000000201041a000009c9010000410000000000130435000009ca0100004100000006030000290000000000130435000000000100041400000008022002700000099002200197000000040020008c0000115f0000c13d0000000003000031000000200030008c00000020040000390000000004034019000011880000013d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f0000000b0b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000d910000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000d8d0000c13d000000000006004b00000d9e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000eaa0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c0000005a0000413d0000071e0000013d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f000000090b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000dbf0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000dbb0000c13d000000000006004b00000dcc0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000ee60000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000007610000813d0000005a0000013d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f000000090b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000ded0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000de90000c13d000000000006004b00000dfa0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000ef20000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c000009f50000813d0000005a0000013d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f000000090b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000e1b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000e170000c13d000000000006004b00000e280000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000efe0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c0000005a0000413d00000a380000013d0000098d0030009c0000098d03008041000000c0013002100000004003500210000000000131019f000009cd011001c72631262c0000040f0000000b0b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000e490000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000e450000c13d000000000006004b00000e560000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000f0a0000613d0000001f01400039000000600110018f0000000001b10019000000400010043f000000200030008c00000a810000813d0000005a0000013d0000000103000039000000000503041a000000ff0450018f0000000b0000006b00000f280000c13d000000000004004b00000f3d0000613d00000a0302500197000000000023041b00000000020004110000000000210435000000400110021000000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009fe011001c70000800d0200003900000a000400004100000f380000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e7c0000c13d00000f150000013d000000080300002900000fc00000013d000009ec01000041000000000010043f000009c60100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e8e0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e9a0000c13d00000f150000013d0000000b03000029000000080130021000000992011001970000000104000039000000000204041a000009c402200197000000000112019f000000000014041b000000000003004b000000850000613d00000f3b0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000eb10000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ebd0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ec90000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ed50000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ee10000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000eed0000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ef90000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f050000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f110000c13d000000000005004b00000f220000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f0000263300010430000000000004004b00000f3d0000c13d00000a030250019700000001022001bf000000000023041b00000000020004110000000000210435000000400110021000000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009fe011001c70000800d02000039000009ff04000041263126270000040f00000001002001900000005a0000613d0000000001000019000026320001042e000009d803000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000a01040000410000000000430435000000a402200039000000140300003900000000003204350000004001100210000009cd011001c700002633000104300000098d0010009c0000098d01008041000000c0011002100000004003400210000000000131019f000009c6011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000080570002900000f610000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b00000f5d0000c13d000000000006004b00000f6e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000f860000613d0000001f01400039000000600110018f0000000801100029000000400010043f000000200030008c00000ca00000813d0000005a0000013d000000090300002900000fc00000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f810000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000f8d0000c13d00000f150000013d0000098d0010009c0000098d01008041000000c0011002100000004003400210000000000131019f000009c6011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f0000002007400190000000090570002900000fa80000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b00000fa40000c13d000000000006004b00000fb50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000000fce0000613d0000001f01400039000000600110018f0000000901100029000000400010043f000000200030008c00000b500000813d0000005a0000013d00000000030100190000004401300039000009d7020000410000000000210435000000240130003900000010020000390000000000210435000009d80100004100000000001304350000000401300039000000200200003900000000002104350000004001300210000009cd011001c700002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000fd50000c13d00000f150000013d0000000b030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b0570002900000ff30000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b00000fef0000c13d000000000006004b000010000000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000010870000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000009ce0010009c0000118d0000213d00000001002001900000118d0000c13d000000400010043f000000200030008c0000005a0000413d0000000b010000290000000001010433000b00000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000700000001001d000009dc0100004100000000001004430000000b01000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000090200002900000000002104350000004401300039000009e1020000410000000000210435000009e2010000410000000001130436000600000001001d000000040130003900000007020000290000000000210435000900000003001d00000024023000390000000801000029000700000002001d000000000012043500000000010004140000000b02000029000000040020008c0000104d0000613d00000009020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000b02000029263126270000040f00000060031002700000098d0030019d0000000100200190000012480000613d0000000901000029000009ce0010009c0000118d0000213d0000000902000029000000400020043f000009d901000041000000060300002900000000001304350000000a010000290000000703000029000000000013043500000024010000390000000000120435000009e30020009c0000118d0000213d00000009020000290000006001200039000000400010043f00000006010000290000098d0010009c0000098d01008041000000400110021000000000020204330000098d0020009c0000098d020080410000006002200210000000000112019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009da011001c700008010020000392631262c0000040f00000001002001900000005a0000613d000000000101043b000900000001001d0000000101000039000000000201041a000000400300043d000009c9010000410000000000130435000b00000003001d0000000401300039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c000012700000c13d0000000003000031000000200030008c00000020040000390000000004034019000012990000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000108e0000c13d00000f150000013d0000000a030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000a05700029000010ac0000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b000010a80000c13d000000000006004b000010b90000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000011460000613d0000001f01400039000000600210018f0000000a01200029000000000021004b00000000020000390000000102004039000009ce0010009c0000118d0000213d00000001002001900000118d0000c13d000000400010043f000000200030008c0000005a0000413d0000000a010000290000000001010433000a00000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000800000001001d000009dc0100004100000000001004430000000a01000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d00000064013000390000000b0200002900000000002104350000004401300039000009de020000410000000000210435000000240130003900000009020000290000000000210435000009df010000410000000000130435000b00000003001d00000004013000390000000802000029000000000021043500000000010004140000000a02000029000000040020008c000011040000613d0000000b020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000a02000029263126270000040f00000060031002700000098d0030019d0000000100200190000012550000613d0000000b01000029000009ce0010009c0000118d0000213d0000000b01000029000000400010043f0000000001000019000026320001042e0000000007650019000000000006004b000011280000613d00000000080400190000000009050019000000008a0804340000000009a90436000000000079004b000011100000c13d000011280000013d0000000007650019000000000006004b000011280000613d00000000080400190000000009050019000000008a0804340000000009a90436000000000079004b0000111a0000c13d000011280000013d0000000007650019000000000006004b000011280000613d00000000080400190000000009050019000000008a0804340000000009a90436000000000079004b000011240000c13d000000000002004b000011350000613d00000000046400190000000302200210000000000607043300000000062601cf000000000626022f00000000040404330000010002200089000000000424022f00000000022401cf000000000262019f0000000000270435000000000253001900000000000204350000002002000039000000400300043d000b00000003001d00000000022304362631197b0000040f0000000b0200002900000000012100490000098d0010009c0000098d0100804100000060011002100000098d0020009c0000098d020080410000004002200210000000000121019f000026320001042e0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000114d0000c13d00000f150000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000115a0000c13d00000f150000013d00000007030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000705700029000011780000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000011740000c13d000000000006004b000011850000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000011e70000613d0000001f01400039000000600110018f0000000701100029000009ce0010009c000011930000a13d000009f601000041000000000010043f0000004101000039000000040010043f000009db010000410000263300010430000000400010043f000000200030008c0000005a0000413d00000007010000290000000001010433000900000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000800000001001d000009dc0100004100000000001004430000000901000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000000200041100000000002104350000004401300039000009e8020000410000000000210435000009ee0100004100000000001304350000000401300039000600000001001d00000008020000290000000000210435000700000003001d0000002401300039000000000001043500000000010004140000000902000029000000040020008c000011d10000613d00000007020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000902000029263126270000040f00000060031002700000098d0030019d0000000100200190000012f90000613d0000000701000029000009ce0010009c0000118d0000213d0000000703000029000000400030043f0000000101000039000000000201041a000009c9010000410000000000130435000009ca0100004100000006030000290000000000130435000000000100041400000008022002700000099002200197000000040020008c000013120000c13d0000000003000031000000200030008c000000200400003900000000040340190000133b0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000011ee0000c13d00000f150000013d00000006030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009c8011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000006057000290000120c0000613d000000000801034f0000000609000029000000008a08043c0000000009a90436000000000059004b000012080000c13d000000000006004b000012190000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000123c0000613d0000001f01400039000000600110018f0000000602100029000000000012004b00000000010000390000000101004039000500000002001d000009ce0020009c0000118d0000213d00000001001001900000118d0000c13d0000000501000029000000400010043f000000200030008c0000005a0000413d00000006010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b0000005a0000c13d000000000001004b000012620000c13d000009c701000041000000000010043f0000000401000029000000040010043f000009f201000041000000240010043f000009c80100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000012430000c13d00000f150000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000012500000c13d00000f150000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000125d0000c13d00000f150000013d0000000101000039000000000201041a000000ff00200190000012e80000c13d000009d60100004100000005040000290000000000140435000000000100041400000008022002700000099002200197000000040020008c000013840000c13d0000002004000039000013ad0000013d0000000b030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b05700029000012890000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b000012850000c13d000000000006004b000012960000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000013060000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000009ce0010009c0000118d0000213d00000001002001900000118d0000c13d000000400010043f000000200030008c0000005a0000413d0000000b010000290000000001010433000b00000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000800000001001d000009dc0100004100000000001004430000000b01000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d00000064013000390000000a0200002900000000002104350000004401300039000009e4020000410000000000210435000000240130003900000009020000290000000000210435000009e2010000410000000000130435000a00000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040020008c000012e10000613d0000000a020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000b02000029263126270000040f00000060031002700000098d0030019d0000000100200190000014400000613d0000000a01000029000009ce0010009c0000118d0000213d0000000a01000029000000400010043f0000000001000019000026320001042e00000005010000290000004402100039000009d7030000410000000000320435000000240210003900000010030000390000000000320435000009d80200004100000000002104350000000402100039000000200300003900000000003204350000098d0010009c0000098d010080410000004001100210000009cd011001c700002633000104300000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013010000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000130d0000c13d00000f150000013d00000007030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000007057000290000132b0000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000013270000c13d000000000006004b000013380000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000013dc0000613d0000001f01400039000000600110018f0000000701100029000009ce0010009c0000118d0000213d000000400010043f000000200030008c0000005a0000413d00000007010000290000000001010433000900000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000800000001001d000009dc0100004100000000001004430000000901000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000800200003900000000002104350000004401300039000009ef020000410000000000210435000009f00100004100000000001304350000000401300039000600000001001d00000008020000290000000000210435000000240130003900000000000104350000000b0100002900000000010104330000008402300039000000000012043500000a02051001970000001f0410018f000700000003001d000000a4033000390000000a0030006b0000144d0000813d000000000005004b000013800000613d0000000a074000290000000006430019000000200660008a000000200770008a0000000008560019000000000957001900000000090904330000000000980435000000200550008c0000137a0000c13d000000000004004b000014640000613d0000000006030019000014590000013d00000005030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009c6011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000005057000290000139d0000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b000013990000c13d000000000006004b000013aa0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000013e80000613d0000001f01400039000000600110018f0000000501100029000009ce0010009c0000118d0000213d000000400010043f000000200030008c0000005a0000413d00000005020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000005a0000c13d000000000002004b000012e90000c13d263123df0000040f000000400200043d0000002003200039000009f3040000410000000000430435000600000001001d0000000801000029000000000101043300000a02061001970000001f0510018f0000002604200039000000070040006b000013f40000813d000000000006004b000013d70000613d00000007085000290000000007540019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000013d10000c13d000000000005004b0000140a0000613d00000007060000290000000007040019000014000000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013e30000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013ef0000c13d00000f150000013d0000000007640019000000000006004b000013fd0000613d00000007080000290000000009040019000000008a0804340000000009a90436000000000079004b000013f90000c13d000000000005004b0000140a0000613d00000007066000290000000305500210000000000807043300000000085801cf000000000858022f00000000060604330000010005500089000000000656022f00000000055601cf000000000585019f00000000005704350000000004410019000000000004043500000006041000390000000000420435000000450110003900000a02041001970000000001240019000000000041004b00000000040000390000000104004039000009ce0010009c0000118d0000213d00000001004001900000118d0000c13d000000400010043f0000098d0030009c0000098d03008041000000400130021000000000020204330000098d0020009c0000098d020080410000006002200210000000000112019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009da011001c700008010020000392631262c0000040f00000001002001900000005a0000613d000000000101043b000300000001001d0000000101000039000000000201041a000000400300043d000009c9010000410000000000130435000500000003001d0000000401300039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c000014a20000c13d0000000003000031000000200030008c00000020040000390000000004034019000014cb0000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014480000c13d00000f150000013d0000000006530019000000000005004b000014560000613d0000000a07000029000000000803001900000000790704340000000008980436000000000068004b000014520000c13d000000000004004b000014640000613d000a000a0050002d0000000304400210000000000506043300000000054501cf000000000545022f0000000a0700002900000000070704330000010004400089000000000747022f00000000044701cf000000000454019f00000000004604350000000003310019000000000003043500000000030004140000000904000029000000040040008c0000147f0000613d0000001f0110003900000a0201100197000000a4011000390000098d0010009c0000098d01008041000000600110021000000007020000290000098d0020009c0000098d020080410000004002200210000000000121019f0000098d0030009c0000098d03008041000000c002300210000000000112019f0000000902000029263126270000040f00000060031002700000098d0030019d0000000100200190000014950000613d0000000701000029000009ce0010009c0000118d0000213d0000000703000029000000400030043f0000000101000039000000000201041a000009c9010000410000000000130435000009ca0100004100000006030000290000000000130435000000000100041400000008022002700000099002200197000000040020008c000015b60000c13d0000000003000031000000200030008c00000020040000390000000004034019000015df0000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000149d0000c13d00000f150000013d00000005030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000505700029000014bb0000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b000014b70000c13d000000000006004b000014c80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000162d0000613d0000001f01400039000000600110018f0000000504100029000000000014004b00000000020000390000000102004039000400000004001d000009ce0040009c0000118d0000213d00000001002001900000118d0000c13d0000000402000029000000400020043f000000200030008c0000005a0000413d00000005020000290000000002020433000009900020009c0000005a0000213d0000000204000039000000000404041a00000004070000290000004405700039000009f1060000410000000000650435000000240570003900000003060000290000000000650435000009e9050000410000000000570435000000040570003900000000004504350000000004000414000000040020008c000015190000613d00000004010000290000098d0010009c0000098d0100804100000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000405700029000015070000613d000000000801034f0000000409000029000000008a08043c0000000009a90436000000000059004b000015030000c13d000000000006004b000015140000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000016450000613d0000001f01400039000000600110018f0000000402100029000500000002001d000009ce0020009c0000118d0000213d0000000502000029000000400020043f000000200030008c0000005a0000413d0000000502000029000000040220003900000004040000290000000004040433000000000004004b000016510000c13d0000000104000039000000000504041a000009c90400004100000005060000290000000000460435000009ca040000410000000000420435000000000400041400000008025002700000099002200197000000040020008c0000155e0000613d00000005010000290000098d0010009c0000098d0100804100000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000005057000290000154c0000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b000015480000c13d000000000006004b000015590000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000166e0000613d0000001f01400039000000600110018f0000000501100029000009ce0010009c0000118d0000213d000000400010043f000000200030008c0000005a0000413d00000005010000290000000001010433000500000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000400000001001d000009dc0100004100000000001004430000000501000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000060200002900000000002104350000004401300039000009f1020000410000000000210435000000240130003900000003020000290000000000210435000009e2010000410000000000130435000200000003001d00000004023000390000000401000029000100000002001d000000000012043500000000010004140000000502000029000000040020008c000015a00000613d00000002020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000502000029263126270000040f00000060031002700000098d0030019d00000001002001900000167a0000613d0000000201000029000009ce0010009c0000118d0000213d0000000203000029000000400030043f0000000101000039000000000201041a000009c9010000410000000000130435000009ca0100004100000001030000290000000000130435000000000100041400000008022002700000099002200197000000040020008c000016870000c13d0000000003000031000000200030008c00000020040000390000000004034019000016b00000013d00000007030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000705700029000015cf0000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000015cb0000c13d000000000006004b000015dc0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000016390000613d0000001f01400039000000600110018f0000000701100029000009ce0010009c0000118d0000213d000000400010043f000000200030008c0000005a0000413d00000007010000290000000001010433000b00000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000a00000001001d000009dc0100004100000000001004430000000b01000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000009930200004100000000002104350000004401300039000009f1020000410000000000210435000009e201000041000000000013043500000004013000390000000a020000290000000000210435000a00000003001d0000002401300039000000000001043500000000010004140000000b02000029000000040020008c000016210000613d0000000a020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000b02000029263126270000040f00000060031002700000098d0030019d0000000100200190000016610000613d0000000a01000029000009ce0010009c0000118d0000213d0000000a01000029000000400010043f0000000303000039000000000103041a00000a030110019700000001011001bf000000000013041b0000000001000019000026320001042e0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016340000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016400000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000164c0000c13d00000f150000013d000009d80100004100000005030000290000000000130435000000200100003900000000001204350000004401300039000009f40200004100000000002104350000002401300039000000190200003900000000002104350000098d0030009c0000098d030080410000004001300210000009cd011001c700002633000104300000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016690000c13d00000f150000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016750000c13d00000f150000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016820000c13d00000f150000013d00000002030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000205700029000016a00000613d000000000801034f0000000209000029000000008a08043c0000000009a90436000000000059004b0000169c0000c13d000000000006004b000016ad0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000016fa0000613d0000001f01400039000000600110018f0000000201100029000009ce0010009c0000118d0000213d000000400010043f000000200030008c0000005a0000413d00000002010000290000000001010433000400000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000200000001001d000009dc0100004100000000001004430000000401000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400500043d0000006401500039000000800200003900000000002104350000004401500039000009ef020000410000000000210435000000240150003900000003020000290000000000210435000009f00100004100000000001504350000000401500039000300000001001d00000002020000290000000000210435000000080100002900000000010104330000008402500039000000000012043500000a02041001970000001f0310018f000500000005001d000000a402500039000000070020006b000017060000813d000000000004004b000016f60000613d00000007063000290000000005320019000000200550008a000000200660008a0000000007450019000000000846001900000000080804330000000000870435000000200440008c000016f00000c13d000000000003004b0000171d0000613d0000000005020019000017120000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017010000c13d00000f150000013d0000000005420019000000000004004b0000170f0000613d0000000706000029000000000702001900000000680604340000000007870436000000000057004b0000170b0000c13d000000000003004b0000171d0000613d000700070040002d0000000303300210000000000405043300000000043401cf000000000434022f000000070600002900000000060604330000010003300089000000000636022f00000000033601cf000000000343019f00000000003504350000000002210019000000000002043500000000020004140000000403000029000000040030008c000017380000613d0000001f0110003900000a0201100197000000a4011000390000098d0010009c0000098d01008041000000600110021000000005030000290000098d0030009c0000098d030080410000004003300210000000000131019f0000098d0020009c0000098d02008041000000c002200210000000000121019f0000000402000029263126270000040f00000060031002700000098d0030019d00000001002001900000174e0000613d0000000501000029000009ce0010009c0000118d0000213d0000000503000029000000400030043f0000000101000039000000000201041a000009c9010000410000000000130435000009f50100004100000003030000290000000000130435000000000100041400000008022002700000099002200197000000040020008c0000175b0000c13d0000000003000031000000200030008c00000020040000390000000004034019000017840000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017560000c13d00000f150000013d00000005030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000505700029000017740000613d000000000801034f0000000509000029000000008a08043c0000000009a90436000000000059004b000017700000c13d000000000006004b000017810000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000179b0000613d0000001f01400039000000600110018f0000000501100029000700000001001d000009ce0010009c0000118d0000213d0000000701000029000000400010043f000000200030008c0000005a0000413d00000005010000290000000001010433000500000001001d000009900010009c0000005a0000213d0000000b01000029000309900010019b000000800100043d000000000001004b000017a70000c13d0000000701000029000400040010003d000017fb0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017a20000c13d00000f150000013d000800000000001d00000008010000290000000501100210000400000001001d000000a001100039000700000001001d00000000020104330000000b0100002926311acf0000040f000000000001004b0000180d0000613d000000800100043d000000080010006c000018210000a13d0000000a010000290000000001010433000000080010006c000018210000a13d00000007010000290000000001010433000700000001001d000000040200002900000009012000290000000001010433000400000001001d000009dc0100004100000000001004430000000501000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400200043d000000440120003900000004030000290000000000310435000000240120003900000007030000290000000000310435000009f7010000410000000000120435000700000002001d00000004022000390000000301000029000400000002001d000000000012043500000000010004140000000502000029000000040020008c000017f10000613d00000007020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009cd011001c70000000502000029263126270000040f00000060031002700000098d0030019d0000000100200190000018270000613d0000000701000029000009ce0010009c0000118d0000213d0000000701000029000000400010043f0000000802000029000800010020003d000000800100043d000000080010006b000017a80000413d0000000101000039000000000201041a000009c90100004100000007030000290000000000130435000009ca0100004100000004030000290000000000130435000000000100041400000008022002700000099002200197000000040020008c000018340000c13d0000000003000031000000200030008c000000200400003900000000040340190000185e0000013d000000400100043d0000006402100039000009f80300004100000000003204350000004402100039000009f9030000410000000000320435000000240210003900000023030000390000000000320435000009d80200004100000000002104350000000402100039000000200300003900000000003204350000098d0010009c0000098d010080410000004001100210000009e0011001c70000263300010430000009f601000041000000000010043f0000003201000039000000040010043f000009db0100004100002633000104300000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000182f0000c13d00000f150000013d0000000703000029000700000003001d0000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000007057000290000184e0000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b0000184a0000c13d000000000006004b0000185b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000018bc0000613d0000001f01400039000000600110018f0000000701100029000009ce0010009c0000118d0000213d000000400010043f000000200030008c0000005a0000413d00000007010000290000000001010433000b00000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000800000001001d000009dc0100004100000000001004430000000b01000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000030200002900000000002104350000004401300039000009fa020000410000000000210435000000240130003900000006020000290000000000210435000009ee010000410000000000130435000900000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040020008c000018a10000613d00000009020000290000098d0020009c0000098d0200804100000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000b02000029263126270000040f00000060031002700000098d0030019d0000000100200190000018c80000613d0000000901000029000009ce0010009c0000118d0000213d0000000901000029000000400010043f00000080020000390000000601000029263125550000040f0000000101000039000000000201041a000000400300043d000009c9010000410000000000130435000b00000003001d0000000401300039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c000018d50000c13d0000000003000031000000200030008c00000020040000390000000004034019000018fe0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018c30000c13d00000f150000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018d00000c13d00000f150000013d0000000b030000290000098d0030009c0000098d0300804100000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f00000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b05700029000018ee0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b000018ea0000c13d000000000006004b000018fb0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000019620000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000009ce0010009c0000118d0000213d00000001002001900000118d0000c13d000000400010043f000000200030008c0000005a0000413d0000000b010000290000000001010433000b00000001001d000009900010009c0000005a0000213d0000000201000039000000000101041a000900000001001d000009dc0100004100000000001004430000000b01000029000000040010044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000019610000613d000000000101043b000000000001004b0000005a0000613d000000400300043d0000006401300039000000800200003900000000002104350000004401300039000009fb020000410000000000210435000000240130003900000006020000290000000000210435000009fc0100004100000000001304350000000401300039000000090200002900000000002104350000000a01000029000000000201043300000084013000390000000000210435000900000003001d000000a401300039000000000002004b000019430000613d00000000030000190000000a040000290000002004400039000a00000004001d000000000404043300000000014104360000000103300039000000000023004b0000193b0000413d00000000020004140000000b03000029000000040030008c0000195a0000613d000000090300002900000000013100490000098d0010009c0000098d0100804100000060011002100000098d0030009c0000098d030080410000004003300210000000000131019f0000098d0020009c0000098d02008041000000c002200210000000000121019f0000000b02000029263126270000040f00000060031002700000098d0030019d00000001002001900000196e0000613d0000000901000029000009ce0010009c0000118d0000213d0000000902000029000000400020043f0000000601000029000003120000013d000000000001042f0000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019690000c13d00000f150000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d000000000462001900000f150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019760000c13d00000f150000013d0000000043010434000000000132043600000a02063001970000001f0530018f000000000014004b000019910000813d000000000006004b0000198d0000613d00000000085400190000000007510019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000019870000c13d000000000005004b000019a70000613d00000000070100190000199d0000013d0000000007610019000000000006004b0000199a0000613d00000000080400190000000009010019000000008a0804340000000009a90436000000000079004b000019960000c13d000000000005004b000019a70000613d00000000046400190000000305500210000000000607043300000000065601cf000000000656022f00000000040404330000010005500089000000000454022f00000000045401cf000000000464019f0000000000470435000000000431001900000000000404350000001f0330003900000a02023001970000000001210019000000000001042d00000000030100190000001f01100039000000000021004b0000000004000019000009d004004041000009d005200197000009d001100197000000000651013f000000000051004b0000000001000019000009d001002041000009d00060009c000000000104c019000000000001004b000019e40000613d0000000104000367000000000134034f000000000501043b00000a040050009c000019de0000813d00000005065002100000003f01600039000009d307100197000000400100043d0000000007710019000000000017004b00000000080000390000000108004039000009ce0070009c000019de0000213d0000000100800190000019de0000c13d000000400070043f000000000051043500000020033000390000000005630019000000000025004b000019e40000213d000000000053004b000019dd0000813d0000000002010019000000000634034f000000000606043b000000200220003900000000006204350000002003300039000000000053004b000019d60000413d000000000001042d000009f601000041000000000010043f0000004101000039000000040010043f000009db01000041000026330001043000000000010000190000263300010430000000000301001900000000040104330000000001420436000000000004004b000019f20000613d00000000020000190000002003300039000000000503043300000000015104360000000102200039000000000042004b000019ec0000413d000000000001042d00020000000000020000000102000039000000000202041a000000400c00043d000009c90300004100000000003c04350000000404c00039000009ca030000410000000000340435000000000400041400000008022002700000099002200197000000040020008c00001a060000c13d0000000003000031000000200030008c0000002004000039000000000403401900001a330000013d000100000001001d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0040009c0000098d04008041000000c001400210000000000131019f000009db011001c700020000000c001d2631262c0000040f000000020c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001a220000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001a1e0000c13d000000000006004b00001a2f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001a930000613d00000001010000290000001f02400039000000600720018f000000000bc7001900000000007b004b00000000020000390000000102004039000009ce00b0009c00001a8d0000213d000000010020019000001a8d0000c13d0000004000b0043f0000001f0030008c00001a8b0000a13d00000000020c0433000009900020009c00001a8b0000213d0000000204000039000000000404041a0000004405b00039000009de0600004100000000006504350000002405b000390000000000150435000009e50500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c00001a7e0000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c700020000000b001d2631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001a6c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001a680000c13d000000000006004b00001a790000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001ab10000613d0000001f01400039000000600710018f0000000001b70019000009ce0010009c00001a8d0000213d000000400010043f000000200030008c00001a8b0000413d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b00001a8b0000c13d000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db0100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001a9e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a9a0000c13d000000000005004b00001aab0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f00002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001abc0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ab80000c13d000000000005004b00001ac90000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000121019f00002633000104300004000000000002000300000001001d000000400100043d0000002004100039000009d90300004100000000003404350000002403100039000400000002001d00000000002304350000002402000039000000000021043500000a050010009c00001cc80000813d0000006003100039000000400030043f0000098d0040009c0000098d04008041000000400240021000000000010104330000098d0010009c0000098d010080410000006001100210000000000121019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009da011001c700008010020000392631262c0000040f000000010020019000001cc60000613d000000000701043b0000000101000039000000000201041a000000400c00043d000009c90100004100000000001c04350000000401c00039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c00001b030000c13d0000000003000031000000200030008c0000002004000039000000000403401900001b300000013d000100000007001d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c700020000000c001d2631262c0000040f000000020c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001b1f0000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001b1b0000c13d000000000006004b00001b2c0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001cce0000613d00000001070000290000001f01400039000000600110018f000000000bc1001900000000001b004b00000000020000390000000102004039000009ce00b0009c00001cc80000213d000000010020019000001cc80000c13d0000004000b0043f000000200030008c00001cc60000413d00000000020c0433000009900020009c00001cc60000213d0000000204000039000000000404041a0000004405b00039000009de0600004100000000006504350000002405b000390000000000750435000009e50500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c00001b7b0000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c700020000000b001d2631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001b690000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001b650000c13d000000000006004b00001b760000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001cda0000613d0000001f01400039000000600110018f0000000002b10019000009ce0020009c00001cc80000213d000000400020043f000000200030008c00001cc60000413d00000000010b0433000000000001004b0000000003000039000000010300c039000000000031004b00001cc60000c13d000000000001004b000000000100001900001b8b0000613d000000000001042d0000002001200039000009d903000041000000000031043500000024032000390000000404000029000000000043043500000024030000390000000000320435000009e30020009c00001cc80000213d0000006003200039000000400030043f0000098d0010009c0000098d01008041000000400110021000000000020204330000098d0020009c0000098d020080410000006002200210000000000112019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009da011001c700008010020000392631262c0000040f000000010020019000001cc60000613d000000000701043b0000000101000039000000000201041a000000400c00043d000009c90100004100000000001c04350000000401c00039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c00001bbc0000c13d0000000003000031000000200030008c0000002004000039000000000403401900001be90000013d000200000007001d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c700040000000c001d2631262c0000040f000000040c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001bd80000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001bd40000c13d000000000006004b00001be50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001ce60000613d00000002070000290000001f01400039000000600110018f000000000bc1001900000000001b004b00000000020000390000000102004039000009ce00b0009c00001cc80000213d000000010020019000001cc80000c13d0000004000b0043f000000200030008c00001cc60000413d00000000020c0433000009900020009c00001cc60000213d0000000204000039000000000404041a0000004405b00039000009e10600004100000000006504350000002405b000390000000000750435000009e90500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c00001c340000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c700040000000b001d2631262c0000040f000000040b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001c220000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001c1e0000c13d000000000006004b00001c2f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001cf20000613d0000001f01400039000000600110018f000000000cb10019000009ce00c0009c00001cc80000213d0000004000c0043f000000200030008c00001cc60000413d00000000050b0433000000000005004b000000010100003900001b8a0000613d000000000201041a000009c90100004100000000001c04350000000401c00039000009f5040000410000000000410435000000000100041400000008022002700000099002200197000000040020008c00001c4b0000c13d000000200400003900001c780000013d000200000005001d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c700040000000c001d2631262c0000040f000000040c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001c670000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001c630000c13d000000000006004b00001c740000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001d100000613d00000002050000290000001f01400039000000600110018f000000000bc10019000009ce00b0009c00001cc80000213d0000004000b0043f000000200030008c00001cc60000413d00000000020c0433000009900020009c00001cc60000213d0000002404b00039000000000054043500000a060400004100000000004b0435000000030400002900000990044001970000000405b0003900000000004504350000000004000414000000040020008c00001cbb0000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009c8011001c700040000000b001d2631262c0000040f000000040b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001ca90000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001ca50000c13d000000000006004b00001cb60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001d1c0000613d0000001f01400039000000600110018f0000000001b10019000009ce0010009c00001cc80000213d000000400010043f000000200030008c00001cc60000413d00000000010b0433000000000001004b0000000001000039000000010100c039000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db0100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001cfd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001cd50000c13d00001cfd0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900001cfd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ce10000c13d00001cfd0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900001cfd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ced0000c13d00001cfd0000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900001cfd0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001cf90000c13d000000000005004b00001d0a0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f00002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001d270000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d170000c13d00001d270000013d0000001f0530018f0000098f06300198000000400200043d000000000462001900001d270000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d230000c13d000000000005004b00001d340000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000121019f000026330001043000010000000000020000000101000039000000000201041a000000ff0120019000001d8a0000c13d000000400b00043d000009d60100004100000000001b0435000000000100041400000008022002700000099002200197000000040020008c00001d4c0000c13d0000000003000031000000200030008c0000002004000039000000000403401900001d770000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009c6011001c700010000000b001d2631262c0000040f000000010b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001d670000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001d630000c13d000000000006004b00001d740000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001d930000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009ce0010009c00001d8d0000213d000000010020019000001d8d0000c13d000000400010043f0000001f0030008c00001d8b0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b00001d8b0000c13d000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db0100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001d9e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001d9a0000c13d000000000005004b00001dab0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000121019f000026330001043000020000000000020000000102000039000000000202041a000000400c00043d000009c90300004100000000003c04350000000404c00039000009ca030000410000000000340435000000000400041400000008022002700000099002200197000000040020008c00001dc40000c13d0000000003000031000000200030008c0000002004000039000000000403401900001df10000013d000100000001001d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0040009c0000098d04008041000000c001400210000000000131019f000009db011001c700020000000c001d2631262c0000040f000000020c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001de00000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001ddc0000c13d000000000006004b00001ded0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001e4c0000613d00000001010000290000001f02400039000000600720018f000000000bc7001900000000007b004b00000000020000390000000102004039000009ce00b0009c00001e460000213d000000010020019000001e460000c13d0000004000b0043f0000001f0030008c00001e440000a13d00000000020c0433000009900020009c00001e440000213d0000000204000039000000000404041a0000004405b00039000009e10600004100000000006504350000002405b000390000000000150435000009e90500004100000000005b04350000000405b0003900000000004504350000000004000414000000040020008c00001e3c0000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c700020000000b001d2631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001e2a0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001e260000c13d000000000006004b00001e370000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001e6a0000613d0000001f01400039000000600710018f0000000001b70019000009ce0010009c00001e460000213d000000400010043f000000200030008c00001e440000413d00000000010b0433000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db0100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001e570000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001e530000c13d000000000005004b00001e640000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f00002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001e750000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001e710000c13d000000000005004b00001e820000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000121019f000026330001043000020000000000020000000102000039000000000202041a000000400b00043d000009c10300004100000000003b04350000000403b00039000009f204000041000000000043043500000990051001970000002401b000390000000000510435000000000100041400000008022002700000099002200197000000040020008c00001e9e0000c13d0000000003000031000000200030008c0000002004000039000000000403401900001ecb0000013d000100000005001d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009c8011001c700020000000b001d2631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001eba0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001eb60000c13d000000000006004b00001ec70000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001ef00000613d00000001050000290000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009ce0010009c00001ee30000213d000000010020019000001ee30000c13d000000400010043f0000001f0030008c00001ee10000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b00001ee10000c13d000000000001004b00001ee90000613d000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db010000410000263300010430000009c701000041000000000010043f000000040050043f000009f201000041000000240010043f000009c80100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001efb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001ef70000c13d000000000005004b00001f080000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f00002633000104300001000000000002000000400b00043d0000000101000039000000000201041a000000ff0020019000001f630000c13d000009d60100004100000000001b0435000000000100041400000008022002700000099002200197000000040020008c00001f200000c13d0000000003000031000000200030008c0000002004000039000000000403401900001f4b0000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009c6011001c700010000000b001d2631262c0000040f000000010b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001f3b0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001f370000c13d000000000006004b00001f480000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f000000010020019000001f7a0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009ce0010009c00001f740000213d000000010020019000001f740000c13d000000400010043f0000001f0030008c00001f610000a13d00000000020b0433000000000002004b0000000003000039000000010300c039000000000032004b00001f610000c13d000000000002004b00001f640000c13d000000000001042d0000000001000019000026330001043000000000010b00190000004402100039000009d7030000410000000000320435000000240210003900000010030000390000000000320435000009d80200004100000000002104350000000402100039000000200300003900000000003204350000098d0010009c0000098d010080410000004001100210000009cd011001c70000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db0100004100002633000104300000001f0530018f0000098f06300198000000400200043d000000000462001900001f850000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001f810000c13d000000000005004b00001f920000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f00002633000104300007000000000002000500000003001d000600000002001d000400000001001d0000000101000039000000000201041a000000400c00043d000009c90100004100000000001c04350000000401c00039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c00001fae0000c13d0000000003000031000000200030008c0000002004000039000000000403401900001fd90000013d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c700070000000c001d2631262c0000040f000000070c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c001900001fc90000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b00001fc50000c13d000000000006004b00001fd60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000022f80000613d0000001f01400039000000600110018f000000000bc1001900000000001b004b00000000020000390000000102004039000009ce00b0009c000022f10000213d0000000100200190000022f10000c13d0000004000b0043f0000001f0030008c000022ef0000a13d00000000020c0433000009900020009c000022ef0000213d0000000204000039000000000404041a0000004405b0003900000a07060000410000000000650435000009e90500004100000000005b04350000000405b0003900000000004504350000002404b0003900000000000404350000000004000414000000040020008c000020240000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c700070000000b001d2631262c0000040f000000070b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000020120000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000200e0000c13d000000000006004b0000201f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000023040000613d0000001f01400039000000600110018f000000000cb10019000009ce00c0009c000022f10000213d0000004000c0043f000000200030008c000022ef0000413d00000000020b0433000700000002001d000000010020003a000023b10000413d0000000102000039000000000202041a000009c90400004100000000004c04350000000404c00039000009ca050000410000000000540435000000000400041400000008022002700000099002200197000000040020008c000020670000613d0000098d00c0009c0000098d0100004100000000010c401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009db011001c700030000000c001d2631262c0000040f000000030c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c0019000020550000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000020510000c13d000000000006004b000020620000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000023100000613d0000001f01400039000000600110018f0000000001c10019000009ce0010009c000022f10000213d000000400010043f000000200030008c000022ef0000413d00000000020c0433000009900020009c000022ef0000213d0000000201000039000000000101041a000200000001001d000009dc010000410000000000100443000300000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000022f70000613d000000000101043b000000000001004b0000000302000029000022ef0000613d00000007010000290000000103100039000000400b00043d0000006401b00039000700000003001d00000000003104350000004401b0003900000a07030000410000000000310435000009e20100004100000000001b04350000000404b00039000000020100002900000000001404350000002401b0003900000000000104350000000001000414000000040020008c00010000000b001d000020a90000613d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009e0011001c7000300000004001d263126270000040f0000000304000029000000010b00002900000060031002700000098d0030019d00000001002001900000231c0000613d000009ce00b0009c000022f10000213d0000004000b0043f0000000101000039000000000201041a000009c90100004100000000001b0435000009f5010000410000000000140435000000000100041400000008022002700000099002200197000000040020008c000020bc0000c13d0000000003000031000000200030008c00000020040000390000000004034019000020e60000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f000000010b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000020d60000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000020d20000c13d000000000006004b000020e30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000023290000613d0000001f01400039000000600110018f0000000001b10019000009ce0010009c000022f10000213d000000400010043f000000200030008c000022ef0000413d00000000020b0433000009900020009c000022ef0000213d000009dc010000410000000000100443000300000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000022f70000613d000000000101043b000000000001004b00000005060000290000000302000029000022ef0000613d000000400b00043d0000002401b000390000006003000039000000000031043500000a080100004100000000001b0435000000040100002900000990011001970000000408b00039000400000001001d0000000000180435000000060400002900000000070404330000006401b0003900000000007104350000008401b00039000000000007004b0000211c0000613d00000000030000190000002004400039000000000504043300000000015104360000000103300039000000000073004b000021160000413d0000000003b10049000000040430008a0000004403b00039000000000043043500000000070604330000000001710436000000000007004b0000212c0000613d000000000300001900000000040600190000002004400039000000000504043300000000015104360000000103300039000000000073004b000021260000413d0000000004000414000000040020008c00020000000b001d000021450000613d0000000001b100490000098d0010009c0000098d0100804100000060011002100000098d00b0009c0000098d0300004100000000030b40190000004003300210000000000131019f0000098d0040009c0000098d04008041000000c003400210000000000131019f000300000008001d263126270000040f0000000308000029000000020b00002900000060031002700000098d0030019d0000000100200190000023350000613d000009ce00b0009c000022f10000213d0000004000b0043f0000000101000039000000000201041a000009c90100004100000000001b0435000009ca010000410000000000180435000000000100041400000008022002700000099002200197000000040020008c000021580000c13d0000000003000031000000200030008c00000020040000390000000004034019000021820000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000021720000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000216e0000c13d000000000006004b0000217f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000023420000613d0000001f01400039000000600110018f0000000001b10019000009ce0010009c000022f10000213d000000400010043f000000200030008c000022ef0000413d00000000020b0433000009900020009c000022ef0000213d0000000201000039000000000101041a000200000001001d000009dc010000410000000000100443000300000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000022f70000613d000000000101043b000000000001004b0000000303000029000022ef0000613d000000400b00043d0000006401b00039000000040200002900000000002104350000004401b00039000009fa0200004100000000002104350000002401b0003900000007020000290000000000210435000009ee0100004100000000001b04350000000404b00039000000020100002900000000001404350000000001000414000000040030008c00010000000b001d000021c60000613d0000098d00b0009c0000098d0200004100000000020b401900000040022002100000098d0010009c0000098d01008041000000c001100210000000000121019f000009e0011001c70000000002030019000400000004001d263126270000040f0000000404000029000000010b00002900000060031002700000098d0030019d00000001002001900000234e0000613d000009ce00b0009c000022f10000213d0000004000b0043f0000000101000039000000000201041a000009c90100004100000000001b0435000009ca010000410000000000140435000000000100041400000008022002700000099002200197000000040020008c000021d90000c13d0000000003000031000000200030008c00000020040000390000000004034019000022030000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f000000010b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000021f30000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000021ef0000c13d000000000006004b000022000000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00000001002001900000235b0000613d0000001f01400039000000600110018f0000000001b10019000009ce0010009c000022f10000213d000000400010043f000000200030008c000022ef0000413d00000000020b0433000009900020009c000022ef0000213d0000000201000039000000000101041a000300000001001d000009dc010000410000000000100443000400000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000022f70000613d000000000101043b000000000001004b0000000406000029000022ef0000613d000000400b00043d0000006401b00039000000800200003900000000002104350000004401b00039000009e40200004100000000002104350000002401b0003900000007020000290000000000210435000009fc0100004100000000001b04350000000407b0003900000003010000290000000000170435000000060500002900000000020504330000008401b000390000000000210435000000a401b00039000000000002004b0000223f0000613d00000000030000190000002005500039000000000405043300000000014104360000000103300039000000000023004b000022390000413d0000000002000414000000040060008c00020000000b001d000022590000613d0000000001b100490000098d0010009c0000098d0100804100000060011002100000098d00b0009c0000098d0300004100000000030b40190000004003300210000000000131019f0000098d0020009c0000098d02008041000000c002200210000000000121019f0000000002060019000600000007001d263126270000040f0000000607000029000000020b00002900000060031002700000098d0030019d0000000100200190000023670000613d000009ce00b0009c000022f10000213d0000004000b0043f0000000101000039000000000201041a000009c90100004100000000001b0435000009ca010000410000000000170435000000000100041400000008022002700000099002200197000000040020008c0000226c0000c13d0000000003000031000000200030008c00000020040000390000000004034019000022960000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c72631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000022860000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000022820000c13d000000000006004b000022930000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000023740000613d0000001f01400039000000600110018f0000000001b10019000009ce0010009c000022f10000213d000000400010043f000000200030008c000022ef0000413d00000000020b0433000009900020009c000022ef0000213d0000000201000039000000000101041a000400000001001d000009dc010000410000000000100443000600000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000022f70000613d000000000101043b000000000001004b00000005050000290000000606000029000022ef0000613d000000400700043d000000640170003900000080020000390000000000210435000000440170003900000a09020000410000000000210435000000240170003900000007020000290000000000210435000009fc010000410000000000170435000000040170003900000004020000290000000000210435000000000205043300000084017000390000000000210435000000a401700039000000000002004b000022d20000613d00000000030000190000002005500039000000000405043300000000014104360000000103300039000000000023004b000022cc0000413d0000000002000414000000040060008c000022ea0000613d00000000017100490000098d0010009c0000098d0100804100000060011002100000098d0070009c0000098d0300004100000000030740190000004003300210000000000131019f0000098d0020009c0000098d02008041000000c002200210000000000121019f0000000002060019000600000007001d263126270000040f000000060700002900000060031002700000098d0030019d0000000100200190000023920000613d000009ce0070009c000022f10000213d000000400070043f0000000701000029000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db010000410000263300010430000000000001042f0000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000022ff0000c13d0000239e0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000230b0000c13d0000239e0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023170000c13d0000239e0000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023240000c13d0000239e0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000237f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023300000c13d0000237f0000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d00000000046200190000237f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000233d0000c13d0000237f0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000237f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023490000c13d0000237f0000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023560000c13d0000239e0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023620000c13d0000239e0000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000236f0000c13d0000239e0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000237f0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000237b0000c13d000000000005004b0000238c0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000121019f00002633000104300000098d033001970000001f0530018f0000098f06300198000000400200043d00000000046200190000239e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000239a0000c13d000000000005004b000023ab0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f0000263300010430000009f601000041000000000010043f0000001101000039000000040010043f000009db010000410000263300010430000000400200043d0000002003200039000009d9040000410000000000430435000000240420003900000000001404350000002401000039000000000012043500000a050020009c000023d70000813d0000006001200039000000400010043f0000098d0030009c0000098d03008041000000400130021000000000020204330000098d0020009c0000098d020080410000006002200210000000000112019f00000000020004140000098d0020009c0000098d02008041000000c002200210000000000112019f000009da011001c700008010020000392631262c0000040f0000000100200190000023dd0000613d000000000101043b000000000001042d000009f601000041000000000010043f0000004101000039000000040010043f000009db0100004100002633000104300000000001000019000026330001043000030000000000020000000101000039000000000201041a000000400c00043d000009c90100004100000000001c04350000000401c00039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c000023f20000c13d0000000003000031000000200030008c000000200400003900000000040340190000241d0000013d0000098d00c0009c0000098d0300004100000000030c401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c700030000000c001d2631262c0000040f000000030c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c00190000240d0000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000024090000c13d000000000006004b0000241a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000024fa0000613d0000001f01400039000000600110018f000000000bc1001900000000001b004b00000000020000390000000102004039000009ce00b0009c000024f30000213d0000000100200190000024f30000c13d0000004000b0043f0000001f0030008c000024f10000a13d00000000020c0433000009900020009c000024f10000213d0000000204000039000000000404041a0000004405b0003900000a07060000410000000000650435000009e90500004100000000005b04350000000405b0003900000000004504350000002404b0003900000000000404350000000004000414000000040020008c000024680000613d0000098d00b0009c0000098d0100004100000000010b401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009cd011001c700030000000b001d2631262c0000040f000000030b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000024560000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000024520000c13d000000000006004b000024630000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000025060000613d0000001f01400039000000600110018f000000000cb10019000009ce00c0009c000024f30000213d0000004000c0043f000000200030008c000024f10000413d00000000020b0433000300000002001d000000010020003a0000254f0000413d0000000102000039000000000202041a000009c90400004100000000004c04350000000404c00039000009ca050000410000000000540435000000000400041400000008022002700000099002200197000000040020008c000024ab0000613d0000098d00c0009c0000098d0100004100000000010c401900000040011002100000098d0040009c0000098d04008041000000c003400210000000000113019f000009db011001c700020000000c001d2631262c0000040f000000020c00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057c0019000024990000613d000000000801034f00000000090c0019000000008a08043c0000000009a90436000000000059004b000024950000c13d000000000006004b000024a60000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000025120000613d0000001f01400039000000600110018f0000000001c10019000009ce0010009c000024f30000213d000000400010043f000000200030008c000024f10000413d00000000020c0433000009900020009c000024f10000213d0000000201000039000000000101041a000100000001001d000009dc010000410000000000100443000200000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000024f90000613d000000000101043b000000000001004b0000000202000029000024f10000613d00000003010000290000000104100039000000400500043d00000064015000390000000000410435000000440150003900000a07030000410000000000310435000009e2010000410000000000150435000000040150003900000001030000290000000000310435000000240150003900000000000104350000000001000414000000040020008c000024ec0000613d0000098d0050009c0000098d03000041000000000305401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009e0011001c7000300000004001d000200000005001d263126270000040f0000000205000029000000030400002900000060031002700000098d0030019d0000000100200190000025300000613d000009ce0050009c000024f30000213d000000400050043f0000000001040019000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db010000410000263300010430000000000001042f0000001f0530018f0000098f06300198000000400200043d00000000046200190000251d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000025010000c13d0000251d0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000251d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000250d0000c13d0000251d0000013d0000001f0530018f0000098f06300198000000400200043d00000000046200190000251d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000025190000c13d000000000005004b0000252a0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000121019f00002633000104300000098d033001970000001f0530018f0000098f06300198000000400200043d00000000046200190000253c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000025380000c13d000000000005004b000025490000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f0000263300010430000009f601000041000000000010043f0000001101000039000000040010043f000009db0100004100002633000104300004000000000002000400000002001d000300000001001d0000000101000039000000000201041a000000400b00043d000009c90100004100000000001b04350000000401b00039000009ca030000410000000000310435000000000100041400000008022002700000099002200197000000040020008c0000256a0000c13d0000000003000031000000200030008c00000020040000390000000004034019000025950000013d0000098d00b0009c0000098d0300004100000000030b401900000040033002100000098d0010009c0000098d01008041000000c001100210000000000131019f000009db011001c700020000000b001d2631262c0000040f000000020b00002900000060031002700000098d03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000025850000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000025810000c13d000000000006004b000025920000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f0000000100200190000025fb0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000009ce0010009c000025f40000213d0000000100200190000025f40000c13d000000400010043f0000001f0030008c000025f20000a13d00000000020b0433000009900020009c000025f20000213d0000000201000039000000000101041a000100000001001d000009dc010000410000000000100443000200000002001d000000040020044300000000010004140000098d0010009c0000098d01008041000000c001100210000009dd011001c700008002020000392631262c0000040f0000000100200190000025fa0000613d000000000101043b000000000001004b00000004050000290000000206000029000025f20000613d000000400700043d0000006401700039000000800200003900000000002104350000004401700039000009e4020000410000000000210435000000240170003900000003020000290000000000210435000009fc010000410000000000170435000000040170003900000001020000290000000000210435000000000205043300000084017000390000000000210435000000a401700039000000000002004b000025d60000613d00000000030000190000002005500039000000000405043300000000014104360000000103300039000000000023004b000025d00000413d0000000002000414000000040060008c000025ee0000613d00000000017100490000098d0010009c0000098d0100804100000060011002100000098d0070009c0000098d0300004100000000030740190000004003300210000000000131019f0000098d0020009c0000098d02008041000000c002200210000000000121019f0000000002060019000400000007001d263126270000040f000000040700002900000060031002700000098d0030019d0000000100200190000026070000613d000009ce0070009c000025f40000213d000000400070043f000000000001042d00000000010000190000263300010430000009f601000041000000000010043f0000004101000039000000040010043f000009db010000410000263300010430000000000001042f0000001f0530018f0000098f06300198000000400200043d0000000004620019000026130000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000026020000c13d000026130000013d0000098d033001970000001f0530018f0000098f06300198000000400200043d0000000004620019000026130000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000260f0000c13d000000000005004b000026200000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000098d0020009c0000098d020080410000004002200210000000000112019f0000263300010430000000000001042f0000262a002104210000000102000039000000000001042d0000000002000019000000000001042d0000262f002104230000000102000039000000000001042d0000000002000019000000000001042d0000263100000432000026320001042e000026330001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00e03ea41631fd55276af9e94c9ecd0f11699bb2ea9c20ef910daf61979d392fcd00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000082840eec00000000000000000000000000000000000000000000000000000000b6f53a7c00000000000000000000000000000000000000000000000000000000c7c01c3f00000000000000000000000000000000000000000000000000000000dd898b2e00000000000000000000000000000000000000000000000000000000dd898b2f00000000000000000000000000000000000000000000000000000000ed022ebd00000000000000000000000000000000000000000000000000000000c7c01c4000000000000000000000000000000000000000000000000000000000ce62bc8c00000000000000000000000000000000000000000000000000000000be35a44f00000000000000000000000000000000000000000000000000000000be35a45000000000000000000000000000000000000000000000000000000000c03ad0be00000000000000000000000000000000000000000000000000000000b6f53a7d00000000000000000000000000000000000000000000000000000000b76ac0d7000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000a485b4ce00000000000000000000000000000000000000000000000000000000a485b4cf00000000000000000000000000000000000000000000000000000000acaeba00000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000a16ad7da0000000000000000000000000000000000000000000000000000000082840eed0000000000000000000000000000000000000000000000000000000088e4f1cb000000000000000000000000000000000000000000000000000000008be4ee1900000000000000000000000000000000000000000000000000000000267659e1000000000000000000000000000000000000000000000000000000005d1ca630000000000000000000000000000000000000000000000000000000008129fc1b000000000000000000000000000000000000000000000000000000008129fc1c000000000000000000000000000000000000000000000000000000008245e472000000000000000000000000000000000000000000000000000000005d1ca6310000000000000000000000000000000000000000000000000000000077278ae800000000000000000000000000000000000000000000000000000000323805e800000000000000000000000000000000000000000000000000000000323805e9000000000000000000000000000000000000000000000000000000005c975abb00000000000000000000000000000000000000000000000000000000267659e2000000000000000000000000000000000000000000000000000000002fb0b8740000000000000000000000000000000000000000000000000000000015be71fe0000000000000000000000000000000000000000000000000000000016c38b3b0000000000000000000000000000000000000000000000000000000016c38b3c000000000000000000000000000000000000000000000000000000001c8abfbd0000000000000000000000000000000000000000000000000000000015be71ff0000000000000000000000000000000000000000000000000000000016783985000000000000000000000000000000000000000000000000000000000035a9ae0000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000000000000000000000000000000000001328357f0000000000000000000000000000000000000020000000800000000000000000c36dd7ea00000000000000000000000000000000000000000000000000000000241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b080000000000000000000000000000000000000044000000800000000000000000ffffffffffffffffffffff0000000000000000000000000000000000000000ffa4b914810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000161a64a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000053e41c1e000000000000000000000000000000000000000000000000000000009750ad73d9615445751d3fd0a61d867ae6a6dd1dfb5f65ef07fe835b7d5ca6bd00000000000000000000000000000000000000240000008000000000000000008a4bcc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000007fef633000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7fbfa2ccd2000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000005061757361626c653a207061757365640000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000006974656d00000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000009e7ed7f8e6dcd193d98e2fd5ebd44790ad3072ac13a6c8399c17d661a1faa4bdf2c071ca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000013dc96b366abf79e927e92b103239e06da01bab72fa98cd3d48eb7fbbf1cfa909b29de6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f50fc4a86286314eb3aa17200f6e9ba0d1cda18b0acbfb54e6d9dd307e46c2d28651689700000000000000000000000000000000000000000000000000000000007b920aa00000000000000000000000000000000000000000000000000000000e81b22ea0000000000000000000000000000000000000000000000000000000002016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0a1b9224c00000000000000000000000000000000000000000000000000000000fc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c496d706f72744578706f727453797374656d00000000000000000000000000000dc149f000000000000000000000000000000000000000000000000000000000421683f821a0574472445355be6d2b769119e8515f8376a1d7878523dfdecf7b0a41b90f000000000000000000000000000000000000000000000000000000002361458367e696363fbcc70777d07ebbd2394e89fd0adcaf147faccd1d294d60e95c048700000000000000000000000000000000000000000000000000000000a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31d0df22b4b9fa47094569d1813854946bca111f9d557698e38a6b8f7107ff9b6706578706f727400000000000000000000000000000000000000000000000000004578706f727420646f6320616c72656164792065786973747300000000000000a6ece734f20310c441daec80768668ffd0649e14bbd0ab181cf9ad511b7e60de4e487b7100000000000000000000000000000000000000000000000000000000156e29f6000000000000000000000000000000000000000000000000000000006e73650000000000000000000000000000000000000000000000000000000000506c6179657220646f6573206e6f742068617665206578706f7274206c696365326d994cdb81aaccb84aa1f62bae636dc0aaf98ab22f66b0c9224f1edccd7cc9fa75861a3823dd5286f0891f7ddce6cb62e6deee6aa355ff0e641afd829dbdcdad46d3590000000000000000000000000000000000000000000000000000000065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a020000000000000000000000000000000000002000000000000000000000000062e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2585db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa5061757361626c653a206e6f7420706175736564000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000fdd58e00000000000000000000000000000000000000000000000000000000a2a9f6940e96680af2fe721eb59341cde71d9b7ae61dc834d205d6c59360268e6b20c4540000000000000000000000000000000000000000000000000000000063e9075eadb2b714ec44137cb04a5fdb7680cc60891886d396f63cb0dbafbc9ef65866a062974fe0f8f928f144e2f758d18b07c3b8df17df9ac7a8517f380ace
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b5f84708957e5628c363709ae1d4cb346081fbf6
-----Decoded View---------------
Arg [0] : gameRegistryAddress (address): 0xb5f84708957E5628C363709AE1d4CB346081fbf6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b5f84708957e5628c363709ae1d4cb346081fbf6
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.