diff --git a/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md b/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md index db038a69592..f71af8aa883 100644 --- a/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md +++ b/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md @@ -140,9 +140,6 @@ A successful run should show something like this: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -189,9 +186,6 @@ Now that we have our accounts loaded, let's move on to deploy our pre-compiled t token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -244,9 +238,6 @@ Running now should yield output: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -309,9 +300,6 @@ Our output should now look like this: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -369,9 +357,6 @@ Our complete output should now be something like: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index 82db79ada62..fbced8300d8 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -9,7 +9,7 @@ import {IOutbox} from "./interfaces/messagebridge/IOutbox.sol"; import {IRegistry} from "./interfaces/messagebridge/IRegistry.sol"; // Libraries -import {HeaderDecoder} from "./libraries/decoders/HeaderDecoder.sol"; +import {HeaderLib} from "./libraries/HeaderLib.sol"; import {MessagesDecoder} from "./libraries/decoders/MessagesDecoder.sol"; import {Hash} from "./libraries/Hash.sol"; import {Errors} from "./libraries/Errors.sol"; @@ -21,7 +21,7 @@ import {AvailabilityOracle} from "./availability_oracle/AvailabilityOracle.sol"; /** * @title Rollup * @author Aztec Labs - * @notice Rollup contract that are concerned about readability and velocity of development + * @notice Rollup contract that is concerned about readability and velocity of development * not giving a damn about gas costs. */ contract Rollup is IRollup { @@ -30,7 +30,7 @@ contract Rollup is IRollup { uint256 public immutable VERSION; AvailabilityOracle public immutable AVAILABILITY_ORACLE; - bytes32 public rollupStateHash; + bytes32 public archive; // Root of the archive tree uint256 public lastBlockTs; // Tracks the last time time was warped on L2 ("warp" is the testing cheatcode). // See https://github.com/AztecProtocol/aztec-packages/issues/1614 @@ -44,23 +44,28 @@ contract Rollup is IRollup { } /** - * @notice Process an incoming L2Block and progress the state + * @notice Process an incoming L2 block and progress the state + * @param _header - The L2 block header + * @param _archive - A root of the archive tree after the L2 block is applied + * @param _body - The L2 block body * @param _proof - The proof of correct execution - * @param _l2Block - The L2Block data, formatted as outlined in `Decoder.sol` */ - function process(bytes memory _proof, bytes calldata _l2Block) external override(IRollup) { - _constrainGlobals(_l2Block); - - // Decode the header - (uint256 l2BlockNumber, bytes32 oldStateHash, bytes32 newStateHash) = - HeaderDecoder.decode(_l2Block[:HeaderDecoder.BLOCK_HEADER_SIZE]); + function process( + bytes calldata _header, + bytes32 _archive, + bytes calldata _body, // TODO(#3944): this will be replaced with _txsHash once the separation is finished. + bytes memory _proof + ) external override(IRollup) { + // Decode and validate header + HeaderLib.Header memory header = HeaderLib.decode(_header); + HeaderLib.validate(header, VERSION, lastBlockTs, archive); // Check if the data is available using availability oracle (change availability oracle if you want a different DA layer) bytes32 txsHash; { // @todo @LHerskind Hack such that the node is unchanged for now. // should be removed when we have a proper block publication. - txsHash = AVAILABILITY_ORACLE.publish(_l2Block[HeaderDecoder.BLOCK_HEADER_SIZE:]); + txsHash = AVAILABILITY_ORACLE.publish(_body); } if (!AVAILABILITY_ORACLE.isAvailable(txsHash)) { @@ -70,25 +75,18 @@ contract Rollup is IRollup { // Decode the cross-chain messages (bytes32 inHash,, bytes32[] memory l1ToL2Msgs, bytes32[] memory l2ToL1Msgs) = - MessagesDecoder.decode(_l2Block[HeaderDecoder.BLOCK_HEADER_SIZE:]); - - bytes32 publicInputHash = - _computePublicInputHash(_l2Block[:HeaderDecoder.BLOCK_HEADER_SIZE], txsHash, inHash); - - // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. - // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. - // if (rollupStateHash != bytes32(0) && rollupStateHash != oldStateHash) { - // revert Errors.Rollup__InvalidStateHash(rollupStateHash, oldStateHash); - // } + MessagesDecoder.decode(_body); bytes32[] memory publicInputs = new bytes32[](1); - publicInputs[0] = publicInputHash; + publicInputs[0] = _computePublicInputHash(_header, txsHash, inHash); + // @todo @benesjan We will need `nextAvailableLeafIndex` of archive to verify the proof. This value is equal to + // current block number which is stored in the header (header.globalVariables.blockNumber). if (!VERIFIER.verify(_proof, publicInputs)) { revert Errors.Rollup__InvalidProof(); } - rollupStateHash = newStateHash; + archive = _archive; lastBlockTs = block.timestamp; // @todo (issue #605) handle fee collector @@ -98,34 +96,7 @@ contract Rollup is IRollup { IOutbox outbox = REGISTRY.getOutbox(); outbox.sendL1Messages(l2ToL1Msgs); - emit L2BlockProcessed(l2BlockNumber); - } - - function _constrainGlobals(bytes calldata _header) internal view { - uint256 chainId = uint256(bytes32(_header[:0x20])); - uint256 version = uint256(bytes32(_header[0x20:0x40])); - uint256 ts = uint256(bytes32(_header[0x60:0x80])); - // block number already constrained by start state hash - - if (block.chainid != chainId) { - revert Errors.Rollup__InvalidChainId(chainId, block.chainid); - } - - if (version != VERSION) { - revert Errors.Rollup__InvalidVersion(version, VERSION); - } - - if (ts > block.timestamp) { - revert Errors.Rollup__TimestampInFuture(); - } - - // @todo @LHerskind consider if this is too strict - // This will make multiple l2 blocks in the same l1 block impractical. - // e.g., the first block will update timestamp which will make the second fail. - // Could possibly allow multiple blocks if in same l1 block - if (ts < lastBlockTs) { - revert Errors.Rollup__TimestampTooOld(); - } + emit L2BlockProcessed(header.globalVariables.blockNumber); } function _computePublicInputHash(bytes calldata _header, bytes32 _txsHash, bytes32 _inHash) diff --git a/l1-contracts/src/core/interfaces/IRollup.sol b/l1-contracts/src/core/interfaces/IRollup.sol index ab2fca20e18..47f6dd8b31a 100644 --- a/l1-contracts/src/core/interfaces/IRollup.sol +++ b/l1-contracts/src/core/interfaces/IRollup.sol @@ -3,7 +3,12 @@ pragma solidity >=0.8.18; interface IRollup { - event L2BlockProcessed(uint256 indexed blockNum); + event L2BlockProcessed(uint256 indexed blockNumber); - function process(bytes memory _proof, bytes calldata _l2Block) external; + function process( + bytes calldata _header, + bytes32 _archive, + bytes calldata _body, + bytes memory _proof + ) external; } diff --git a/l1-contracts/src/core/libraries/Errors.sol b/l1-contracts/src/core/libraries/Errors.sol index e8d6785f183..39ec6a692bc 100644 --- a/l1-contracts/src/core/libraries/Errors.sol +++ b/l1-contracts/src/core/libraries/Errors.sol @@ -48,7 +48,7 @@ library Errors { ); // 0x5e789f34 // Rollup - error Rollup__InvalidStateHash(bytes32 expected, bytes32 actual); // 0xa3cfaab3 + error Rollup__InvalidArchive(bytes32 expected, bytes32 actual); // 0xb682a40e error Rollup__InvalidProof(); // 0xa5b2ba17 error Rollup__InvalidChainId(uint256 expected, uint256 actual); // 0x37b5bc12 error Rollup__InvalidVersion(uint256 expected, uint256 actual); // 0x9ef30794 diff --git a/l1-contracts/src/core/libraries/HeaderLib.sol b/l1-contracts/src/core/libraries/HeaderLib.sol new file mode 100644 index 00000000000..c6481f53ee0 --- /dev/null +++ b/l1-contracts/src/core/libraries/HeaderLib.sol @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +// Libraries +import {Errors} from "./Errors.sol"; +import {Constants} from "./ConstantsGen.sol"; +import {Hash} from "./Hash.sol"; + +/** + * @title Header Library + * @author Aztec Labs + * @notice Decoding and validating an L2 block header + * Concerned with readability and velocity of development not giving a damn about gas costs. + * + * ------------------- + * You can use https://gist.github.com/LHerskind/724a7e362c97e8ac2902c6b961d36830 to generate the below outline. + * ------------------- + * L2 Block Header specification + * ------------------- + * + * | byte start | num bytes | name + * | --- | --- | --- + * | | | Header { + * | | | GlobalVariables { + * | 0x0000 | 0x20 | chainId + * | 0x0020 | 0x20 | version + * | 0x0040 | 0x20 | blockNumber + * | 0x0060 | 0x20 | timestamp + * | | | } + * | | | StateReference { + * | 0x0080 | 0x20 | l1ToL2MessageTree.root + * | 0x00a0 | 0x04 | l1ToL2MessageTree.nextAvailableLeafIndex + * | | | PartialStateReference { + * | 0x00a4 | 0x20 | noteHashTree.root + * | 0x00c4 | 0x04 | noteHashTree.nextAvailableLeafIndex + * | 0x00c8 | 0x20 | nullifierTree.root + * | 0x00e8 | 0x04 | nullifierTree.nextAvailableLeafIndex + * | 0x00ec | 0x20 | contractTree.root + * | 0x010c | 0x04 | contractTree.nextAvailableLeafIndex + * | 0x0110 | 0x20 | publicDataTree.root + * | 0x0130 | 0x04 | publicDataTree.nextAvailableLeafIndex + * | | | } + * | | | } + * | 0x0134 | 0x20 | lastArchive.root + * | 0x0154 | 0x04 | lastArchive.nextAvailableLeafIndex + * | 0x0158 | 0x20 | bodyHash + * | | | } + * | --- | --- | --- + */ +library HeaderLib { + struct AppendOnlyTreeSnapshot { + bytes32 root; + uint32 nextAvailableLeafIndex; + } + + struct GlobalVariables { + uint256 chainId; + uint256 version; + uint256 blockNumber; + uint256 timestamp; + } + + struct PartialStateReference { + AppendOnlyTreeSnapshot noteHashTree; + AppendOnlyTreeSnapshot nullifierTree; + AppendOnlyTreeSnapshot contractTree; + AppendOnlyTreeSnapshot publicDataTree; + } + + struct StateReference { + AppendOnlyTreeSnapshot l1ToL2MessageTree; + // Note: Can't use "partial" name here as in yellow paper because it is a reserved solidity keyword + PartialStateReference partialStateReference; + } + + struct Header { + GlobalVariables globalVariables; + StateReference stateReference; + AppendOnlyTreeSnapshot lastArchive; + bytes32 bodyHash; + } + + /** + * @notice Decodes the header + * @param _header - The header calldata + * @return The decoded header + */ + function decode(bytes calldata _header) internal pure returns (Header memory) { + require(_header.length == 376, "Invalid header length"); + + Header memory header; + + header.globalVariables.chainId = uint256(bytes32(_header[:0x20])); + header.globalVariables.version = uint256(bytes32(_header[0x20:0x40])); + header.globalVariables.blockNumber = uint256(bytes32(_header[0x40:0x60])); + header.globalVariables.timestamp = uint256(bytes32(_header[0x60:0x80])); + header.stateReference.l1ToL2MessageTree = + AppendOnlyTreeSnapshot(bytes32(_header[0x80:0xa0]), uint32(bytes4(_header[0xa0:0xa4]))); + header.stateReference.partialStateReference.noteHashTree = + AppendOnlyTreeSnapshot(bytes32(_header[0xa4:0xc4]), uint32(bytes4(_header[0xc4:0xc8]))); + header.stateReference.partialStateReference.nullifierTree = + AppendOnlyTreeSnapshot(bytes32(_header[0xc8:0xe8]), uint32(bytes4(_header[0xe8:0xec]))); + header.stateReference.partialStateReference.contractTree = + AppendOnlyTreeSnapshot(bytes32(_header[0xec:0x10c]), uint32(bytes4(_header[0x10c:0x110]))); + header.stateReference.partialStateReference.publicDataTree = + AppendOnlyTreeSnapshot(bytes32(_header[0x110:0x130]), uint32(bytes4(_header[0x130:0x134]))); + header.lastArchive = + AppendOnlyTreeSnapshot(bytes32(_header[0x134:0x154]), uint32(bytes4(_header[0x154:0x158]))); + + header.bodyHash = bytes32(_header[0x158:0x178]); + + return header; + } + + /** + * @notice Validates the header + * @param _header - The decoded header + * @param _version - The expected version + * @param _lastBlockTs - The timestamp of the last block + * @param _archive - The expected archive root + */ + function validate(Header memory _header, uint256 _version, uint256 _lastBlockTs, bytes32 _archive) + internal + view + { + if (block.chainid != _header.globalVariables.chainId) { + revert Errors.Rollup__InvalidChainId(_header.globalVariables.chainId, block.chainid); + } + + if (_header.globalVariables.version != _version) { + revert Errors.Rollup__InvalidVersion(_header.globalVariables.version, _version); + } + + // block number already constrained by archive root check + + if (_header.globalVariables.timestamp > block.timestamp) { + revert Errors.Rollup__TimestampInFuture(); + } + + // @todo @LHerskind consider if this is too strict + // This will make multiple l2 blocks in the same l1 block impractical. + // e.g., the first block will update timestamp which will make the second fail. + // Could possibly allow multiple blocks if in same l1 block + if (_header.globalVariables.timestamp < _lastBlockTs) { + revert Errors.Rollup__TimestampTooOld(); + } + + // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. + if (_archive != bytes32(0) && _archive != _header.lastArchive.root) { + revert Errors.Rollup__InvalidArchive(_archive, _header.lastArchive.root); + } + } +} diff --git a/l1-contracts/src/core/libraries/decoders/Decoder.sol b/l1-contracts/src/core/libraries/decoders/Decoder.sol index 9a9863f5b1a..178e91acda2 100644 --- a/l1-contracts/src/core/libraries/decoders/Decoder.sol +++ b/l1-contracts/src/core/libraries/decoders/Decoder.sol @@ -107,40 +107,6 @@ library Decoder { uint256 private constant BLOCK_HEADER_OFFSET = START_TREES_BLOCK_HEADER_OFFSET + 2 * TREES_BLOCK_HEADER_SIZE; - /** - * @notice Decodes the inputs and computes values to check state against - * @param _l2Block - The L2 block calldata. - * @return l2BlockNumber - The L2 block number. - * @return startStateHash - The state hash expected prior the execution. - * @return endStateHash - The state hash expected after the execution. - * @return publicInputHash - The hash of the public inputs - * @return l2ToL1Msgs - The L2 to L1 messages - * @return l1ToL2Msgs - The L1 to L2 messages - */ - function decode(bytes calldata _l2Block) - internal - pure - returns ( - uint256 l2BlockNumber, - bytes32 startStateHash, - bytes32 endStateHash, - bytes32 publicInputHash, - bytes32[] memory l2ToL1Msgs, - bytes32[] memory l1ToL2Msgs - ) - { - l2BlockNumber = getL2BlockNumber(_l2Block); - // Note, for startStateHash to match the storage, the l2 block number must be new - 1. - // Only jumping 1 block at a time. - startStateHash = computeStateHash(l2BlockNumber - 1, START_TREES_BLOCK_HEADER_OFFSET, _l2Block); - endStateHash = computeStateHash(l2BlockNumber, END_TREES_BLOCK_HEADER_OFFSET, _l2Block); - - bytes32 diffRoot; - bytes32 l1ToL2MsgsHash; - (diffRoot, l1ToL2MsgsHash, l2ToL1Msgs, l1ToL2Msgs) = computeConsumables(_l2Block); - publicInputHash = computePublicInputHash(_l2Block, diffRoot, l1ToL2MsgsHash); - } - /** * @notice Computes the public input hash * @dev Uses sha256 to field @@ -189,13 +155,13 @@ library Decoder { /** * @notice Computes consumables for the block - * @param _l2Block - The L2 block calldata. + * @param _body - The L2 block body. * @return diffRoot - The root of the diff tree (new commitments, nullifiers etc) * @return l1ToL2MsgsHash - The hash of the L1 to L2 messages * @return l2ToL1Msgs - The L2 to L1 messages of the block * @return l1ToL2Msgs - The L1 to L2 messages of the block */ - function computeConsumables(bytes calldata _l2Block) + function computeConsumables(bytes calldata _body) internal pure returns (bytes32, bytes32, bytes32[] memory, bytes32[] memory) @@ -204,52 +170,53 @@ library Decoder { ConsumablesVars memory vars; { - uint256 offset = BLOCK_HEADER_OFFSET; + uint256 offset = 0; // Commitments - uint256 count = read4(_l2Block, offset); + uint256 count = read4(_body, offset); vars.baseLeaves = new bytes32[](count / Constants.MAX_NEW_COMMITMENTS_PER_TX); - offsets.commitment = BLOCK_HEADER_OFFSET + 0x4; - offset += 0x4 + count * 0x20; + offset += 0x4; + offsets.commitment = offset; + offset += count * 0x20; offsets.nullifier = offset + 0x4; // + 0x4 to offset by next read4 // Nullifiers - count = read4(_l2Block, offset); + count = read4(_body, offset); offset += 0x4 + count * 0x20; offsets.publicData = offset + 0x4; // + 0x4 to offset by next read4 // Public data writes - count = read4(_l2Block, offset); + count = read4(_body, offset); offset += 0x4 + count * 0x40; offsets.l2ToL1Msgs = offset + 0x4; // + 0x4 to offset by next read4 // L2 to L1 messages - count = read4(_l2Block, offset); + count = read4(_body, offset); vars.l2ToL1Msgs = new bytes32[](count); assembly { // load the l2 to l1 msgs (done here as offset will be altered in loop) let l2ToL1Msgs := mload(add(vars, 0x20)) calldatacopy( - add(l2ToL1Msgs, 0x20), add(_l2Block.offset, mload(add(offsets, 0x60))), mul(count, 0x20) + add(l2ToL1Msgs, 0x20), add(_body.offset, mload(add(offsets, 0x60))), mul(count, 0x20) ) } offset += 0x4 + count * 0x20; offsets.contracts = offset + 0x4; // + 0x4 to offset by next read4 // Contracts - count = read4(_l2Block, offset); + count = read4(_body, offset); offsets.contractData = offsets.contracts + count * 0x20; offset += 0x4 + count * 0x54; offsets.l1ToL2Msgs = offset + 0x4; // + 0x4 to offset by next read4 // L1 to L2 messages - count = read4(_l2Block, offset); + count = read4(_body, offset); vars.l1Tol2MsgsCount = count; offset += 0x4 + count * 0x20; offsets.encryptedLogs = offset + 0x4; // + 0x4 to offset by next read4 // Used as length in bytes down here - uint256 length = read4(_l2Block, offset); + uint256 length = read4(_body, offset); offsets.unencryptedLogs = offsets.encryptedLogs + 0x4 + length; } @@ -278,26 +245,24 @@ library Decoder { * Note: will advance offsets by the number of bytes processed. */ (vars.encryptedLogsHash, offsets.encryptedLogs) = - computeKernelLogsHash(offsets.encryptedLogs, _l2Block); + computeKernelLogsHash(offsets.encryptedLogs, _body); (vars.unencryptedLogsHash, offsets.unencryptedLogs) = - computeKernelLogsHash(offsets.unencryptedLogs, _l2Block); + computeKernelLogsHash(offsets.unencryptedLogs, _body); // Insertions are split into multiple `bytes.concat` to work around stack too deep. vars.baseLeaf = bytes.concat( bytes.concat( - slice(_l2Block, offsets.commitment, Constants.COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP), - slice(_l2Block, offsets.nullifier, Constants.NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP), - slice( - _l2Block, offsets.publicData, Constants.PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP - ), - slice(_l2Block, offsets.l2ToL1Msgs, Constants.L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP), - slice(_l2Block, offsets.contracts, Constants.CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP) + slice(_body, offsets.commitment, Constants.COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.nullifier, Constants.NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.publicData, Constants.PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.l2ToL1Msgs, Constants.L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.contracts, Constants.CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP) ), bytes.concat( - slice(_l2Block, offsets.contractData, 0x20), // newContractDataKernel.aztecAddress + slice(_body, offsets.contractData, 0x20), // newContractDataKernel.aztecAddress bytes12(0), - slice(_l2Block, offsets.contractData + 0x20, 0x14) // newContractDataKernel.ethAddress + slice(_body, offsets.contractData + 0x20, 0x14) // newContractDataKernel.ethAddress ), bytes.concat(vars.encryptedLogsHash, vars.unencryptedLogsHash) ); @@ -324,7 +289,7 @@ library Decoder { assembly { calldatacopy( add(l1ToL2Msgs, 0x20), - add(_l2Block.offset, mload(add(offsets, 0xc0))), + add(_body.offset, mload(add(offsets, 0xc0))), l1ToL2MsgsHashPreimageSize ) } diff --git a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol deleted file mode 100644 index f2e7778e1f6..00000000000 --- a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol +++ /dev/null @@ -1,107 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// Copyright 2023 Aztec Labs. -pragma solidity >=0.8.18; - -// Libraries -import {Constants} from "../ConstantsGen.sol"; -import {Hash} from "../Hash.sol"; - -/** - * @title Header Decoder Library - * @author Aztec Labs - * @notice Decoding a L2 header - * Concerned with readability and velocity of development not giving a damn about gas costs. - * - * ------------------- - * You can use https://gist.github.com/LHerskind/724a7e362c97e8ac2902c6b961d36830 to generate the below outline. - * ------------------- - * L2 Block Header specification - * ------------------- - * - * | byte start | num bytes | name - * | --- | --- | --- - * | 0x0000 | 0x20 | chain-id - * | 0x0020 | 0x20 | version - * | 0x0040 | 0x20 | L2 block number - * | 0x0060 | 0x20 | L2 timestamp - * | 0x0080 | 0x20 | startNoteHashTreeSnapshot.root - * | 0x00a0 | 0x04 | startNoteHashTreeSnapshot.nextAvailableLeafIndex - * | 0x00a4 | 0x20 | startNullifierTreeSnapshot.root - * | 0x00c4 | 0x04 | startNullifierTreeSnapshot.nextAvailableLeafIndex - * | 0x00c8 | 0x20 | startContractTreeSnapshot.root - * | 0x00e8 | 0x04 | startContractTreeSnapshot.nextAvailableLeafIndex - * | 0x00ec | 0x20 | startPublicDataTreeSnapshot.root - * | 0x010c | 0x04 | startPublicDataTreeSnapshot.nextAvailableLeafIndex - * | 0x0110 | 0x20 | startL1ToL2MessageTreeSnapshot.root - * | 0x0130 | 0x04 | startL1ToL2MessageTreeSnapshot.nextAvailableLeafIndex - * | 0x0134 | 0x20 | startArchiveSnapshot.root - * | 0x0154 | 0x04 | startArchiveSnapshot.nextAvailableLeafIndex - * | 0x0158 | 0x20 | endNoteHashTreeSnapshot.root - * | 0x0178 | 0x04 | endNoteHashTreeSnapshot.nextAvailableLeafIndex - * | 0x017c | 0x20 | endNullifierTreeSnapshot.root - * | 0x019c | 0x04 | endNullifierTreeSnapshot.nextAvailableLeafIndex - * | 0x01a0 | 0x20 | endContractTreeSnapshot.root - * | 0x01c0 | 0x04 | endContractTreeSnapshot.nextAvailableLeafIndex - * | 0x01c4 | 0x20 | endPublicDataTreeSnapshot.root - * | 0x01e4 | 0x04 | endPublicDataTreeSnapshot.nextAvailableLeafIndex - * | 0x01e8 | 0x20 | endL1ToL2MessageTreeSnapshot.root - * | 0x0208 | 0x04 | endL1ToL2MessageTreeSnapshot.nextAvailableLeafIndex - * | 0x020c | 0x20 | endArchiveSnapshot.root - * | 0x022c | 0x04 | endArchiveSnapshot.nextAvailableLeafIndex - * | --- | --- | --- - */ -library HeaderDecoder { - // DECODING OFFSET CONSTANTS - // Where the start of trees metadata begins in the block - uint256 private constant START_TREES_BLOCK_HEADER_OFFSET = 0x80; - - // The size of the block header elements - uint256 private constant TREES_BLOCK_HEADER_SIZE = 0xd8; - - // Where the end of trees metadata begins in the block - uint256 private constant END_TREES_BLOCK_HEADER_OFFSET = - START_TREES_BLOCK_HEADER_OFFSET + TREES_BLOCK_HEADER_SIZE; - - // Where the metadata ends and the block data begins. - uint256 internal constant BLOCK_HEADER_SIZE = - START_TREES_BLOCK_HEADER_OFFSET + 2 * TREES_BLOCK_HEADER_SIZE; - - /** - * @notice Decodes the header - * @param _header - The L2 block calldata. - * @return l2BlockNumber - The L2 block number - * @return startStateHash - The start state hash - * @return endStateHash - The end state hash - */ - function decode(bytes calldata _header) - internal - pure - returns (uint256 l2BlockNumber, bytes32 startStateHash, bytes32 endStateHash) - { - l2BlockNumber = uint256(bytes32(_header[0x40:0x60])); - // Note, for startStateHash to match the storage, the l2 block number must be new - 1. - // Only jumping 1 block at a time. - startStateHash = computeStateHash(l2BlockNumber - 1, START_TREES_BLOCK_HEADER_OFFSET, _header); - endStateHash = computeStateHash(l2BlockNumber, END_TREES_BLOCK_HEADER_OFFSET, _header); - } - - /** - * @notice Computes a state hash - * @param _l2BlockNumber - The L2 block number - * @param _offset - The offset into the data, 0x80 for start, 0x019c for end - * @param _header - The L2 block calldata. - * @return The state hash - * @dev The state hash is sha256 hash of block's header elements. For each block the header elements are - * the block number, snapshots of all the trees and the root of the public data tree. This function - * copies all of these to memory and then hashes them. - */ - function computeStateHash(uint256 _l2BlockNumber, uint256 _offset, bytes calldata _header) - internal - pure - returns (bytes32) - { - return sha256( - bytes.concat(bytes32(_l2BlockNumber), _header[_offset:_offset + TREES_BLOCK_HEADER_SIZE]) - ); - } -} diff --git a/l1-contracts/test/DecoderHelper.sol b/l1-contracts/test/DecoderHelper.sol deleted file mode 100644 index aa1e9d326fa..00000000000 --- a/l1-contracts/test/DecoderHelper.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// Copyright 2023 Aztec Labs. -pragma solidity >=0.8.18; - -import {Decoder} from "../src/core/libraries/decoders/Decoder.sol"; -import {Rollup} from "../src/core/Rollup.sol"; - -contract DecoderHelper { - function decode(bytes calldata _l2Block) - external - pure - returns (uint256, bytes32, bytes32, bytes32, bytes32[] memory, bytes32[] memory) - { - return Decoder.decode(_l2Block); - } - - function computeDiffRootAndMessagesHash(bytes calldata _l2Block) - external - pure - returns (bytes32, bytes32) - { - (bytes32 diffRoot, bytes32 l1ToL2MessagesHash,,) = Decoder.computeConsumables(_l2Block); - return (diffRoot, l1ToL2MessagesHash); - } - - function computeKernelLogsHash(bytes calldata _kernelLogs) - external - pure - returns (bytes32, uint256) - { - return Decoder.computeKernelLogsHash(0, _kernelLogs); - } -} diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 97c05292291..382908012f1 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -5,7 +5,7 @@ pragma solidity >=0.8.18; import {Test} from "forge-std/Test.sol"; import {DecoderTest} from "./decoders/Decoder.t.sol"; -import {DecoderHelper} from "./DecoderHelper.sol"; +import {DecoderHelper} from "./decoders/helpers/DecoderHelper.sol"; import {DecoderBase} from "./decoders/Base.sol"; @@ -58,53 +58,69 @@ contract RollupTest is DecoderBase { } function testRevertInvalidChainId() public { - bytes memory block_ = load("empty_block_0").block.body; + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes32 archive = data.archive; + bytes memory body = data.body; assembly { - mstore(add(block_, 0x20), 0x420) + mstore(add(header, 0x20), 0x420) } vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidChainId.selector, 0x420, 31337)); - rollup.process(bytes(""), block_); + rollup.process(header, archive, body, bytes("")); } function testRevertInvalidVersion() public { - bytes memory block_ = load("empty_block_0").block.body; + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes32 archive = data.archive; + bytes memory body = data.body; assembly { - mstore(add(block_, 0x40), 0x420) + mstore(add(header, 0x40), 0x420) } vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidVersion.selector, 0x420, 1)); - rollup.process(bytes(""), block_); + rollup.process(header, archive, body, bytes("")); } function testRevertTimestampInFuture() public { - bytes memory block_ = load("empty_block_0").block.body; + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes32 archive = data.archive; + bytes memory body = data.body; uint256 ts = block.timestamp + 1; assembly { - mstore(add(block_, 0x80), ts) + mstore(add(header, 0x80), ts) } vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampInFuture.selector)); - rollup.process(bytes(""), block_); + rollup.process(header, archive, body, bytes("")); } function testRevertTimestampTooOld() public { - bytes memory block_ = load("empty_block_0").block.body; + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes32 archive = data.archive; + bytes memory body = data.body; // Overwrite in the rollup contract vm.store(address(rollup), bytes32(uint256(1)), bytes32(uint256(block.timestamp))); vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampTooOld.selector)); - rollup.process(bytes(""), block_); + rollup.process(header, archive, body, bytes("")); } function _testBlock(string memory name) public { DecoderBase.Full memory full = load(name); + bytes memory header = full.block.header; + bytes32 archive = full.block.archive; + bytes memory body = full.block.body; + // We jump to the time of the block. - vm.warp(full.block.timestamp); + vm.warp(full.block.decodedHeader.globalVariables.timestamp); _populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content); @@ -116,7 +132,7 @@ contract RollupTest is DecoderBase { } vm.record(); - rollup.process(bytes(""), full.block.body); + rollup.process(header, archive, body, bytes("")); (, bytes32[] memory inboxWrites) = vm.accesses(address(inbox)); (, bytes32[] memory outboxWrites) = vm.accesses(address(outbox)); @@ -145,7 +161,7 @@ contract RollupTest is DecoderBase { assertEq(inboxWrites.length, count, "Invalid inbox writes"); } - assertEq(rollup.rollupStateHash(), full.block.endStateHash, "Invalid rollup state hash"); + assertEq(rollup.archive(), archive, "Invalid archive"); } function _populateInbox(address _sender, bytes32 _recipient, bytes32[] memory _contents) internal { diff --git a/l1-contracts/test/decoders/Base.sol b/l1-contracts/test/decoders/Base.sol index ee95efe7a46..c891194014d 100644 --- a/l1-contracts/test/decoders/Base.sol +++ b/l1-contracts/test/decoders/Base.sol @@ -5,7 +5,13 @@ pragma solidity >=0.8.18; import {Test} from "forge-std/Test.sol"; contract DecoderBase is Test { + struct AppendOnlyTreeSnapshot { + uint32 nextAvailableLeafIndex; + bytes32 root; + } + // When I had data and messages as one combined struct it failed, but I can have this top-layer and it works :shrug: + // Note: Members of the struct (and substructs) have to be in ALPHABETICAL order! struct Full { Data block; Messages messages; @@ -24,14 +30,39 @@ contract DecoderBase is Test { } struct Data { - uint256 blockNumber; + bytes32 archive; bytes body; bytes32 calldataHash; - bytes32 endStateHash; + DecodedHeader decodedHeader; + bytes header; bytes32 l1ToL2MessagesHash; bytes32 publicInputsHash; - bytes32 startStateHash; + } + + struct DecodedHeader { + bytes32 bodyHash; + GlobalVariables globalVariables; + AppendOnlyTreeSnapshot lastArchive; + StateReference stateReference; + } + + struct GlobalVariables { + uint256 blockNumber; + uint256 chainId; uint256 timestamp; + uint256 version; + } + + struct StateReference { + AppendOnlyTreeSnapshot l1ToL2MessageTree; + PartialStateReference partialStateReference; + } + + struct PartialStateReference { + AppendOnlyTreeSnapshot contractTree; + AppendOnlyTreeSnapshot noteHashTree; + AppendOnlyTreeSnapshot nullifierTree; + AppendOnlyTreeSnapshot publicDataTree; } function load(string memory name) public view returns (Full memory) { diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index c846f12a29a..e11586d30b4 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -6,49 +6,19 @@ import {DecoderBase} from "./Base.sol"; import {Hash} from "../../src/core/libraries/Hash.sol"; import {DataStructures} from "../../src/core/libraries/DataStructures.sol"; -import {DecoderHelper} from "../DecoderHelper.sol"; + +import {DecoderHelper} from "./helpers/DecoderHelper.sol"; +import {HeaderDecoderHelper} from "./helpers/HeaderDecoderHelper.sol"; +import {MessagesDecoderHelper} from "./helpers/MessagesDecoderHelper.sol"; +import {TxsDecoderHelper} from "./helpers/TxsDecoderHelper.sol"; +import {HeaderLib} from "../../src/core/libraries/HeaderLib.sol"; import {Decoder} from "../../src/core/libraries/decoders/Decoder.sol"; -import {HeaderDecoder} from "../../src/core/libraries/decoders/HeaderDecoder.sol"; import {MessagesDecoder} from "../../src/core/libraries/decoders/MessagesDecoder.sol"; import {TxsDecoder} from "../../src/core/libraries/decoders/TxsDecoder.sol"; import {AvailabilityOracle} from "../../src/core/availability_oracle/AvailabilityOracle.sol"; -contract HeaderDecoderHelper { - // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) - public - pure - returns (uint256 l2BlockNumber, bytes32 startStateHash, bytes32 endStateHash) - { - return HeaderDecoder.decode(_header); - } -} - -contract MessagesDecoderHelper { - // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) - public - pure - returns ( - bytes32 l1ToL2MsgsHash, - bytes32 l2ToL1MsgsHash, - bytes32[] memory l1ToL2Msgs, - bytes32[] memory l2ToL1Msgs - ) - { - return MessagesDecoder.decode(_header[HeaderDecoder.BLOCK_HEADER_SIZE:]); - } -} - -contract TxsDecoderHelper { - // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) public pure returns (bytes32 txsHash) { - return TxsDecoder.decode(_header[HeaderDecoder.BLOCK_HEADER_SIZE:]); - } -} - /** * Blocks are generated using the `integration_l1_publisher.test.ts` tests. * Main use of these test is shorter cycles when updating the decoder contract. @@ -80,27 +50,109 @@ contract DecoderTest is DecoderBase { // Using the FULL decoder. ( - uint256 l2BlockNumber, - bytes32 startStateHash, - bytes32 endStateHash, - bytes32 publicInputsHash, + bytes32 diffRoot, + bytes32 l1ToL2MessagesHash, bytes32[] memory l2ToL1Msgs, bytes32[] memory l1ToL2Msgs - ) = helper.decode(data.block.body); - (bytes32 diffRoot, bytes32 l1ToL2MessagesHash) = - helper.computeDiffRootAndMessagesHash(data.block.body); + ) = helper.computeConsumables(data.block.body); // Header { - (uint256 headerL2BlockNumber, bytes32 headerStartStateHash, bytes32 headerEndStateHash) = - headerHelper.decode(data.block.body); - - assertEq(l2BlockNumber, data.block.blockNumber, "Invalid block number"); - assertEq(headerL2BlockNumber, data.block.blockNumber, "Invalid block number"); - assertEq(startStateHash, data.block.startStateHash, "Invalid start state hash"); - assertEq(headerStartStateHash, data.block.startStateHash, "Invalid start state hash"); - assertEq(endStateHash, data.block.endStateHash, "Invalid end state hash"); - assertEq(headerEndStateHash, data.block.endStateHash, "Invalid end state hash"); + DecoderBase.DecodedHeader memory referenceHeader = data.block.decodedHeader; + HeaderLib.Header memory header = headerHelper.decode(data.block.header); + + // GlobalVariables + { + DecoderBase.GlobalVariables memory globalVariables = referenceHeader.globalVariables; + + assertEq( + header.globalVariables.blockNumber, globalVariables.blockNumber, "Invalid block number" + ); + assertEq(header.globalVariables.chainId, globalVariables.chainId, "Invalid chain Id"); + assertEq(header.globalVariables.timestamp, globalVariables.timestamp, "Invalid timestamp"); + assertEq(header.globalVariables.version, globalVariables.version, "Invalid version"); + } + + // StateReference + { + DecoderBase.StateReference memory stateReference = referenceHeader.stateReference; + + // L1 -> L2 messages + assertEq( + header.stateReference.l1ToL2MessageTree.nextAvailableLeafIndex, + stateReference.l1ToL2MessageTree.nextAvailableLeafIndex, + "Invalid l1ToL2MessageTree.nextAvailableLeafIndex" + ); + assertEq( + header.stateReference.l1ToL2MessageTree.root, + stateReference.l1ToL2MessageTree.root, + "Invalid l1ToL2MessageTree.root" + ); + + // PartialStateReference + { + DecoderBase.PartialStateReference memory partialStateReference = + referenceHeader.stateReference.partialStateReference; + + // NoteHashTree + assertEq( + header.stateReference.partialStateReference.noteHashTree.nextAvailableLeafIndex, + partialStateReference.noteHashTree.nextAvailableLeafIndex, + "Invalid noteHashTree.nextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.noteHashTree.root, + partialStateReference.noteHashTree.root, + "Invalid noteHashTree.root" + ); + + // NullifierTree + assertEq( + header.stateReference.partialStateReference.nullifierTree.nextAvailableLeafIndex, + partialStateReference.nullifierTree.nextAvailableLeafIndex, + "Invalid nullifierTree.nextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.nullifierTree.root, + partialStateReference.nullifierTree.root, + "Invalid nullifierTree.root" + ); + + // ContractTree + assertEq( + header.stateReference.partialStateReference.contractTree.nextAvailableLeafIndex, + partialStateReference.contractTree.nextAvailableLeafIndex, + "Invalid contractTree.nextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.contractTree.root, + partialStateReference.contractTree.root, + "Invalid contractTree.root" + ); + + // PublicDataTree + assertEq( + header.stateReference.partialStateReference.publicDataTree.nextAvailableLeafIndex, + partialStateReference.publicDataTree.nextAvailableLeafIndex, + "Invalid publicDataTree.nextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.publicDataTree.root, + partialStateReference.publicDataTree.root, + "Invalid publicDataTree.root" + ); + } + } + + assertEq( + header.lastArchive.nextAvailableLeafIndex, + referenceHeader.lastArchive.nextAvailableLeafIndex, + "Invalid lastArchive.nextAvailableLeafIndex" + ); + assertEq( + header.lastArchive.root, referenceHeader.lastArchive.root, "Invalid lastArchive.root" + ); + assertEq(header.bodyHash, referenceHeader.bodyHash, "Invalid body hash"); } // Messages diff --git a/l1-contracts/test/decoders/helpers/DecoderHelper.sol b/l1-contracts/test/decoders/helpers/DecoderHelper.sol new file mode 100644 index 00000000000..bdbc019545d --- /dev/null +++ b/l1-contracts/test/decoders/helpers/DecoderHelper.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {Decoder} from "../../../src/core/libraries/decoders/Decoder.sol"; +import {Rollup} from "../../../src/core/Rollup.sol"; + +contract DecoderHelper { + function computeConsumables(bytes calldata _body) + external + pure + returns (bytes32, bytes32, bytes32[] memory, bytes32[] memory) + { + return Decoder.computeConsumables(_body); + } + + function computeKernelLogsHash(bytes calldata _kernelLogs) + external + pure + returns (bytes32, uint256) + { + return Decoder.computeKernelLogsHash(0, _kernelLogs); + } +} diff --git a/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol b/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol new file mode 100644 index 00000000000..5d78b620b2a --- /dev/null +++ b/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {HeaderLib} from "../../../src/core/libraries/HeaderLib.sol"; + +contract HeaderDecoderHelper { + // A wrapper used such that we get "calldata" and not memory + function decode(bytes calldata _header) public pure returns (HeaderLib.Header memory) { + return HeaderLib.decode(_header); + } +} diff --git a/l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol b/l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol new file mode 100644 index 00000000000..ce8c866aea8 --- /dev/null +++ b/l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {MessagesDecoder} from "../../../src/core/libraries/decoders/MessagesDecoder.sol"; + +contract MessagesDecoderHelper { + // A wrapper used such that we get "calldata" and not memory + function decode(bytes calldata _body) + public + pure + returns ( + bytes32 l1ToL2MsgsHash, + bytes32 l2ToL1MsgsHash, + bytes32[] memory l1ToL2Msgs, + bytes32[] memory l2ToL1Msgs + ) + { + return MessagesDecoder.decode(_body); + } +} diff --git a/l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol b/l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol new file mode 100644 index 00000000000..aa7b5e5190d --- /dev/null +++ b/l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {TxsDecoder} from "../../../src/core/libraries/decoders/TxsDecoder.sol"; + +contract TxsDecoderHelper { + // A wrapper used such that we get "calldata" and not memory + function decode(bytes calldata _body) public pure returns (bytes32 txsHash) { + return TxsDecoder.decode(_body); + } +} diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index 71278c67c1e..69a1059fe90 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -35,13 +35,48 @@ ] }, "block": { - "blockNumber": 1, - "startStateHash": "0xc738d05d59876de0510b4270011e7f52341083568b9bafef2324af4d12eca533", - "endStateHash": "0x87bffdad8ab435bf2382a7a6cf54d95dbda6e43ff1d3810cc3d1a6a65aa85dd8", - "publicInputsHash": "0x2becbeeb3170f323bf0e30641b4b4da3dbf439caf5639a2eef139173a6693f8c", + "archive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "decodedHeader": { + "bodyHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "globalVariables": { + "blockNumber": 1, + "chainId": 31337, + "timestamp": 0, + "version": 1 + }, + "lastArchive": { + "nextAvailableLeafIndex": 1, + "root": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02" + }, + "stateReference": { + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 16, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, + "partialStateReference": { + "contractTree": { + "nextAvailableLeafIndex": 4, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 256, + "root": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 384, + "root": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 96, + "root": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + } + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000015b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000201864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa020000000116642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000101a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee1100000002000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", - "timestamp": 0 + "publicInputsHash": "0x1476d6b0483d0d5fc4c9d3b04f50105d97a06bb01054ec7acccac3ff6c85f960" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index d09682cffc1..006b03407f5 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -35,13 +35,48 @@ ] }, "block": { - "blockNumber": 2, - "startStateHash": "0x87bffdad8ab435bf2382a7a6cf54d95dbda6e43ff1d3810cc3d1a6a65aa85dd8", - "endStateHash": "0xe6d5706f6089a53a07f19afc1f32f6491201c964430640256a526ce9155d4766", - "publicInputsHash": "0x12f4fc1761991304cfc810bfa9d4a2928b1a536c5ba2f0f6f943f16ed8163312", + "archive": "0x01a7192428c21e1c55be4d35e253b2f30a48c4d7fdb3f4048d208986707b7906", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "decodedHeader": { + "bodyHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "globalVariables": { + "blockNumber": 2, + "chainId": 31337, + "timestamp": 1705501940, + "version": 1 + }, + "lastArchive": { + "nextAvailableLeafIndex": 2, + "root": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11" + }, + "stateReference": { + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 32, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, + "partialStateReference": { + "contractTree": { + "nextAvailableLeafIndex": 8, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 512, + "root": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 640, + "root": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 160, + "root": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + } + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7e4f41864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000659eb26916642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000101a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee110000000216642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000201edec46da82748ab9159023272fe1c3d4a5533cd7f2bfb4aea950670ac42c7c900000003000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", - "timestamp": 1704899177 + "publicInputsHash": "0x0730fec86325dbb2c6cb108f50628cf32f22f526411f8ef8e48fd8be5f43f536" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index 50ff83dd3ac..b9e7aea554e 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -52,13 +52,48 @@ ] }, "block": { - "blockNumber": 1, - "startStateHash": "0xc738d05d59876de0510b4270011e7f52341083568b9bafef2324af4d12eca533", - "endStateHash": "0xed09b43d862f8628640ddc03012c80962c0bab9bf63c4962b7b1ef80e80db89e", - "publicInputsHash": "0x0dc5c55cd235083803f33a86381f9c1552213c0cb89d33d8fd35d9f1b617788f", - "calldataHash": "0x094b6884a31f1505b1f60a4f96a44b60b24647d3edcf532b4a30c242eb75a894", + "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090083367367613e6307621401e0b943e65d00d94f7edba399d403da5d93b1a260922e76adec1b929ab590c851320486c68244084a7f9ea21e5ece1e5dfe99ed6069d12051b95f1210b468eb7a029d2b437107a5a246cc1ba5c8f590f4db407e035a353dc7913b80b52296e05af286de4e002586c55a0c4914e946268a214e0caa1f040bd17a9a93471faffd36dc9835a0e00000090ead4b0c12eaa3254338bbcb40631f1f09b696da71b404cbf7415a1ee3b767d9943920b1dc8deeafa855a44f74bc38c4a74537b01cbb09f8612e4256575c2931a98ec9fcc5892ec9da59eb4807ad5fc0613222acb0c141fe55ec8bca4afdef1de719ac262d7ffea40a4d8d5bfe4ca69c10f624cd3f2f922fd8f5a10a7f212bec0c876327251624bfd7d777ac8884b62ee000000908cd0590d2d18f1214ff5b03b6a1d4cfebfd3e463e1b8e98b81fef46a5ba1b0204686f7c57a65f0bc5ce8bbdfc658c1f6bf4e52b5494ea72f193706883d6f1e5949ecd47315b3e2d1e75208e1c1ac3ba2079c257743ca4a9a4fc96389cd96ec0116a35814f15543843d383818637698392b5d5c5e3851162f2f53df7777c1c45c48b8899ac511d2a97c4faa87b25d98c8000001bc000000903ef97e0c57a6f5834dd84e80e8140c989a97a42ceee35be251dbf29ca3b9f1d4ec53f628312fb024fb1fabf2fdae3c222cc6f52957adaf9197fc22aa824e9afd66b58f53765e2edfcaa1e09bea5d09822c7d1ab1c0cdcbc2839c0ddd4eec2435989bf25e9f105380068b77674cd555da0d171b7673337a53fc13bd94d037cb898889a1690494f98997d6ad6f7cc9395000000090a66537d78ef99d64dcbbc8ac804c985b57d0a15f66dc4e0718252c967ba90161684073a50b2de36c358c3b2d7695af8128ae6fa3b5de2ba491f0f33c4b79256ae780a6b2fa2b8985fcaf46f51b0fe08c1f0be001e5faf07671f50d5d3f3cce0a2b14d8e600356c2190c919f7d5e95826223e80c90c4a715ab25286ec0a8d7fa958a0921ea9df290fb3bd39d9bd779abd000000903b40d81778940a1fbf4b631c6ca7f3f36db907262f5b7c9dbf7ed4677be6b459fd5aa18aa47d58a769fbc70cefd0a14d95d33dc980cff26b234154eaa53ba2e3a301af3d81881091d9c478670d47d98e2b6d37e7a5f4c5fe019363217b64d95782a5619e4eb81582b1798faa5764b58405bed270e597925e8e6b29101e97594231cd55747be6725f19e7faa830aa719b000001bc000000903cabd8fd2d8cc1b863fd474708974e9a086456a8c87bb553bc3b2249a6e6d35cea1bd6cefe1469e8d0505d496da0ba43fa23d5f95c1c9ceacee8d86bc37408bf788a77cd803aee3e8e9ca6be0d5c94f228565b5fe9635fdaf5cb935db1c32ba2eb22e34967322d150bbbd7418be5b47d0214392be8237a660118ab42a43436e5ee08e251d72da69b1e79b1682ec7dc110000009073b2ff420af305f8d6e8877c931a27e634e0e02ad27bd07a221ad29898bd955d5110432c2d520e3e608d73f71db60a877a0cdac7023fe16e14894242fc69a6630ad88e96ed3d9d9076850ea7f2da60302a5103978eb03a24aeaa3ea100b61250b98b8430a42fa3b40d9835841dd01a160597bfd46679cb40dc21fe48f5bfd0d457b4d857ffa793eb3931b23b5a5575e000000090cae03a08acbe94f7daa500858bac74ee45668f7d8b8699c05d15b6c8e3a7cb8e68caa3b92fca659e8b2ff5e0a459d10de2d9faf8d23e5e7e52e7bb3ce821a8d1b23eb3e68b93f2792385210f1c7900e910f6892d878b639348529c87faa00be2522c1084fb1f660ade21c84b7193003e0742f05a45a89b327fad6d6d8c8c8d6d77a0721e688149b63867f7930eba8342000001bc000000909a9712eb2ca308f32883b79151fca031a8e418d19df5dd397ca5ea709cefe8a36855686415423dc2afa0115c7987cce0d69612d7b485e7350a63b4d83f9e2f227e0422dcc23e1f2322b8df45ec7a8853147f0a8ea06fea5cdab7b07659ee18c036b4decfcb5be193e05fda85b194f10f1725eb65e156b30c5a39806822af3fe584cf9d541723131a22a23d1400ec9df9000000901cc8c637db22248cb9ed2e7ed8b7818f01b2af67c16ec9d9808bfcdf8b3bd4e8e750f54a84f646cad8f17eabc164de05f97fd66eee2495a419762ce946f40feb5f703bf8a5f1df0c2f4ba03f641b79160b234176a75d19d6e8a48b4ddd7e03c1289b3ec09a79220ee291370d2113bdc504924683165fc5d275305e79c7cd7a99a36537b9cc94befe1a2373b55e3460f600000090b8bd36129be0f622298f580af1ce6cd694052bda2e07761d1260b253b9b58206071b8329586dee5c5acbeeb94eb02a3753ea4c9614f7f9b9a6345451df3e7fae190b6c494514aed8c7fb7af6145072ae192a9f383c5d48e6cdcad12db87adbace3e736819ce046fda81bbad9b08c0946070798e6b179878937fcd611638e83637ee32c0260e48e372d621c3424b0c66f000001bc00000090c1e5c80e7841d56f2fdc2e22252561986ac0bde8583467b7b7cee85533dd4e82db0023a4aa1280e62e82f1208c465d378c09fe6f571a5d6f540ce1575db5a430eea826342e1b3eb17edaeaba692b3b3c1a9b142508381f48759935787a260b1360cbeb6a3d6f84faf868faaabe86f9831cb84a0def9afcae01d13019e2f20fb0d7fd57755bf8cf337ebd61c5d8e2e2d1000000908e7f1fd37c67d43076831de6f05532cff7fdfb2e2f57e1a3a51bcd9192a40bed6bfaa130ce8cc5d174a14e78f3f269baf7afc9a54b07e71f87d9fade5b0b2c8bd1973b0660b2c0ea5c1323fce5b40eba1fffb76ec613395d3a59e1588c5ebd8fb0f6ab9758df61d991c68b94ea2374a120a570858b479f0603c36e2b9d71bf2e85275fb3bdfb8919ad81f34d106fff6500000090110542aebfe9f65c67402024cb573c20c15d4835724350ba9c4389777e540ed6046da159569ee140da387a7628e7bd71359b470625cfd22a2ef99b2bc9e3dbb60f92b901a1bd8cc7dd325010cd83dd2d2704a4a0e660466faac7a416bce77d91c55b9d2ecb1f8d9d9c627832be30f4312bf94f8a074a7f94a363430d73571d5436dd9ea9bb13d907965b62686edbc8c0000001bc00000090b1b087d7329b0e3a4eb671fde2368893708b601576f3229943a86385ce556707b1f3838287448c58240ce1053b0fc102928723780612640d14a06993d3cef135803ca465102ba0ce7b0180c1a2a5f86e167c4a9c29f4a1783f93e36e5da3246f2117272dd6ff9a2388c6e78bc68e79951b3b844bd1c9a08ee529a5d851df7571c8698b37674d4bdbebf416422b5b1b5d00000090adf29bb0ad8c624adc804c04eea5fcb04d0d9e1b1eb3dc13f09adf0af446ee7d63f60f79423311a40926cf93f4652f306ff72b0e1fdfb0fd2f9d40a278eb076fd4dcbdc2455eff29f08388609213113e17e430c2a54f0d542b2ed1e8bb4b3a66d1bd8dec420e19feba9c40a94d2fabec22e9e452ff8e1e062f4f6b3d71a71798edef1aabd9bc34cdfc86d357bfbc03300000009046114b8c401cb7a062546f00d9506462e8c59a34cbadbedee505f9964f0c00f91e76f232fb6d1fd6b23ac668095ffa7cbbe69eec9a1683483d117a18bd478c50d95cf7db543b69b47398a9d882cc043a2ce5032191bcb02027b0e1a588c0a78d89a09b56337027f328a9f37dac01b66d1d4f45d56e66a2d8909cd8907d5f538ea8be3e635885bd5cc5e018bead3c16f4000001bc00000090174d1d04ca93c9ca135a32a723bb8967a20200bbb988465a446ff902b77675377c405ef506bb6a52daa0caa3b92333d2d9ccf16c130455e0499af88f64ffa855fe93d68d285f3aa916a96e92f33dda572b67c99a667585f74f8cbed06a7baf5aa1891caaee8594d5ac241331a4a12db61d59c1418591a4b8e553d37f38ea41dd4f3af725857dd679a9ce2540a608b17600000090d51e3b5514ee11b26f48094e98382d9552ec78b1eb2a9ac3bf24c87050f31350bf027db86146b05b78fa04582e8e0f943cb18005e9bef42f5a26b27ac45ec5c186170367d36d64a1a15ae4ac30f960112934d6f501914dc3f8fe2081ac4a8be04649a8a23b1ce48a2e1e80d58ce1b67114fcc3214860532b0873915328c140ad663ea2a4c69225afe369c736ef6731df000000901a0614eebea2300dcd77bff3171ac89dbf10245ab35b0f66a6fbea6af09024d465895f491da812ce7b116ba1be3590d1b6ebb2650444187876eb87f9acae4344a12c9f26fef7b619512a82cc5e87392627172f181e622b76ad3c6eac337fbdaade012e6ce8ab235e9d7c457503f216961890422725c67cd84b0319edfefd35dd60d9d88a0c52cd76508cc077bf65c425000001bc0000009020daeae685b4a7d525fa9e7322887a1da77d1379c01593d06367e695e044247a30bc981149f091016a4fd7b65016c2d4dfb8d9356cd33cd741c1df7f139acddbdc94573f89a76f4f2884436d22eb69361a5f09304639dcb02feb179b2f1128f7336824922f4639d03a1227a7a60f55512d03ec183fa21321d4fa61963ba2c2e191d37f25e88eed06291961c155656641000000907745a1f472feba9a29b326cb944fe0478c26c54b6423025ebf12a03925bb30d949f46c0c6fa5ee8c58d86ee0d210f0c397bbd41fc5b1cf46147fbed121631e3dee48473eb6ea01ff20cbeac67c5489f10ce126c6c4e735d5c40e16f674941015e0ae8d94f896ae0d4cd703ec8d2a9b0f105422e72324726e8277939f7f59d1b4a77f17de58303017608e60747567da6e0000009019216981b066c88ed0b3b6f2df84132b0d272d72597ef14bb385b81685909118c95d3d92a73f4ba6af2dcec7c94ccd6ab630209146343d808060fed0df2efd837f54cb06c78bf253fa1b8b8a5d4d7a902218c7234feec00a4e7b214b06a598b4caa2649745402606220865f338d0db2408404192c99dcc6a7c2c06a4e10ac8c625e008aac57d9426770dc24a2c1d20cb00000e00000001bc0000009082d76487e6d930f670dd8294a3ff896e675b59871ddad13511d9452de5b45ffb84f14b9b13c30aa0a0e7a2e6c9104db67fabfefeb577d70b31b3c815903784d22857c61d6fdfb68b8ffb698d19b8b2573005f3cc1d8fc31d65e44e50ab9e5215e3afaac2f83077deea42491ceeb354be10fb78ba40256771f5bc72402ac5d4b95714b5cf2648c85e3e10ae89b7b9f90000000090bb455f351a243a89123ce2b0a85fc2b0d711f7cc0f2292d0d2a1244429b2c3a982fb23fcd8deddfca3feb7ff27f394eb53b99309a1c510314edfdc9df4c2fc3db95ea67739c2ebee9989354c7252b6271b6ca0c3f3fd42e89c43684e31a94631dd0c57d049f8447cea033c05ac25cd021cab485baf707fcbcabb7210161ed846e3ba40efa3fb4cbe746a1d5b446cc7be000000904a9c85c97e0d4c935ebc0fda0fd70e4fe7ba903bfe904e6b71be94b512c7d61c05945d369e0a354935013d1840c07e272f4f967e9da05693169c04a01d9c677b30e2c399e57415cd33f4703be42ce44d093d5355d2f3cd6545583eb4b716865564986ec13253b5d93bc537a0d8aef806031481898708631063bfbd047cc701e354bff464bbd7d936bb53e73f234f8a00000001bc0000009014068b8ada80fa69e69589488779f7c44a6996e8ac9b6d6a317eb1693f1d4e094e11b24717028489585be7ab499453c89138fadaf6ab6f0f571dfaff11355fb748cf3d829b36c5b972c698d2bca1d7c02b9acc9c15ff9e5666d7b37e627e590a4d8f1bb24109c7b44936ef647a72b4921b2fa2bfaf9714a3e51999d1e590dfc46ead80c91cebe32784ab654874f9ccb200000090139f1dd54b92b5547d2c96e6018cfc3db4cd7859058e4d041123221c165a25ee3bc757ebc93503777b5d42f01eae0869fca95ee005728e2613bc7c94d734bb49a1c349a8815b3f4161ade33090ac86b12431f06f0dde369efdbda3de50c7ba09a345e652984fe5bc561a96e4a9f53997163bd7f642a409dad474891b58100829aa3663d048dc8cac3598e9525044266c00000090cf0c8c78576cd3295e717b4e5f05a419b3b005ec6731ee5c9d2bf97aac15c9ad3e3d2a56da176bf638374539c02ab70fd4db47cf3d89747cc938490aca465a78421b773c7459e71210c785c9a5811cde2ad310b81aba16885cb3b5e0d976536f92dca42cd55128833f6488e8094141150ba86c4bd92381553af54a040a82e41ea12c9549f51975d49db10fdbed1e6b92000001bc00000090869ad8cac952854ed14124129718d6e67d0aef1434bc70a6f523c781db164fdeaf9ef954b4b994923752445d704b459614eb332b76cb1f4401ad3d9a92773640236b9c96bd671fd81e3ac76cddc49e5727524cc35190286d82784dafa03e4f5690d6ddb5bcd7de9cd0429b924959c327049ff8df11b688432454877b5300f2ccb1d2c4166845b4bfdbb1e8015088985c00000090764b4562eda203759b8b174aebe4238efa1cf2a3ec1768ef3ef7d929a31eda380ae130c452455f036b34ecffab440be6e961241c12d24fcf15ba47756302ae12270ca1cb3c6e2a23d21c280fba5bb5c20a89a3deb175ddc55662a85f0941034841b81e9573af1355bfb08f161c4a886209dde8bfc2be93463163c57f7fbf92d7817304992ec94aedfcd43c744db0f66700000090435820bd150fc3779fccdb6cacac156f434bc441728b17ae0eb9fb9bbadb141cd24f050f1a5311375c82114434ee817c375195e929d4411ac94b0e5f7022e2a09e37b8dade0019025709e19cc035a3100266e6e0900c661e8db4e2e70ab508242eb478fc07f5f0e9983d1c3aedcb5431055c9543450fe8915345472673b7afc4f61e856770030f0a00c3587d3400e4c5000001bc000000905cd2b1954b0b81b07042b62e868d1f803fa824c21c24f9ff64b38a74c6e023aab51893ed2f1919cdfdfef53c741bd7a3d97d4cfaff2bf9a4776a18ecf5c94972aff3b1373ba6fc9ab6855ac00a49584f15c065b44f611fcfe69a1a06e1b2e833e8a8ab6f2f3febde83a3f02e263c266b00062b01f9222887fce55e9c2f5e35f024e566da0f0edeebf252f5a6aa30e28300000090077def0c3f50b0b47c9eb48a6b9708044029c535f4b742f75df046315c8b526751863017e899cad6696ecbe1fb3fefb7490af911029372b3a5dd8e04ecc073264d1ae633b48619177d4b1db17ddb7ebc016982aceb8e234406b2609f32c96088b591224ecd84ac0b49eb013bff1d8d5b291f671a1d584d9a5fc1fc86c27358cc1e63a52bf6e2e3087ba362b90a8a092a000000907b5ad8c10d405a4b6d0dc2bceefc087363be47cc13fe5b70d847ece64c9b8fa6c9d2e2d87f0d3452f6be6e1b5195088a732c38f1c127b18ef1c3888e6dda60fe73d4701f6763e764b0fc9bc984c9ec3a1f30df8ce2d7da272b7a20478311e5cdb3d3e2cf782ccfc8fe24c004decb2a7426e6d5cf19e5721f943de5c6f775c7e3a3257ce201bad3a1e279c18e56a0c23c000001bc00000090758e63051bbb20bfa45a1d6f0cba49e3d77c527acc4c969b17681b95330155439f1461314934ed0a76e838cbe30c38ff040dd1b5c786649b5a517ee3fd2cf0526aaa05c171d6fcdd75625d816836abd50f9d14c4b76b00a4e4ec57f3d934d31ed81ef8796c250614fafef5e5110d4b3210bbd4ca38ef2d2a82d835c158e7b419282a6139393e4bd502799986a28f216600000090f0822b26f5f8593d654f9377df02f4d66fc3109e08c6972cd2d0b9a4502361768fc07cd12c3f7d9e01237a31e7eae18227f1330fbff7f21ab933d81787818fe2bb8c1c79aeed32572534bad3a38aa22e12b85f9e9561af15d644b48f3ba832886868a01ccbc1298bd746adc9f213bd0d29ca03ea706ebd3cd5265fcc4d06491974320235bbc43d71208378f376b4fec400000090ab54fe26c2aea2182626d92a98a27670005516c8043202d1802da90008c2cbd61b9d0196b091be8d8605189bbbc5539dcbc4624f4058cb1404091a0437c1870eb160b02a3e57857e850a1c28e34555e21bd4f7fe7cdecb230dd935647c8c3d446b57e65d7f67b2b208953ef2367734380a15526b29102a6aa922a3525d471403a51ac6eb08e1fdfd8679549128879a69000001bc000000905cc031b130a4e6e45e8ce9d099c29f465014f2bc45a18f4dcf79f0ddcfc715db888f9975780c5a716611e8f25b66fb2f9a7a312a4953b9c1f2d3b63f38c5d5c8353de7033cf40b691310617c130142542f59730adba1d58ba4a553df2a009de247673bbbdbd72182e094ae020b503cac044fca8434a01a10648174a643a28b7105c34b2e7e55115b1c63960cb0a79800000000901de3bfad3720f2c15f008e4a346d27ac6812c0af159d93142eef63722a1451bd0bc02c635ccb07d4fdaa341922ebb11628a53fac21606763dfbb7f42448a042973009752036499cf913554f3e7ff82bb0bc082e28ef31fb2ff685c7a6bfeff67e5863ab2aeaf0a5e62f95e36c42a50b70817798e1089cd140dc0a6c817a9c4294925e8cf6af4977fef8a27bfe3774e74000000909d3eb8dda8a7ca6c61442bb4314d7bdd4be33ff477a9cee2db9373648e3d45a3f19ecf8e875caa25358b24db34795ebbd20481ee4eba712572ee7b88d8b345b0c9b6f7795ebcc246c601aad9eea60ceb131b7cbd50c6abccf73ce8dc958b52230df1916828896785b5f9f2a4b994fc0b20b752bc028fd96f880ff96d0239dca3f27c2790a1efb3748db4beecbe9ecf40000001bc00000090abb3bd5e78230fbbdef5e44ff963d2ee5bb5481807d8ab24468db6c0b34afe6191a513d9fd3ce22327464d7d8f1df5d5f1d28a8c8dea8b121aceb6bb693b4b7c92f626038d83f7c850f8e24ca8f2baa30f728e519ff0afcfe0142b8b6c0a26853fbb3ed9a852b5ab5ba7c5ffc0fe2d210c595d34d74ca38dd455f4264e64c9a5bf10fd8fb6d04ea46f7c0fafa6fb726600000090c6058b3d921006949f8ea3925de7a5272a5d0f8b9623ff4d648896e377da63ce69d0107a9c9d5e6cf286859699e32997120d4365e8cad02ce48de0b7a6e1036bf7488f54a2e7ff4cb1c8f904725f03342891db41bb8bee35200212f942c1e2d891b112c9e356328e68101c24c255ab4a1ddfe14afa6679960eda155b3f4e748fba771b4cd4cfec51b13ab41a01441be800000090407a6f231eebc95b1fb372695287319677ad9c009c273b06c3bf083d312b38a478d64ba7502b00644d1300362d7b102b6361f4e79b42e100ca70226c16da7a3d8651cb4c6a5810b137e439496c6b88d00963eaba8e28200569e81317825b7680479af46afc14cc4835dcfd5f1bd1f1ce095018666da971e6824e9c161135939f8260f4869cfcb42321b5952a97845894000001bc000000902a2093271e5d9e426ca48258777ea1c9d9f4d529e8f66f017ab2f7606fe17873efaab862e6cdfe6bdb06b568546371bd19cc9deda883327fc3bb47b5051c564924b2324633d7d354922fc46b8d88fa9711d7d02d5026e036a46a8e15842b0000cf357fe04e93407514976c6e24fc77381537bb76946a6f83207d426683daf202a0dc88370208c44c039b9223a27ed54d00000090f3af40d79ef111be5c885f6e4ce6a5f39aab3dba6721b387f7c0e7ec51f04e0c52219bafe83d29ef4977936827f17ea5c7db377184f3c07f0964e02bea83b1bd4b5aed48e755b48c46aabb0e802e431f0dd313d1c7f55d62d6996e3865770291774110087ef643ad13ee2b0fc80ee30f29ba6c2563a69f4c62e092346f03b20dac17b845455065432cb0f86f4e8fed4d00000090e2feb74514cbc15cbbd4960c3c31c2c8b89f658742235547af39388a2dd4d1b8383cc3a59bfec0ae7416275726dbc85967b1bd89eb45167b0a983558f057c5b6cd12d793661c9763c4aee5f086523d951413571b25824c9dc659ee1dd0390a717306a72fd4372d07bc9bf00fe6a092fb2175106fb6df9581444b794fd86dcffe7b79b82256bf3ced5f46ed9391431f7b00000e00000001bc00000090d25e818b83b533e096a3defeb73fadfba836517df1b920df53e966d82e384cd71fcba7799a3eb1b3e89eee9d99983b3eee97a525e8ed6722ab1113178d97cbef9b71de73a4db75571bb8a0750d1379ab2b674cd571fa1cffdba43f4c3c087dccf894f758be2877070da819381290f7dc0b3fb34c35fe2dc4ac82a9b758d764bfd171578ff07f263de4bf0668fb99faa000000090c910ad0b7cb33399478c81403d65f247bd70bc2de4cd1a400cb789a080a5814050ca36bcda892be9191fe589893aa3cf769c45d17dc9bb2ae20c6c6e8ad4410be0b47c87a4ae9a4d254d6c9454bd39f80acc01d59dcb13bade04106012e4364de822e00028f194bc9445e678b5051d02001ea661773999576ecf326e520e9490f79cafadd121c7de3486ce095923b21300000090ee0f1163ee24e3082804800407605a7ff98a7e3fff5eb530931ca1c29bb90a2127e46c103ed2ba423f55819d97e3b8b7ae7c98b9246c3fa0edcee4f7f4dc752c7861629d7bfaed003b609edfa779b8c80dffadec2e3a8e1fb967d32760a160bec97c15c640303316887a3f4fc927cdc90129f6f2658826ab3281a930ab23726a41699ef2a9b9ada3616f9a09e330e43f000001bc00000090c162bc6a922d0a9677d94e12ef9d0fe3f23f904c40a302ae96691c70abda3f4bad695623640fee23a35e536ddeca6a424c4a910ab4f06566ab833e65b2a56567b118f2dba34dc1639d242349e1e26ebb008681d4393efc63b2fc03a5c9c349740248057f2e7e2954e143baf97d7fc28d2414463f0ccda16435554fc0b96ddec693f64631f8de020a860e823c03e4a95f000000901a4c06bc51205497c73afc915e848da896ccb3e5ba6d0a01e22ab7e90d7ec9e359b99944e6cef34eb776a36f8bfc89a937c00dda7aa3292e877bd2b0949055f224c995a4e3f36c21da9d5336d43b43d512e2fe707d0597dcb3f61dcbe5ace1856adb5735905df6290a1e97e7b3f56f68160afa94767c419399635df90ac7630be9ca9f2be7a08d47a796433e2fe69d0500000090e971760c54c672a7b46b18e36bb1f53e4458e05f8e8e831775a41da37fdc11b57ffe7a5b1cca585f1af6ee11ae31927aaa30305976134acc7686b180bc94f0669ac4536c2f1bd42e988fe2ab15206e411ab8eaf7bd290eedd0aa07d3a96c31f6f59a43e73a17ec768a58765db5cfb4e21a0b1c6ccbc23701ac6fe4e5bade56d8d185c19055e290f091bb8a83d7a103d0000001bc0000009064d04bc457031d3da99682e91f14951b019cee11f426459c1e0bd3a6cb760ad8f6990029ddc57c255ebf32f0b66a9b4861702c4d62af67177a3ce64185a938d80a000ac15fcf090ac0d353635b3b69700e88eae07b1cf387db29491ea0b26bdfddfe728e5742b16707cb9c3cecd374230ade489c5f5714a04fb6077eb065322cba1029c6cba5d519931cc6869b2a613a00000090607f54712a73cf264d806c1db0440bc36dfcdf33a637efbfa41ce7a184e1837cccb43a5ac09872684f960448c6176eb614f0b9332e71d654edcb400dfd823e026abecdd096e445294510c7ffa77e52b21063632c55f7b907fd2dad33e1008f18c18fea3240507d4438e52a59f873a50e0e6840de615959b9dfe9228457bf09db81b97714d1b9e378e23b16179a7aaffb000000905713c015fab8d31dfb3cce41c788026931fe246f12b4c6c52c039006225596edf9ae9e3f9ecb3ae1462c12b431c7451437de202ceaf85cd58749077fed1d2a1dd41aa4a8072e304084c64dd8f04033f7173882fbcf5dd1ed380f3a0b6cc2ae99c7e1ed3d3bc625e9f881678a77cef7762cf6029df8ac6d0ad629c871e7b2a5cbae474c1e3ec458f61a982a3ed305b4c0000001bc00000090c74e13893e14c051d1c4b0e63d962d6790b8d5b3221254396ce134865a88d2a78ab9462e03635c6f12246dda72a5daffd7e47302b4da183fffb6c6e416edf2d45759e90bea5d320dbf3848a2ddb921c20109c2c82f61d2d57d00d9e6b63d5d6f6191a71492d121ce32fabb01f1892e061403e7c92390f2f321d582fb543b6252fbd6bcd4c81fe99f6970a6bd2219b11e00000090f465624b9784a4a376a2bd668f0654e08538e17bcdd05dfd97f4a1e20541dcb5bcdc377794d0fa79d6a2e1734f1271dd6294473ac6396c21f93be03196931cf71fd9c6e2910465b909c91f14437e9bc92586d6a20aa42e5b0e2bfdb3a9dc831ed60f0901977a7a572bf9719164bf265616a1ef37492fa6624392a171f816c33cf8a6516f966f3efe7cb1b343dd4828f3000000908f18852bed214009ed57daf66d3d85ea2eadb39cb1fb37ce940841774fe966a3ea108b0d39c66bb821186fcb321582e69bdfe18e4a36fb684635060a0992dde083c2b0848a99af0c12421c13bb23a8c401092f5a8571708d7096255112c28c544f33e9dac7234da2cd1e84d6f632134e101487ba4bbfe2556902c61e2a569409e749997aba4b89e8fd7af8285e556bf9000001bc0000009011239b4be51760bd69b2219fb45593d6fc0fcb5559b9fe6ec804297b700a677591419ea725d3f521630ad34909b40eb7774927b6b7a5be63c95cac83c04100f07355ac23aa1dd18add27e82fb9abc8412f8b8117f97f579fd48fe738ffb520ab784e721a28b16acd13d9899f9fe9140c29b379f0b1e8f4f632f3b8ed59adea573af784e12d894cd8343d8a527547d744000000905ad7963a5a5863511f5bc0734bf79941f50f2c71cd0082bd957649599719396cb7ed0f6e63ed1b18f541ddcac71ca4e6d4fd1a802acadea6772e76fadc323f7a74c710bcfbd26fa6ef55f6b17d8a187f034e8b77a4ef4467264ae76ee333bd8d3c2de0de95b7a837dd5efde225c3892e2cfdb16f38a7b6430f047a1a3d14a1b25345dcb3b5470676a8eb6b719b555cb000000090f8e203401a6080ec384e8eda1d3f804aeca07981eba58134ed2cff57729e418586df1fa8efa3096d090a219ae521491c878c4247b0ad36c6c11b3d424b2aede8b97b27bbf497c86b2b93239793aac9d61a9c91fdd02a53fdf50cb8a6352f54fa2cf7024b6cc68d57fee4b95fd8e8d15c276a66b4c0111673dc1bb105ab2ca5813cfc9ead215177cdc3d78731b101a39a000001bc000000907427eefc8c32594e8c7a42ab96bb1fe860ea78fb6146bc1d2a73a1e8ff9c6991acc4d9a463ef73ff781c61368fb7aae00631940143d0d53203189392d82b26a576728336a42fe55bafc656d729212b9d07efaaf20bad1e66200b7b80b29c094c858128ea68f3ab9d3885a207417ac1700a223c722d62b480ad3d1793f05579691edabd5f0d873104b257245ee9083c870000009036f06594a53af8ffd4c69460aa230c8f42cfc808e661b74954492215d41af00a7904d4b103347162c8e73762f27bc659fbcdfb35dafd2ecb3d1adae51091de4f455b086b8239ee229c60fdff690df1620d2aaf0f30c9975c519119112bbefadc8123c10f6b1a9c49c4debb0bd7df203114490acdf70dd8dd6f8583dfd250e869a3035549607fc847b663de3b0aeabd8400000090bd0c1f7e5dab2d0cfa161cc54823cfd5f67bae6dc39ad643a094f7172768f234c760fa9d1610c894d255eb0c773abfc023a46b2a8c8eb1f889bf14303c184e065430426e862b1cc1147d2d12cca898f9100dc0c65470adccc7810f657ee6958c952c9a9df0630d717d0281e7a94d4a4b156fe400fbb4fb617ad65dea278490af66f573cb1f720c1ad6f131dc61db2c03000001bc00000090e668492f7d870f241143adc81620eb1174ea8cce9e28ae6e14f1b26864eb39fc4bb4870a0e53b9d244a0743c8ba9d7c8b7399293c41d3b4b6f5ccf0500b2d328ea2e95147f22c1e2477b547d4fb60951140f90f1987a319217467ab516b7b125b4a8cdcc414527263686e37fda2c2dd92c9eb14fe690ab3846f47f6c5558d4ef7ff71e65a1fca7d93b14868c7ef7decb000000909602d909cb30ba815ad08cedb8e5384092dcdacc76dffd3913f78076539cb24c63bd541d0365c94d523a3b999a8a22719719537dd7b5db9e2f9fc4f0a0eec725be2d0e3fbf03a27c9843eb7d43b376bc03f00892cd118a31db431634c3c88bf2af5d33021a2ae9f4f22350398900bbd30841f4f269178d18bf284f8400da53abffa6ef966954397133b84a7e4c4f60900000009044c029f4795c4eee24224ad795237e3e09e2a8ea64e27f5bdbcdbf32883355a5956a96a7f72bc092991dc90d1edbbeee20aee7a1eafeb032627dfee5cdfd9cd0443bb21ea956927600ee6f7e3451c962013baa93ea18c786700354bec36b38343c9bb35dd239dc06466f515b0470c5811d3616246a801b6f2963b965625d955fc87a3d9fb4ed8e1552b38e1aee41b8db000001bc000000900b3bc15271008bd69ba48695c6e6a808a21cd66b6eb861453158751d9eab45b78a1b8f11ab3c5d989ee68b8f3e1f51e1da4f19e3546341ba88d19665da99d06c618d0ef988f558e281a3c97c6c04bde50479198ec6735b58f738a2cab5f45950b770cb5f9d34ea4099872464ff342fea2865375e7e7bbbe5acd490670b759f74d4c66304543a5d0621bd345dd6b9a09b000000906450d9162ac8175e4061c9266bba9ab6593b92b04b863aa0a08c08be535ddf2993e2d2b541701b62f79954e26e9b832aa246566e55e3ee6b1af856484d659c4ea486f0ccf6cf564260fe2bcd2a6a804d2e49472e9871afe13083a141b541dfd434904556033db3806322f7bd5aa3cc5b1a4dc9311ea57e048418d1c36a8fb231bd9821303d29d30a29cc0389d5474ea60000009022988ca796fc0b91f78b4f4535869997b9017a5d6bb9bab63ec708ec270ec6afae9799c358f478dca2b537239a35e9f78aa260e764beb9d361592a5df720dac67916fd799e37bb36d93e0699df5b07b808dccab7c57bceb538a337bcc68cc8b536f2f8b50566acada0b67ea7eb632d54165bf73805460e1b5bb24200bea8ed8dc15f308b233678f053180ca8bc9996bd00000e00000001bc000000904fc89fc6be0e30f05d6f9f1f86ced7feaf57415a3edd0e487c271d504e0a6d10eaea3c02c5733ba7556e33dc3adc695899a576ae2aa5579d41bfd701f91a479cd72e191d26b55bf6fbb032e3b33bc4842a0aa44cebdefaa8579aff992dc220a3a0a32f84f1ef0f3cbe62b37f413ff8441b4e857d847d8560416e3c8394f9969ae23d8b82e3f86ad33359f5f425f5c7ac00000090a37467afea6c4cc97ee51691ef457d7492c7ed5a24502da13c29ef84ec446b88a3c7bd5e6fc66804208adb01299dbe84a9a1b6cbd17bef87fbd0fe0e1808f7e919dd9703e551951b52ca192d9cffff3317a33dc570b5e04f5aba1d43b2e1997ac5f000e28213956be344a50c4c2990d81197a51d8df67a8c9014672c8efaa8507e8d790953cc222a530daf446fd8c94d00000090ed2da66258960faee567fca3f48339c58fc1849f9ed6084a338ad10c69a03b3d5c8528b56dcb54ad2ff53b9e8de77c73d5278ba02a607d8687b94b439b705f798a8f5af5826be2768623bfbaa53fc330046cd30f364e74e2e1afca74a76e4958172cd3f48806044001939affd2cf387f2d21abaa6b077c4818bfe38178995c90021b3861963ce32c34441ab0c2711d53000001bc000000905778f813c2556620961d546a7fdf739f69a15c0f3d27e12a640b7b8e2450ba0c27bffa2ec747b18a73dec69e8fcdf2847b9536fbf843e13a3f2bc495b3f4e036a1f6e52d7d5de6ed92990db981383d792cd6ec169d75d02d70e427aded56ac741223ff81866f4cc71ff0dbe79189d42c108e7e77f8c6845752e5f92e3dfe9b0142c1bc367b7fc03849e74b4169034bfc000000902053096a3ac009b9625b26d351821fe95f33c92111c691e9f526b5441e63a51a7a56bc43a07d6a8d411968ce7f8cbd7071b4392cb5b8a578172dce794ba5022d0eb31706de647545e373f6ee847c0c1c1c542de88666b01e90f664188ca9aadb0d26958d6071b96488ee11ef7c4756b3223d713a0c0e006f4f7c4c5c90c648666f962e245b7c6bc249193cb6af0bb95f00000090d70e906e51410fa1baa9d2b96e43f8a3b88e3571595cd86413376e1b70eab33d3b6b4a2b37842c653e6a7f40d811eee11ee842a0417f0d1f98e2dfee81d9b0fb9ccd0d94c96c09c419e9485012d8e20c0c6a123eb6e1664a2fe3357bdd09b53bf71102b0014877ec5290018d9b3291ab14fe9217b28dad3f0a5ba42aba7001225de17a38be745d4dfee261d3fd70be02000001bc000000901a8a8b3a10b4ef755a584850b202ae137405e8b021d75f806e660d9f747f2ff22cf6e45472b475d431829838c2b28e59361b4c98efb3180cfb7bb9fe638fbef23531160fa1946aef0d243ddfdf8fd66105e05bc9bdccd6fa6e5abba6fbb161859a073bc4eb89dd1f89b7a9879f1bf60a08a4d3be53e4bab4a27bf94e67ef11eea454177537748f0dc2d0029a09cfce9a00000090458256074deb2432ebccca8774904b3d1f2ee4624ae1eb16b0650324c6e055247a0b7630c353507cd8778c19a74981019d8f07f700aa03cff73ffb9bbe2579ecfaf28a8b457c8ddd0dcb7cb821d2bc6b1f8c99301801c3cca6cce6c27d9b451fef4f66221f6fa7c97e53d41e09e2680228643905b2ef882a09f0b77ce6e15bb898ad015b4f7ca5798b11ecb5be57d81a000000901bd4801913d9124efe31cad632fa74842d90821b2fe9f8fec40586e634d8bfdd3b8bac35675795d5adba61418295439168e7df438eb9ef80cc0f394b49e3297c8b4763fb0e7fc473fbf48a8a58e580021c8857152729f39dcf184443da12567a8ebc9b08030d1b9bf19275d6dec49ad71e75202c608f21a387d18f20c5f97572ac8905d1cb373088ce1175b144fbbff7000001bc00000090cc857f9a85db1c472f109527d0abdf1eff9bcf0e020763f0f6dfcb45dfd089ee1a588e1625c0938210a0947cdf78e983dc0c76f58dbba18245df17d4139802530fbd43cdff064d771c411328ed27f6b314b5f0df2516820e61532d5752fee09a6a46d2dc6d851eebacb495e7522de8b2203583f680d03c44ec9b37ea8ce5f8562466e0d19d222240dd728561f7d5c64e000000903babe76f53fdf6bd620f7ce82713adc6390d32939d113075daf95374cf07964c3a6fb30975853f14cc02fb654326c397e560b3d93c56f286572a9221257030b55369b406d752c06901aa937b8a43ffc90fc03fe346168e874dfb5c5b871bac5b2f6ee285e71c7be70d666e630a5f8fc605f87b550eb6b634d98821aa218263eac28c1aae4bff00bee6fac0ba87b3a5fe0000009044ef97d041bb817cf165c54bdfceafe5b3e375456be5a60a20ebf4c0ebc775d19e3b6a05602fe0702205ac3bdad9fee5733dec31985a830d52d934d80f4c26de543ebbc35ce43f58d7effad1a5e2f1632fbdd7f09de729fbcd9c1e420234edc3e11a9fe07bacd69c9bbfbeb95b2926eb109265132a50e27802b43af6ea5007e60c18f2b9f196982942336596486d7b08000001bc0000009078caf7c571dbed7201223e0edf3a9df03b5a286408591b32aaa538b5183e2811ca60a01da9625a016598952794377029c3577b9c5150612a92fc18c8e278e9c3ff7e831c66027ba31121f404c6cc34680f705e4cc64f09e1b5677d8239852b252d5beb89f9b831ab52164f268f5563de26a79d31cf827cc8d665e00f9136de728218f6c52a27ffafc4230b18dd42ccc30000009000811d22230c9c813d548215837b76afeb757179f8353d6907a6651c52d93a20deb6397944d199ffd1f2fd09002f8ee736c8823b748147db1a3182eebe82b840efb49cd9dcf389883e7adb67130065a209457e1a541ae4169fc17c1da29999e55f62143ccb007e6d34dd718321b61d28280ba790996b51f19e7a9697e6032f0c999e9777f6fb1ece70904f4a5f2b776200000090fe245eda1c2973b1f88513a37daacb8d5f35f35893dd5eb250d1442ffd0ab34d9c41dd3cfe6a7926ff1ce27988b8609ffa0c8de6dc9baebd017b7319fbe9abd7f4227dc04aba4d161f31274bcd20193f20fc7cfe85e4b4bb5a724aef57f265c62d737844a517823404a13148abcbec4f08dbb0bfca4e69efd460fec8558024078cdfbc05a42bcd9bf5e971fdefd08d54000001bc000000900bd4a31bbaf363cf3fa57aca5f04adae8f5213a7694b99c466d3fd41fa6ff4935fd74b4ea26ddaa049ce4361475eb92ada4ea3a828da1e80c29eb7ac684239088ead4a38e2271ab5e719612e80f3a25426580088f7d3501ad3876a82b672f5908cc84d06322e5dc6b244bd5bba1b95fd16dd281ae9e19ea36ce6c401f1575cc588b83e498386a711db916626da44415700000090f0dcb0f94e77f9d78ac41eeb40a50a955b4109bbe410ff70224b742f3fe1254447aa7386f653bc98610a67a95ce8919f78514c4a4bf00097084f0cf3d7c1d2d33122b5722bcca75484ab7952fd55e5ba2a20b78242c1e4d2af3333d8cf40e73151e0946821ce53efa736b9a3c22c6a2e21ae0d781bb4d13cde7018868a29285e9fd659bfdb9149e6296addcb396d407700000090ef341d88ea4e7fd9fe6e4a22e4d5dc505d065110899400bcf7cc54766a7127d2c48e47d156d6cb12d20cd0314d9544be558999261a88f269ab19e5ca7270380658bd36a443c55f097783c769c53c6f4016515b5ab04e4bcdb7f6c4cf920e722ae83ae986a67eb316f3114db6b8af057c28659cdff4c0f7597c43c1a80b453d6dd57ce6970ff28a5277998451724f3f7e000001bc00000090a865c2a5ef808bf3a41075b24637dedb1b5e14a0175b6524bf7e6dea4a73bac95984aad6571e030ade342508e58288746e74ccef9a41db44feb83e74c6bc920a2cef3a46eb8e4699019f6b006b5715bd0fb7711ad7933cbcfea5081657135e6faa64852810ade19b319163c1f7bc5a52120cd34e23191db2caf0e3147e4620adbd9c65bb19f60850cbe2bb27b3226fa00000009040a53797ae7569bde81f43f32b91e826343bc0f14316c46c3a767c9a76f3c6f18a5f43883aab511608ed0def297a253745ebc8efcde6f17aad8b894bb8f2c56bb7a0311b86f7a77acf1d5905f1391aef189601ada92d92ee4831fd2f3f6587ab231751c127d25a790e71caadc150f9fe2da2329b5993f4557c85702e1d3f76350008198b0a53e5659b385013256521bc000000908359cabe7b56b8b199554d07c08ac7780ad87048b1c8517a32fc474dc2d77203ec99a1eba9c192a238479e651e0b5b822f750b92523e7f3cb0265a0ddc5adc0c52839067eae0ee372bd1077bb528a5d81e3728b0d47ecd7e359e89144b1ce2e11da0363cbec6d502ce996791d87876311714c6383edc8595bf0fb0ab115f8265dd47c0f13b2d277237fca8c303c25cd1000001bc0000009014d50b10091b00692c84ca9d89b378281586b784b97e31c635ee2f240f7fbfda52caa18d2ed45b30d8c57b9bdf0e90c17cfbf7cfd766fb6ef05cc6b0e9536010dc1f3c570a1e805fe295077a49074d2629f8e3aa398ad0017f483cb595eac860c94524a59cd99f8d6100eaa2880c37af10d95ecff8e7662fd1675a6b699e368b2becb6381b60245955daaef513eda493000000902fe053e6aebc719b33dc8f0484d6ae3b36da92f490fac91bc44457b10a10f05880ccdd4a02ad43595b08769bfd36d6c8ca6b56ddd3639fee1891606c98ef93aa4174ea438c200f742b7b9cdf0eab75f22086c2b7e9c56a469f8fe4778281ae5dcacfcff7c5e928d12b7286346e50994d1a0f76ef0d2ffd1b281aad6cd3dcbbe8a0ff597104cefc4861e35a8dbabe9ed100000090b9e43908601821a6c6af1e8f68f955a0222223622c949747ca6258e843759a02031bfe8181c7354bb6e4cffc40feb6b0ae8ac4c930727f95c3dd1255f72aecfc7f0145cbda6958e8943722c88cdc172d2ab4e685c0f94fe29a92d8eca001d07945fa654f115d67a6ad1bd9a9d11bc8e02b6764d5427b15702eba437a7379d05a34ba6353af0b3c9eda58949a5d744c75000033a000000ce40000012800000090d1267be4f9d271fef7ef72206cd0e9ea08c2a867ea83347a247a3db18c95a3de4d5d19b44a8847af1994aec028371d91817ea93be421bc88de0f7b9ae628440b5a401cd7fef4bdf68ec9cefdf5a61c43305a51e1aa4cc53cecaefad9c8627ef285ab0a648361206ad649249a976fae7814f39800949bef3ed19e7d9b21eb2c673ea392624f1d670d20f8d9065f201217000000902645822c672907e4d8c0829357baac264aefb6b4308489fe113b1ff1ab965e34ef829446287b3002bab3bafaa32ef13e2eafabcc5801bb482d5bd79d5df0ccb9df3ebd126dcfff9d99499f3b22ce9003016efe2dd628279f15a73a50ca7734617b45328cff2ed111388be15bb328b15a012c4e23c527c16343d5f1aa009ce9ebeed9d4d9953a56a5bed7e5d50e9ecac600000128000000903ec8e194dc39e13100ae37743d4261517845da492d394d40d0cc71520111f86e5a1e2f7c1873ba53a8ad917adcf7bd893d82168c00e6317d2aaffe02edb038e3a91cf667cacc0356411f24eebf401e11148eef7900cd61c234127c9938bd1368f2b794fc12e58707e1882cc3f4d21a0c1df957e9bc5b63c528b707f685dddbfdf84643d155b06eafadf2ac436e5fe997000000902605a31b9297ce4f4e026cd62b1f99e8ebee58d4275eb401f67d9d109b2b8b925a942f34d80a0844c74542fad7d28a0c01483f9a26311961ee99e574f7a03781d749d68e46d2634ee3f2f86cda4b9d5c080a3c309d16833d104081e3186f25e8c36fbff25cea36baec6d85359ba8c5ff282403cb327daf376cd0a757807ef376475b9aa8c5b4afd5ee35af3908066a530000012800000090f01ed56f5ce1b851ea8242e8f2b54b3a470b33bef4a3f98e90e57a1efa1d066af51ed76a646cb0569643f75e371ddde0e4bac9f097f48ebeee3408a9e1524cbdaf08400cb29cf8baf0f1c495c040075526e507f551aa7247610b4374115a9cc36d55d17cc2513f34b294b6b57ebb63f811df0b8c164061b559447fea1bbbee0cde3c15837b4866984ae8e1cf7e91848000000090f48beedcc6a7a73c5dbe0f65a08901e8912e17b53430708ec55f8ebd94ef63cdd8d1ac2ff75c07849e92fa721d62c429769b2f9735c357a275929093d05211c63b36b72c38139554d705aa77ba77153c1810eb74a7055565d2b38898c1c7f68b2b6ff3a892051417bb67677dcb606d80210bcc0e3dcdf034dd98cae6b17708ad15c843e1625300b780d7dec624a6158e0000012800000090e3d8bbf1a03a6ec99d18debe60451df0f74b08613bc7df42072ffc0c63658e3f7a4a4ee218d29f7dee54fb3743b47a9a22a62067a43992ecde88fd0d5a4363d620c54a4f8794f23412e64d8a579d8e2614d2d47afc37c92f2b455c010d741cd477a38f3c53d9fc2a5ef75539347954c30dc480c9350557bd2ccc1d6ec3d93c917d0668cf00efbbd5ac9db2c69a35408e000000903490e166050c8c9a7ced51be3e57b99ae8d4de9e3ae3d7872d7cabfad63305c36e97214768219f502f11e081b6b1ecc4731c9d21e7857a48c39f700f2de1a1e690fdb2640bcd80de3495f5626d2624b81da3a8a2dc731da13a8f75335eb636aae5517433afbf8e02b1bfb63735eafd61122ade87e69376243405e78e1e3730cd0293ee37e4471eda1eed0f0c45c3842800000128000000909fd83cf44626806bbe7824895282b806c8aeda0f138dcd314cb32aefe75c2b692ee9113b1f9236e0789edb9ef55000d8ad3fc9610808e1f8ba10ec5c2066489f8891d029ca88be20c24625c68e66f39918b12237680f30254c3ecd75fbd881791255075b70bd58da59e9994242e2599617011050da58374af5bcb35f4cda80377a8a187dbd733ccf3a97e703dbcc5602000000902dc70eb32d4fb884d0b430b16c7ff97d5b88f35550034ed6841f85aa8dd2bf3b31e316b75c107bbeb05296995c4372b1808268a7e4f2e0f9624de9e95ecb47087753746334c65615578c9e9feebb3a51241fc894f0c95bae803c4f4fac8caf11447f290321247bf7761efa4e84d3453c16e0efd9024dde101546a4a4ef8e473e464a605b56613a3199ad3b629c042e880000012800000090b35df4a8e4fe3d9ba9a45a24b72bc3af314b174a2159cba62864c91c495848f8b11fce0c649922e5c957b88e4357965efe8f95eb96b290509b8dbdac4da7db9eb7f54116c9ab5367335037d89b946c5307f6f9e11fe03737543c46355427cb8c3d0253d78de7d89a97ee51b8a0d125350999bef16260798f2b1eec194a736ecf5c1d58e17ceb37bfb51e0c7396de39ef00000090f6b68d8dad58b1f726721ebfe0ad5547ee026f110e6fd2fdb139116ea2a3a3e808c682b2e43e47718e13d67502a9291b39c3796c3dc6c31b55ff7df469ba1408e1c1db38518a10e9a88235e430d1bcfc01c80d1f0ad3567bc6f3f36ee8242b44ef0b765a5130d8a4131b0759aa1ba3c32d20a24010618542cb216f00fda8b7186bba33dea148e9909b4d4114d273733e0000012800000090eba1cabbf010fc7c52c12227c7cc1bff001f549f020a7181c2b1ea71549f4e8c73c2a3b8a1ac6cfc09ed85ed820a479ec25d2f3e23d0f0807c9052827f4da196122928d3ddbace54cc179a5dc8a29799297e2a199d7074c84cc0696b822b40ccc1a1821fcec621ad646721d0914ec7932fe1b6ac2f70ea89c890f1261e55a09eb95eae781cb719f08c28c1be6e4117f400000090fbbd8ae5ed706962d244022184001121b2bed70fd7c5f24a77747014d9d118a13e8e3e83e5f0f613e51765e55b0cb9e2db954e9d3413b0453fc7166e69288cf6a775c7db07488b1e21fb2b24f1f3cb0023c61ac84d0fcd2b205765fcc3f9fba7bb5486441c07b1cd58ca4176cd410ac80899096c50546c8385b037b01abee2ad4b1fe28353e9713ccf291c29adfa392d0000012800000090f9a33174474e431d81d35dbdb9bffdac406b33d2c6f50ec30f40a501f9019fab188fae220ccc7a12de6ec060712c95add30a769ba5b4679125216799709c7b3fea4ad16b3b2f61beac2140a77bdb27d40cf50eac4c456057fce6aed3886a363443a56a4a4d5ef904d5d037831af022da01cb2f68f559ea4c571058cb175f2a5422f65301b7b24298916e2a7e5d8e8b4e0000009005dd3985388842b02e60a086ad305688dba8c73acaba8804464dd9b3650af21656d86f7dbbacbb344d6380351cf99f5298bef1cf20a917860cf962899c23274f05cde33a985834dd53eaf93aa6043fa72ca9f8ec3d4d394cdae9fffc49896a885c15c4efee1c3823c69f74cad0c19fd517babcc3125db46fc01a444e8725778eb0db0906db46fbd5cb4dbad9439716de00000128000000902bdab506bd3624299973bf33ae4fa16aba0e407b246e8061a437523b59b8bdac5d99d7dc63aa3d15b3c4bc7eaeef86469965d03ad3e9208d349d9f0fa987a789f309f0a847926337207b6f88479438b71c35b3c79aa2eadb871586be85ff3fad85f5c69b1ee4703889c555b242304ee7178997b71733c8f33fa78b9ea722e701ba79f0388c1f76acf7d5d777cde50d2f0000009048b5454d5350c10d5970abd7223e34b714bdbc791b4c65b14b58bae6a87959e9b8d2028cbab36e92b7d96c496613e1a4fffddb3296f28f28218231531aa50db7b5bcd04a24b200191498aa893862559922bd03d09dd727f797a75561ff4bc9ac01c0295aee978cc3487b08de3c5e77e028dc877f80f4baa2c748bf4e6b7fddc9af3c750691e88463670907dc89ae366a0000012800000090839be5d7c52676e753c8a94fc7012fee0c33e0ba824ef37cdf0e4ea1ba7d378161d29e54ea55823565c2fc5b91326b4a99a72ccd98595424e5751381143578bc2ef5f8fc5abfe87eda3951806f9f7ea20d2e867704f0c4f1a7458f33ff54764e2a64ce090b66e306b0f0a9e27f36e6a72828f812d9cbea202ce0ed288be99c5da3b8c032afa35c82906ed622f5a3603b0000009074878a57a2fbf52e6b1096fce33c7f83f2c7425ba6d150f48be26ac01966ca1f5b603a3d3bcca9f1524c4dfed85117c8b8ece60461d5974836189771a9fb700a44c92f648ebdd97770d1526fab8e5dc9301100a2a7804fedabd6d86f2fbbe46e3fe24603a00063db5b42c4848083a3580d1cb7b2386c037a8de0a9c6055ebe5edc17d18440ac6719ed98734f92ae5527000001280000009093e36780cca35dada87cabee15291ba8c3f3b51e28aa2b2f36f9a02f5a19eb21c6ac03f389843056a84b3fb4b2acc9f476266fb480fd7f99bf036d492324f168139db1e31dd27cdfb1b4e8dbf09185411c4de97982b74e636bdf6f7048c4cbf4d1b2149904cff0d5a187b3e3428485692df3c284b29771c96edbed7ac3a915c57377ebbdec271352157053c10369c2b0000000907c664c1d087d8642d85f3394f66f4bed378f77c1d9d7c128b164fec745a018176acb3c666635487d07ef39a9a7443cddfbe690dd2d90f249189a3621281c4d8cee6b8af4c22b18c6ed258b0cd1b5852128eea188949ab62e174d2a5e35ac77b2ecb10424b1d49a956eaae6d453e0843422e843b77ee88004fd697ce4ddfe4e032890c1021ac3d0b33b993d2cc260dadb00000ce400000128000000905998d03244f645698ff7cfc4dd1ba37cbd375b94a94005ad980a9ee1389965347b34b4732bacd868f2d46ba76059f07a9612b8841b00795d1899f4d9e35f14f628361a9d6db9d1cafe334768894eabce246ba1dac13af0fac1bda97683d7cb5789c83c8bca06e4797e2ed46bc518c3ca15d4bf801942721b74175d2034e86b3269d17d92ccf0ae1be0974c478678ccd9000000905d04d09462ee4c6e28988b59218779dc628362c3c8d61b0080506b506232c8dd8f5a8c914e19cc2734646ec283ef984d3a86bc15dbd8de783a4e17308e94db25428c59e05e9012c8b44da233efc49adc0c029e9962b7596fd6466cf39135c96e3aa7ca27556fcd2bb99a520e3468216b2a1294542a597a110476ed26bb8dcbb17162dc138d1b68aa5eb8ef962fc703f900000128000000903c8238f40ee0e3f9e925671432e84c067595931998373096731dd118da4f6acdb427febefa4ead8cc0b2757f651a35607ec45c65669983704f3c1c5696617db0a43dc3f6895691796b92d1586e2d62ac2783413610f60d5d6626eaec0cf5489b56a67fff21145d422bac59bc396dccf3025a8fa94d115c7c3a59681352149f1245f9703ebde50c5ede736cac50e802fb000000905e4e8b0e7d92d0db9288b2b0053965ac7f99b674c782135b7ad9ed8b2f444a70df394aef47fb8058895a0e1095154e2b7ab1783b5a3f0a39d0a497ba8d39bb2d35b812cd7da132646264393f75bb2a050ed19615dca0bfe3e31a947e1cff38a5648ad99b3148841c526abb8ef5130f6a0d1548c4d345bdc0e485e8f001927902345548007d66bc6040ff4d9c5d63b5ef0000012800000090490bd4103feca675238fe7fb4c16fc04b41f260da6ebcece76f632ba3f88c45c041e24553ce95a540d0fd48949d652bc7900b8c7a6eb8b2b687e00349bc9d832e0dd7cd4a4fb6dd73970b40e0156a9112de6af792a7d99bc6dcfd7a322f3ea87f4a5bea253e284ad2c26a523aeca62a32ef78b5c436a4e8dd5e6e12614d04e2cfe468a0ce89df5bb2638156ffbe85c5900000090c152b7aeaaf6f66ba3606d5272e2de83c2ec413ee7adf1c043500c433cf35527fb29f203028e547446779ed475dadb346b8b210c39de239685e9716aefe5d38655d9179c01d89100967ec7936bd59efe0be12e855ab54331d40fb17e7c2c4c4d0d93f3ee108c9cc9e871cf8019878d9517a9cb987489f85c9dbb343ae729094658d51a0c76ecc8f97f711e88aa09f25f0000012800000090ce845ee33b8828c450d0f2cf2e901790e918bf0c8d809e81113f1e829b219df0cee5fd00af7f89613a56b120115c72f98809c06cf525f4926f0c44d2d89916979f11100ea3adceade2c3fdcfd7902c8a203f3f68962dfcfd5d469c0f44b89113b35c8fbb3bd00f35e9c869325c6d56fa1d3a582441db19937f1131d6c57069293c0291c4c5497b62f9e253cd1fa17a3900000090dc2b6f7a95ac2f9b02608236b9d001c25d4bd46c1c299c6d2c5d888d4f6cda24fa0d7eeb717e173ee675f7f1f6a891a65c76d5137d5d8536525ef77268125445bd2a79a87e6dd03ad7fa682ecb6bdb1024cc7ef89dd5d28d3d83a0cfb8d6ac2c84823ce8d2b23da74ab19cb739352166002bb6a64ab8ba6219020940c1868aaf9098599b0536295a152d76376aae54490000012800000090382c4148126f8968b857162ec8fd930d573a41ae07df55b075fa4a90341342a75507d57fb3accd1b145f651562b68172a16d01822fd8fe19b8d74371c935229126d7a3cef7f0ef69c263389096ae3a9221e0676c9bd4d0604f00b6953347bf10af9bf823cad27dbc1f7356dd17fa9c0f12e5e2d085ddc1b4a345e9bffb549e5db1c045c210dbedb30dea67a2ddbb2bec000000905d60495979e9949a319ee7765f6d3f07956e97cb076538f3931c0f4572dfe7c2c9ac2afa11daf65b43b6aa44efd5e3b26672b3d0e3c714f5667fecbed230ef70b0f1c7cf6e739b3f35959a55c46423cf232f6fdd1fc069652903d19451c7870a33ce63d016a2ae702455b5e899f4483f02be42174f5af4eab43fb9c68a1473ed7a51e89c519da6a0073c96bb9cfbd4270000012800000090346bc85326b32dda7ce8f0212fbff1092a4141ae7452adc2c667782ed03aca9b9fefd2d5740b0dfb5919c2ab9a5d4a7ba4118797df233952f68458d346ac573406de9db783d5f3e97d911af1331508312056a292d09b43d071621a945152ad287b75c8a4d790c2e91561e04407be1aea0c81f8af7657704175e1b0aad580ba4564cd3d6ec6f36c55f5e74afeaa2855f800000090b77a26c6b8dd4c4dfe3aa1da8ea966522275687a8f7596662270fc760493b8fbf1e563fa0b307a00bf6e478fcc4eb3666369b67e5273afb4a02bf42374fa193fb0d0813fa243aeaba6d683d4049dd6422166b0ecdba3db4b79df7b0c1fc8a935aa7d48fb5a550fee0541e69d76015e63009ec5223365534bcbb376a2539e42bd129a9c457be332616dc5efaf44bd30aa000001280000009018aea5bc1ca8f0df49da8a42c192a4b8cc0aa96737fcb379804441c19b2a74e9320e84fddc1a23787216e5cf2909c0030145853cb165993dfd87cbc6d422ef21fb6cca7f7825a3f7b6adf36e06e6bb162b4eba544dc40b453b24b4fea13c643a8dbc0bae7729bf40cd78b9bebc4ac7b80495138415b64412bf67b0cdf88d7b4ae8798c4ede2fbf763deec962a29be47500000090142795b3ab49aa436c60b2a711f4c19339e4a3801a70876f143ebff42950fa11687fff7563af84d6f2a2b8c9313cc2f82818a201d4e258d979f61ad4b4ab14a8b8309f17c44bb414b3d74faac4e345cc16bb64c83ec01479fc0c993bf957ecbfb486fd5a4e6c1d3d1274914d5727c22f1917b87c903dd1881df82801e91cc83306bf990f0d55e63891ddb7fc7b8aef4c0000012800000090dcfeef5d43ffa92d2424c452b997f50133e3bb19581f58d007e3129bccb19388e395d25eb5bb852c71700150d709b93871a61b543439e5e0f75f174724f0d7ef9e61c335ff95c337e9929a7219ed1af1263a222029e7a033ff8e7f0ef7ab74af7d85cedad791f2825976d375f17636a80132c3034754ad9ae550bdff011feb1be1c172b2207f98239ae4349019ee465d00000090ac3204228825a74c55b968672f4d63d1e2dc40b9f41659ceb3d5dd63197f826e8d77898eb5e6120313c5ef4ce754d4ba89adc624fe368bb493b5c142b635a2a930339e8da2bca2d4e07b7ae451fe95ae2837128baacb9756033334a5d63609289cbd69f559036c422ce03dc91971424901cf9e1f28c35fda2e46fc7ee1239be8d474913be51cc5a2ca432f6b48684f840000012800000090cd23db296e01fd2dc8da08863075927f5a60a7907f3d265769f8d0f5081cd8fc218766160527828a87715ce58f6d7416114a9c1ef77ec93781a8aca5da4d3aa8aa16fe1a09eee2af3994eedba49718ba28be0537fb39986aa2e1f3ff5bd18f41e9ecd437e6db73e4cada5cd5639935e30756bf0b2d3d0a9ce69a6aa4c2e7d330be077532e4bd5e0a309eb5d3d5e1f94900000090f065bcc6ebb2303fd9c98b22d0e78378302d69307f498fe65e81c146d1001f1fc58423db36003c66425bd288cb7ed234dcf6e6c5cd03f6cf7f3b317b88d2a37767c6e36caa7c0997c0977252397dbad80997a6ec34730acc421489e3b118dac6f17cd6b4d816a0092b3e30477bb51c62219452973b63d9fe92bc2e93b6a0887c8d2a938a00f5cc40ae3d35b71ba74d0b00000128000000901f4117b0387cbd69904faf5afa7e0994ee94179caeaa45f3b3eb2f2aff67481e0da701c4ae66051bf316dfa30304b550add8512230122fccb457af9f61ea3522d0a16255a26d403e080182c27b5ae25e21973829fb3679da8193c631fc7f48bf0d8a789dbf2b42cb39ed2c57dadcf431129cb742a98965cb927e16285bec36e576ad810e799ed4089b1dd1b13ff07d5e00000090fbdf9e199bc0623a1fe2d32c0a4cfc814af0f22450bc538fe3acbd84a8e16e9244e44b25c59dcc3c566b71ec2c5ecce2730680427b55a9fe31c3c2725a347ba742c628693edf2d5644c6a94970588ba916c139b768b3c44cf618f2ce88546aaf413f3803f30bd9e0b66777e5d655f4831cdad9a00f7ca7b8549dbe5d0c579f3f0fb929853a5e836bfd1856efdc4fe20f000001280000009019dd6fed398d5a1ec6d9b90c21f72066191e977de4aaa552a27e8749d1e320081e7fbcba1d65f56c6ce845ba3218213ed8a07c4072dc271d5228b5cc58997ed670d120e96c92d1dac8ce47f856319246167c6d2d5c0c304aeba71d923efd25f9bed2c8112cdad624a3211d9692814fb9029f1f04fa904b76b473fea9e6f83dfabf214caf5ffcf0c5827a34731b31e40000000090e65cb233571c73e4fa6c182120793001a990fa27b961e18ce833933d48bb801382308a6d3c615ead2f098dc4b7631f4101d559a2a2bd2908e41ce82bdb5edb27173450739eb2368b5444822d1ecfcd912c8628008c9433d1c4fc475e73d486032ea9e075da8a2b4f2f9159cc6b68a9e6147432868e71b7093fd7af04a9e50f5188b6d7ed57cb7627ccb31670df5db32d00000ce4000001280000009055715488a08c638d410ac1c3ecd21ae332880fc42105b976c6fb07d698c1b39faa8d9b12934b08bdcc693d3ec0128051cf80c4e9f86c5973eb6d40d03cec36dfb7c971d734262ccffa3dcdae15ea22750efebba45ac81f517d39f8659cfb7734733128e7a96775491393889c73de2e55067fa9a986af3a69d33cae41ca15f2bdca098c58a97d91dab3199c93d04f570e00000090b6dd3736805e84ea003952a85327a4e528da04d3b158b8f9242fd8024ed02a5adc297de3d2ee0ff3f63d4adcfac256d843cbafee96ade152809332a8547682ed599c1c0e91498f3994ba461857d4b8ec037262da4a92fe480505db09fb5bff17bf9eab8daee32e909fdb846a34388c9516fd376daed2955220b85798bc7b740014edc73ffea1a5f7fa15368d582c965600000128000000900a8ce8c6a86aca7ab9f6ea3fd6a2f6535f672840674ab498f9f5ae781b925f2b8e5a0b6ce75cc08e9241452c57590936b61bfdecfef41ce881ec548b0b5a0ecb0abd8405cb28b38d04c8c7f0df097cb424f19bc9257e5fccb7c90a57e15e5d92d6e2eb60ef12956afe176d524faf5fc418725146da3b7c57bb187f7e83046c8898b46713888b536f5ab431d808e4a52900000090891c999fb6f5f2736c46f3d6699cb9869d6e022a61931bbc521008bf3e3d57f048b7bf300a346cf384f2e73260b6796889c7e6416fea936b69dd330e5828ed21b7fee287d1cabd0c1ce21e2676a9ce451bd960aefee87efcf907e8433e3f986ca0d46a4c1c6074b37a1c444c4fd8447d12cc44a788108c3c25de23c9d5a50ee77d1e64d8f5c3c8533abf5df125140d320000012800000090fe755ae0c22e8a61cdada5c298ff8cee16a776607e29d4c7cef27e0de9880dafa71b65c64005522859505870fbef0636ac3066b6b7c7d61941b8a0448b7bf9b2f6f1385ded2e353b329f5bc5a87c2d82088ebe3fbf9907f30caf2c3b649bace27ea96165beeb06bde6c1727b19b6487b2508fa3dca2918a1c35bccd7eaae5e195ee06fdc2953d546542535d3a55c9d0b00000090abe888fd7163369618f463f6d33563db49f7ee9316b35662863a60378ae0312d1f1599d9c2a967ca597d2a6512577dfec7ad1a75364664b29bf2311db1edffb4d059048d653a950c4d7222a53cf069731a7edb0aea3e2d066e760eedc1ace79d8c826e5c2e001790d8c5b99571c174720a03e33f332858a22d1d217591bb4902d161fc4ad5cb987a08c4ed291960400d000001280000009031046819fce63a7102b44aac4c5f8c7a61a3509eb5689cdf977d59cd27c2ae4d1ce799c3c87ac8c8e009f16f8e668574eb7390c74dc034a69f6b3ed1791ae3e8ad9cb378051a96b03e146071515dab32042bc3e5a0144771e4350cf9e97843324a00afce01dbfdaacb9d7973ffc92a92087c71040899508ac6ed22f98cbbc28a326e5450a4d45fe6b3a647b50a41e56400000090094b3b1bba5ee496fc26c68a807f8ded13c145d68ba578d7344525cf8eda77c26cec928f2637327ddbc66ed7a010164adcac03c64a9fa60378d8ebb4d4ef6dc8a0abd085daf104110f5427e737d11dcf0f81eb371c02344fdab811faaa2c3f6848969da8dcff13706be21add66cbeb7a1af501f16c59213bb5ff15fb5622c77b4230bf65f7f99b506dab2da006c5685b0000012800000090ee8c783eec420a1c1645d48a5629cf8ce95d1fa8949367a9da12a9ede842d00b13110aee316cb020d0179e109d17c2bdd9ffdf4a5bc64fc72a5cd07458a7ef79c6724c251fb28c7cc17dce89e99d45d31469f8b4ff96a5cae2822972e78debb1e975944e56522f467d32fcb387c2fcb517125a849697ae7c264e80cf0aebdd9e8fd047d3f48a8ca181ddf60a21a4847800000090c21131eace51e663aa5ddf47fac03e4b8c1b3a386f11d0c4d4a75b8989b6176daedcda7cd3bf8250b611569ba72caaa70aa03db71feea8d09e5a4d8abd3d2094a5137aa8c52af5548d8a8fabb5bbcf0c17b6b9196a1dda2389ee4c780831b684ebb6cb86eaeade5d02c3cb5c9c09b5270e2aac6566015226bfaaa7bb1edb01a88c5583cb0a415ceaa8b0031cbce9c4e10000012800000090618ac49800cfa73d6833d7c6b8382e3409e91435c9901b6b0e6fa5de9c09f065853cb0829b9301e3ade7c1b3c01f0cde7b99086205021fc578bdc51e7aa843849c8ef00fb43a30f9a3c5e3f85ffade7b29e73fd40371222f8d668c62863d9235f3b8adb1ac115b5febddc0e305bc7e1c006902c3cdf60732133e0803abd9fd2d509dfb2fbe7742a9f44d82dba0ffd27900000090a184c9e0eefea15471bab69b8f0a6500c5442f6f042110173c5ad0827e5cd1932d38ea76f0aa40cba967adbb9e97e07db74301806f696d0d177cde9fa0ba61f086b206b98b564157ac24a5dedabd82792bbe9a051cd6b48514c3296d6c54cb8647df72025211ad123ee1cca0291ca03a245dcf0768cab5fa534d148c587ee66f5f36b89fa50df893637f0a2aa8db180000000128000000903b09966390159024f0c642e5d657b0635bc31168923f0a3e0736823d1efa7e48a642a25fb718221062383683fb84e2b64619ea07f026297b445f5bd02451f631087fad7617b2d16bb585866593009db0094d06fdcf120b60e1f4b1b4de7601be84406b9a5373ab0ae7a1793773567d1d20e39cc64e8fcd3e65b33d226a559f87e3029f022c545a449c6fe85bbffa7b0000000090c9f21a34cb2673ab1fec1f94b8b54e3829ad11becca8b51a924f18796eb5d6704d2770518fdb1fdd84c65b40fbc68a5a6c8a535d4ee2e118c851439db8b78ed4c57b8e3d11da1562164de0f87396911525a9e502bbb33d46d38cf863102c2f2e74fbd56811eee530baad35810faddca80326e3d63d9799ca7069f6797d294242373b5a58e6f1ed7330d0060939cb48ee0000012800000090367e9fc1b4a260ea686ac8ad04f2e2ed0761c35a27e3108e16f321d20c8acb40b641a4cd1f1c71d2c5e42b59995ea7d47080e33bef859bff011b38a8ef6b043f236f976c0c39a13f192db7011a5831f807013ac9d1c3a9b88810b0e6ded72f02265be72de608b63c06af3375a1e2daf8168bbf4ad7c401d160b6b36bbaf33cd7542211745a0d0d0abc709d284853ae3a00000090d644726cd54c87ea3ce66c7a5af8ec080a8e8a9cb8db41300b151a2c338e7f9f14ac0e231043934a7ed7bb837be46c7d187e90dd38298e904499932add5d825fd22ba4824609f4c54c3db28fc99507a916a8efbec6336f0b8e8390f5a5106612c428a0adc434d9320f9b9d390a4829e5079a5432b99e97699daf0d728421bf8011cb6bf401f53eb0c1beef6b85d8241f0000012800000090bf4cfcc3fbbd79ba831951aa02d8cf650e7d462d4f1c7cd2a5df1a7ebc6eaa87cd66782af865070338a0a76a66096528ad11288bdb1d9016c1e38e2bf1beadf952896e570071c57f7ac313ad813ac1d90b3d76e851416bd1ccb2dba2d128d6e8203cd39ca8b9d50955970c007b7dad4d104e291a8f5df57bdee6008fe68f0d8163da7984dd6509e2a58655ac2d5e74290000009081d736b83b29f9b0611c05a0dda2490330a97ea2ad65e48c042a3c8b0ad80daa2b6d51f6b19fffe03b50afa87da3262e80378f6248cf5efd1cedd041692aec4573d0e1fd5207c8b281825e76225765dc1f37ae1ba00845d72156077c6533826b991f5f788dd1a10cbcd72ea73f6515812b1ee78954d349355a2a5b9c1232eef4c83d94e20649dec3ab24760cda75e10f0000012800000090a3a61d404a07f45cd49966ed22bf3b4e9c9c5878f58915e0472dc8dd2eb594075d8efa7eb429d7ca61a6c9f79fbea29405f228e03d0bd978971e7f2a42856a89c8aaf4cc565f922b9f832af1c22d365c303bd283c6a1e7b378c5179620165d78bbd8700d4a2900e525236299768dff561ca13cbb25aaf32dd350f51521143a7bd81be6834983052b343e95102f69060300000090304e9b7a5f4670f2fcf132a631b18090cf542bd22bb0a45fbcaa1a2f4ff290e8eaf041592ce1d0e0873e0db3a5943d6ae92ea857d2321859ee87f48324df9198b44e02996ca66db592142f89cf938d6b2e98e9558fcf3af3bfd2ef38ae3506a31f4fe45d907853c60dd998a0ad5bef3f2a620064f2facce42d62d5a2506aea0aea0685b21c7558ff45f122aac0e91c8a00000128000000902640abd81a3da57efeb903fb7ee0e5b7f953a7002ec47e3a9abdf3305a41530e7eeea0371df3533bfaa215b6c987be3a6598e20caffdb7723fda7c5af5fac93d62973c5a86a6411304310f4c0d4da8af14e9d113f7df86b49d60342920cc20dbee12dd8f418d11b0842821684e87feda01fc946ef7c05ce56a9b98f19178f8de758e2af5f786b1fb8b004cc85cb23ec70000009013ec1d98f9636f93ead41ab3140fc2a411f5f2e021bbc9f72d95df91ca55084768d93d2ccebf83fa26cae9e8fa83c2b118fe1cdc46eb9daa30b2d011c40849f0fed65cfadc92fbef62d3630dd676c583125d62403618c5c88c41f689de97c1d75082ddcbc95339e74b677eb2d1318c620d0cc8c82f44736c9bdda24e8b0d706003fba7d4b23237920273970abb93545f00000ce40000012800000090d56eeaf9b6fc69437806e1be871c1ec2a0c23aa64a1d82bac9a7429ef2270bd2765c33c91f82598c1f68ddde7699a285cb64bd409502b8e83b42f1e28207a4e874f8a0b1444f2886da4755d73c7863da004d0689e149f89c368d424e5cd74fdacad44ac7584c9a300a1fc9cba944be581dadbe8d6dd1dc5f96fc4c4cccfa300fd2e787e80e7618e9c5be43003ce3d95f00000090f572e6184890cd783a2c867345f8bf18fe1461a046376de7473fb34c2fc2f1862f6b769d98e88f737eca890f5f5cc48db20571ed6660cec27ce064692abf5cb5a26e5202ff3e0e1fb703499d5fda828800f8b556e4c1224f985a8e2ed75c66b12aed838d942929590121f8983bdc5b7517f746adc73b0c09047e69b64eefbe0340c78aeb25efaf3c0912f93b4f98a0ee000001280000009044b6e3ad790cc71cd6c47f871fb2a86629693ec8472f30df83c8cb4f6001e0e78dbd947a4ada49b87a2dcff150b6735851336062fb4c3ba6a3a74bf35c3aead1860d1cbd5c3507e60a2ddf30ae898cc5018d40e135b8e5c7146e5b2864e91c23da095ef0d6ae535b7d9c6817babacd5313112b1fe26b533d29d413a52391cfa119c12eab0515970954c029ffe1f87b5b00000090870a1f0bae78d421ee6c9ac89c1d95a1b18a31d2b7c86ef2af7e568103d612834985339e8c33c7a5d24f90681edee45a8ece287a949c6f25427b8d26fcd5cf0b774dec6d70cbe0f1688c77266f78e72f1d8418bd3266b95e010d48d53cf30031328f6712893c9eaf368695f43f55f6132a50a634471b990ca9754480d43e87116a1df5bf3b91fdd2a639fb96215472b400000128000000900d2bc0b76f2e7fe9b1143b40fddf59fb274426ef2d5f01d7ed24ac9cd6c3b5ca1279f0216fd765c65be395648debc9082c5826acdd804dc1985826a6d30d9bae86783cd9a9b05a178e8bd613985f0cd71dd6a8dc8dde4fe04fc55f5b391456e02bd685d6a9ea14fd36c38d355d62673e2cfc54c674dce7da0b12c50c093f3ab559b8adbbf2b9cc3b4e3ea52509715b0f0000009012d6e407a368b98961a98fccb0ceb799977f6babcc11d9de75203f9b73dbbc2c141c38bbb43b4d3dff3ac3fba44c348fc35edebf22f3bff9af985e67e2dbdef73c0dcac8c368964f0257a5ce18e5e32a2efed8a3befc81d87c130698efd0a7e6a24a430448b702852988840630cbf639164d104f77092c2e2b5118a6e4be061e6143a9b70ebac3a15ac1a5bf9d5a65c60000012800000090aa1fcd5d082096320617c0e66f2b830a5c7c0548be3cefec89c8d5efc2361c6f0b95119c85d64121f78fcd7317e7c3481c4cc26ca0ff51ce151b8e891b3acd558b0d269645cfd61ec41c6e0a390090882a5e9f8e69af9d41543ab3be93a4a765675fe193213864305b82179cfffd52500039937fc63b2efc64a515492970bbb4a62a476c962bfb03626448e49f478437000000903283ac07cf03f2b74193fd9c1a16ff330ebfba1d6a8d4726cc6f39049af672c17930ab4ce63180b24922c18c43c01b4ac0172b5aafd299476b53e5ba1be50f7e877313fb34ee31354f0378b33b0cb9d4116b9298a40ed296d2b23696b6cd3a50986c0bdfd2bbb5439c58af6b351f9cce0103ab28a09841aebfacf6598c0ec25873088139ce3306e3bbf1a8b84993242f00000128000000903f890ff13d5bb64a96df89deceb505ae3bd968054cb6b354bf39a73e0d3908950a0d9aa8c2d5ee6e2b4fc0188a69c9acc5991f91e4d321b865264765c1de168d83c85ba1ac616ce4801017e5e4c34cf009a7f9f287f676bd11c67d9390ab116e7cb9dd8aa6b468a04dd31f5d78f9666322e6b4b017677a7ce3888a6618558310a0a6ac3fa061782f3c8c77d60f493b03000000900fdef5192501a6583cc3cb04a11f34997f3676a0d31183d87fb7e6255f8bfbd22dc5ca480c264ca60e894727271a00cdbab0b96de88c43e699961e0315f60675fff533af703b944fab3e2900cad022f4207fa960b0d7465156700dbb6587a95ef99dbfb10201d98a4064d1172feacf8430312b5dca5204b1ad73cc3599e01f077a070a39dcda3ea7edd272694debcc49000001280000009015560ec3cb3d4cb1a245fd268fb1c81831d317249ab55981783db915eee39b58771efa13b81e2c90852d5c3e7e74580bc8952a487c10f96b953ca1d86ec62284219910fa213d4a028db2cb3b9883685f209ccd6054af646b530afb5951dc48bc61facf9562420135f161a98d6dc78cb2206f2d4869841f67d3275e541e9f9d66e356d27a06bdaa61448c0afbacc8ad3700000090d445aa4041263de462b276c145ab0bddd25aa0c5f875e429c323e3f58d2d5e84a1aaa46e9297e5313840f3a6fdd600e68453e822744e24500eed099c27de245c542afd148c20548ed106ac2c4286641c0d73fb1acf582d06be8c11439786115b3c634b1be76843622d2b14785d6259e12b8f67d232257b9c837a590b2e69259495c3f9966f5dac6b9a7e7773003aced30000012800000090cec753f8114fcc724810c5123315bfbf96dad76dcab51ba41652b10426b9fd65d7a48cfb2784484e0cf61b8b65b20afc8ad669fa2c879d19028338017df945614e3ffe7c7a5a5f7e7bca84473ac862f403832ca2dbe679bbe6d0e1fb7ea7e21930afe46894c13b48446e6005ab935d841d5494ed8e72009c651dca2ac7eea7d33ec5dd615d818fbda959ef598a230c28000000905a08792b87fedc1a668185e3acee53c5144ac408216f98c9b819a648d5c146ba0499a9af83e36ca91c3f6cda0a225e01cd1e41f3ead0c4f4057c8cb6a7b4ed51911ce4b24ac648c3cd180666b4b74377126825d1ae86b7502e11ea18cd1c8d55156a8b7a1f25c21a92ac80e007c41335182b160006561e7773143e3c9a5dfeacf0e8496c2e2c6ddfd321c04d4673047300000128000000904be201a9ffda34daaf047d5b528835dd61911db450880b1bd3a2b7fc8298600159788b7e47f83dc625b8b9c2636b6ce78c5d2a6fae8c0d1d44009d0610dd2c6f82024a4b23afc49164de7c944b5e4d5f0e20f06069ce3ca7fe2f76c21918796142314525e4546f1e83888970e68dca682f51584adf3fd22f76ad10d759867c52cb7197f1649572c342d970b08729725500000090aeb1109cb748d04bf154bb94546157475bac2113d36e8d584e953a57a7fc212355f8fcd186697882282d6dded2e55b85abf920a5c57e756e7545faa36bce08dca2faa5429086a6976b8c4366e45311d41740d1c95e322047f5b5e96262040c69a166a68d6eff9e5e3ae83b261c0aedd61f830bd4c0a38e1f45c720774e902b7550012b2ba038c9d3710d851830b7c0c50000012800000090a492671e46d035652bae1de1e2d3f409c9391c7ad1315f32d2b686121a75c96756d4dd16f0ac1d666cff578f352b4569fbcba5a153ef82c7611c12421ae9027434bfec9260033fcc0267f44e5a3c4b4f1c2f31f6321a58b8f0ab6b7887cfc7107a2bdb59346fbdae29f343c62e2a5f1102f383e52f679f3d9757f3207cea70f06927d9526edf9b33ff2089f899f2825b00000090148bd8adb33b112b1aec51d508591ff6a3a960056bba4697b89ba23edb1e95b995fa9c1f96b530d117488c56b3351ea5990fcc431ad21c67acadab7ead8ec87ddaafdca660fad163ae6e35d3be395dfc14560cada59209dde10b230d7d4c662e3e7cfcaeb7a9a7a340dcaf6fb8fc15442b58edf35c4c02594f1bf3e5ea3e899f0b26ad62f036718681b829dbb55703670000012800000090e8cfe16147cbfbcede698b9c100dd416212652230a29d79d9716fbd8fa08514837c9644e182460c8eb5bdd694a89195e2365eebcd3996c4af7a1c8d3f887450a0d597a12cef9bda224caaab8a8ecbd982aa923fee4ef4f07e28bd74b4e2c8b0a5ef49674b749513e30b1a039186a3e35269a78b9f7207db380eda629301d79a07b27cf70748aca38a1a0b79dad0aa75200000090655afa7a84fdf37709cc9c7a283cb30c178a5446e7d6f18c54607be8526282f15985a92beaa8ae01cd798f9e4cffc106d86021e65154cfb1a47bbcccf2086f6a89226570e73ec7e47a8c842abfafeace2f3c6fdc480aff2705484a3fc91f494dcf5c427290aba416a052de63ecc50fef164919d1aeed69286f215447f69fca971e4a19421952128bd7bd133ba3a3e8a50000012800000090b00d676b1075c815808ac19b9d44e1b76010750dd21adb26c7a8519eb4c197de00b568d2593c1a4c21779ca05f86f074c7a46fdedd80c67185d13a86ce2d524835b8fa30c9b61dac3596b8717214dab4005681bbbdb96dffbccb423a2bd9178ba7075084be235f11da12d99caf6759a52e106f8e5e7d0f016240f1a9654c4750d34452a01d73afebd928384b0a95c0df00000090b770118ade6cba6553985ccb76698268a91a7e59537762d62cb83b5e2fbd6c78fea043ebb9a51314b8588ff85d7afe03837cccdc4f6518e4e51f28d22374f5814e7c6b5648c0d06563333f8926d162932a7f3a03443f27b002a613ba3efd51e22527ac9fa9fa7dd1234244612ce6b8430a02bd9ea02b7e86c7c9591d9086fdb8a986c8fe164fe57189995af4fb8fe3c9", + "calldataHash": "0xcd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", + "decodedHeader": { + "bodyHash": "0xcd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", + "globalVariables": { + "blockNumber": 1, + "chainId": 31337, + "timestamp": 0, + "version": 1 + }, + "lastArchive": { + "nextAvailableLeafIndex": 1, + "root": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02" + }, + "stateReference": { + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 16, + "root": "0x0a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51" + }, + "partialStateReference": { + "contractTree": { + "nextAvailableLeafIndex": 4, + "root": "0x1a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb1" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 256, + "root": "0x0d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 384, + "root": "0x01c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 96, + "root": "0x160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2" + } + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001cd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", "l1ToL2MessagesHash": "0xb213c9c543fce2a66720d26a913fe0d018f72a47ccfe698baafcf4cced343cfd", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000201864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000010d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000600a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000101f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090885bb3dc3c13f4414222efad9b9e5e6b380905a8824d722dbceaeae44dc9d8f03a7be52298709b7534e26a43afc7358bfcd2bd4fbfc4bda7e26710ab1adaac6ba47592ec789cebf41a2a12564c39819917de5950bb458c1f2a5029ba060e2d5d7d84910480c7f4a07c46b54ed36598d30818e99871e918f8c1c422c04d3cc0c6034ff9f034e9052f51c041dde393a1fa00000090ab3f3be064898fa1b6f88b2ff00e4928b3c5074286fb4a5233cbea038470b013e00d97e2c5e8187839db90699ea2e69acb15662fdd32653d66d1437c02754e56bfa7ef5169f00b77081d637d027dc86f1878e32c0f534c68a6985e5154b69be52d4f03a2b62fd36899df06f76bd7520724dc30c460bbe024a21939761482bb6c41ed47aebb56f42ce7d95bf792ce12a500000090860b182ed78831afcc1c928be192425f7ec533406dd66e925bd2b588cb89b642a4f15df2f79a177ce5a4aafcfba4bb8fb07f032f632ad17cc725e21c1bac538ee73ff2d5e77efe715e12af88d5453b690d75b692974c3327b985925ac3abeb6c12445c6c4d1ec51b7127cdfc90c95b5b23e5cb8afa1a351a612293ba6272fef9f8e3f82f138b961b0f76d7a7c916e4c7000001bc000000908122eecb03c180f9e3ef677d4b29a99dc26c88054d0734600668041ecec1868207a66b01b1941de1354cd8223c1f4ea3536db5305c02ec0e2a0e2858c2f4dede7e33ef9681d52276497da6e65343f0a1075a16514a1d323e1071ceb7439ff2ab6276cb29fd051c0eeb6dd7111e0e87230f46712569040b814d9be577d854fd02f917aff118f5ad14a25d05c7cee039e8000000907f9bde742f35c0ea8e81b656ce7d988a9d1ae00195cda79aaef816dd37548f9f2eaa13d46c5ddf3124ca0fb34fc8bff0b45e9894f8ac16ed038ce9d5722d6566d24f9f57f486ef0829c9b741bd1c96ea1c3f5c3f5a87b843d9787218ad4baa5af887e172a82b016d8506f6c953dc96581ac245bb267cd88bd8bc7e3ef9df7ccbeacb18bc1b30534368589e4f570a657d000000905c12faefd7a7cf65d6475e18ee99a942c6567d3473919de144ac498665fee34772f883fad49d250c33d1ff20fb1085c86137de6471bca35e6a5f3f7dcf8b6975e2605312d9fbf714a1cc9a58650c208016fe29c4c8ee1a0c371dfd02264cbe8642ca0ad671b2479af0f5e0a749d8b33c0da2f7e7fdc61947f39c7876fca728ab5fcf1761bc28272190b3defb9a9844f4000001bc0000009032d67ec8b6e9dc8ed89a3a411adfde6239b51667715c9c72cd1495db5b7b746380cd63f2f9188450f9fd686eb793b2de5af97357e09da777a8ca0c84995c44d2ea03208445c25361cdac650588c6d005191231bba3b350c452e6d76081873b450b2cc63e013bdebb1da5a9c18989f12e15fea068d56e97030101e058be618f286cf66719580c5295c1dcf3de827aafe100000090c4c9ab378f4957c8ad3b68e592e857830ac4c1145a8923918ead849873221ef658e0378e93fb196ead3eb080d1972fe4305ccf439751f57220004c8d3aa8ad6b686249f4687f5631902fda016643994226c6c0a2844bb06ef567624f1d06661a640a856e863a38e568b21cd4af6be791029fb2443d6e6c7d660ddc85c0e8de0b2b5f0a148ff426f1115974672f73164000000090c0ac0d3eadc05c94a097a0a76b9a68fc58d6ab8e66ccd223ed628f6950310bb2f369f2f178b3444802ced1a56fa7f57cafbbca09c7ce687cb7ed3f5a95601f6d7608c9be2f6df2469cffe14cf1b13f830bf1a1b9646c29be495fbf6f801ed8be5fc9d45cec5fc743a027899ff6b362f303db01d279fd5ba05817a92d8129d004d6edaf359c08bf964cb1e5d2fc99e5a0000001bc000000909105457ccaa2ba3b2254ee3ec3f19923a82bac08498ed2016ca2e9c0bca04979fb7577cd7c152ada33b82a8e40bebe45e497e2861502176e32c51cd5b1bf0ca91851cf7b3724cfb9a99417c1a4d2d90d1f3d35bb9eb3912108d1867043c38b4d5aede3570128855f56cb6d0348bcb8f52a8eff8224deb07c301555237486c0f37ddfa0ac08b0a5fda00f5cfdaad0cc0e00000090520db5e2d7b662e04f3988c5a428035b057f059f3cddb49439eefd9447458a99c733dff4b5a1702a9d392586195b02a24c5f24628d078f7c01bd4f422614bbb0c973a991475ce0ec2e678361237fa0251b16333fa4c3aaa531f98d1960466449964e3f5ba7ec75bcf322e87a35a2230a0ae9882a05db7731b4c6ed6da99efdf06c0815623698d8b71ade16a55ffc067200000090918abd315fde38beba7259c86af4ce352f12f1444481b6c86c23d5e2cfc4d98c90b6d8fcf7c30a5fac7dadc86a5ba8a47dcd1f3b16484812924f79a9e00a9633efa90b62f21bed0f8f3776cf69d0607b0fdbc918a51316145718e4c48dbc323e187982d83abbbc1fed4fbe2762e72dd91cb8f0c539b4ddd4f9a4a8ff6cf732127a0970de63718120523fede4ebab7f14000001bc00000090e5c846c8a6bceba584c29c0fcba48265a2cc20f6d982541b13654a15c1dc00c8ab9c8f9c52fb6ace413a95b1979eedca8d2d2385a622dfeaff8402ba4413ea16b78733f4e43a82bc95a56ad1f72702a72e025499b65d4b2e326cfdde34b3092c9e1c3bac6d610d361ce7dfed8f50d5222f161e3a59f5747a8183cb9719f9ffde5ea72eb1c5bd561c4f78f3c05614854f00000090e31a6868b9f9f24b79786034d06810d25c594ce48750e39ad996631cc6c8b4fa9f230fcdf32e1ad67e9acb892334f24cfb07267de8cea562a28788554cdddfdb323b4700800390c25434473988c7a1520c2bfeb394e512109f0d694c4b7f2d6e2abccbe414cab48a25e8de986b9eec3f07b0575584b0b455ede60d373f90f0cd6a2cfc08ad9be1056d358c821a436d0700000090f9b974c64844d04929e7f9c06b1a701ea02486bfb297c7a56f7728ef7df3a0bc21b6dabf6eca6273b68469cf0d06948166bff4c6c580bdda0d72b5a9aaee819d6c2d92a2aa8cc0cbcecdeb57df7c91740f87cea4888233cd5563a7ddad4f1e414ec745429f1ade6b2568319bb65f7ea123f67e4f1ac6379f7c9efc978e0c06556f16cc5ab6b3255f5a116d86e68f92b5000001bc000000907953bb52ffe6538fcd1c69c4bfc577b4217d27e17a1ba9d420df7a5bbcb32c825690e1b3af4f9b76566aebfaaa83c6cd22c1d27dbc979a94aa3e402148dd57399b57425f74b32fca7bf2b7ef88da460d0bfaf4dcc899aca398cfe7385d4d569da438023a5ed8a0b6c6c98b32acc95a300a9747a52cd664c6527005f2410fbf86e48135fb602da0f0e0d7857bea44051900000090a3b31666d69aac0ea75b4f14b3c9396fd413990d05b380e0ac360465035f4cf07e35324f15b51e964c04a49427d35ac6fd5db99837d7dcd05b3d1546571c15cc7e8f668ea2f445d003286827e3844ea2087b51181bec332e626019a95fe5b1e370875fc41a322c1cc340c8cfdffb068e302518cb4e24106e35373f67b04b8b2404468aa5a1a3899110061c89883d29fe00000090d1999c3f19d70a38351b00a5d70f267d7fd0e3e4ee253580e5e481cf1807d4cbca753bee71bc94bb0374278a884538302276e452e26f67ebaa2d1b223592faa44c2b85ed845d988edbaeb3dc64f2fd471c1ab57b02972ba4bff3448a513807cd17e1deb756ebd47960c340e18c2215121682c2c08a2f58c205f3dd24be3227e8e5a6385ece8905943a219f2cf2a84a6c000001bc0000009091d5467314eaf5b1accdb366a18b157b487db5445ef026a27a7c039767fe5777ec102cdd027e1856edb816f3d712b9135ae6acd56b7f80ccd23352dc17e48eb1be8e25532e56e281cf7afd9f0175edce0e51f5cdf9df26a39ed40a26306ff94f1ad73ceeecea7ea03e98b9ed0b69d4b61b6295d8849a071c13cbdd25f83e2ab9a3c1692eb19437cf4dae483f4bdfbcee000000902c6729e585ad2a150e094714412881dfeccd6d60a55adcc29b9fdfa1016ef0ab2820fd8f9231f77bcb1733becaaed726ee87c5a4b702c8b93257fb27c935be82c9dfed1b8f08d61ab4ec2e6a164ae4ba1c4b49da7b7297615009824dcbf37340527cf19158255916c7ae72edb381b76d19c20e326c044d932f963b5e49d123362ba3a165da27bf7b7efa26f10a90c25a000000908669621dc7cd48e795774a7d44493d63f672bec71988a8b652a0119101122345d4f5278a4d2c4f85309f677e9fe64375497073e4979f8b5d630ed62e8c88e06400f943d692bef2f370fd2bdc257ce2a125c6249e515cdceaab38f0b785ba054425a8a0ee15bd18cb0e1b8d91642d258b1ccbdefe5ba29c900abdc7cf8488b350aebf7296923e2e7f2fddab87acf35497000001bc0000009013e5e112b7fe339b2a5f07cad03c54af89a78e678aee76caee1996cb56cde14977c629c05ce5c914c5679145b0ab2461ce54394347072f363bb7066d448cdf6d70787f37f9d8a1ebb125d5198dd36ecb12ca14e6abe05439984c3953c86ed574bc0c8cade296aea9515ccaaf373734aa1b0474cd87dd3dd712a2371d9523ccce1d15b8702687ab97d0f9ee6f6b380ad400000090bbb31ce264b3254aa8551f77c4e15dc2356ef9e10ffb578b55a3bfcd3d946c16114859069db76a87e5ab25a7b8306fd41279dfa485ef9c1db1d5c8004d63c3f34581224a32fa05e8ef6e70c30a1a19182bd811c146c561484318b36158684b49bc0a8f633a41df89168feb871b6ecb4a2b2104c7f6e0e9046a1429a4c4ed010bf7f6661084f4f8413e60902b7091f88600000090a91313ba29284c043712351d55c47df69177271395548514ca22cfa79ded9689580b0c17c68ea59fd91245265cf933fe81786a0ced256d7062e182cb7822942ba1ba5c2c4e59c8eebe1818026b64ddd90a3dcde82e56d891fca6eaf4ba2d4aade3e96a26996f873f968bc78452f88e0411fb57ec23bc04c829c6e516d8989b853cf3072d9b16c0673e6bfbfaf2d0ce6700000e00000001bc0000009077ecbc7fd165d9ade6abc8ec7aef76b307b4f0223202b5466cc8aca4f4fe90fb52b3d6ec1aa36ce127e2e721c5164107d36be2975e0d3971c94455e550a329c776fdbbfc9a4c9fc3f66c073df1cab5140c0ef7dd2d4e3340d7f197e560996c17112346c052cc156c207e34386dd47c5307a76ed514cad3a7f59744c81c9d4a12fca48fddd3fcb143337dfdd7ec351038000000900fa810dd90147de9aed3bd9a035708540c69924bc682bd1b6c745ca73b15a173727a74b8a2de40894906a813b64960245376a7fa37c70f709f0552450ef76a5129d87870b369dd56847c590f502c2d210e9385ff9ff7e691a2abd5b6c0d96a9c709a3cc6bcfbbae261361777da8651420149af77f0630d9d328073fdae21ed6114a4eac5c741c26c6e0818f1ecaad2d60000009046ba7f5a13e47d1bdfc6d3dfd1d0b5529f4672d6fce5bb7384d19ab2a7e15965ff3a34c081da31d850786656c7af8b8a966a005c0412b141e855058472063a65e1899ab0db0d61a6b34395504e28c7b2146662c3df31eaec3f04cb6114cd8dfdafaf17f3dc1d382cf2dea579a814b57e1009058a127493317697cc37cf718f5e0b56f99aa09d5b3b8f26a02fc5dcd8ba000001bc00000090c5f9eec88ce8e5c36979798b376de2b28f9d1f2607d9010e5145af8a3ac2b0e0889e5c178be25060b061b1d583b471784a0461f9213e242dcd470a18200afc52b435d47b8a567a76a6b655924b5c2d8d209fb502a2435d3cd3e140629a2cba64126ecdf5236da4b089fa4ac315c9daa01d6453eb8857cfa2114cd3da25cc8134fb99b4c06a640bf6c4c808852b82629500000090db6ba5dfa5e3424815ffbfac8ef48fd05131be802899cec2852251c113b5eec328de64a9e640b3a243ab6202d27a5854e269a69fafa7a4d7fa960db62ae810c139a60091fccbb29dfebc4def6a50f2051e051255d552589a7b09899cbca9d89f6cdfacdda4f03ca9f5b4aad25bf947e52a717cbb1e27c6de6fa93a38cb53c6c0e287fd92386eed743b29ec85a557fa2300000090e0ab72826bfdb018ff4d03de311e647e1edf6469965bc5d2ffcd54e7167ac350a57457540af8de0dada31bc4b3ca199c9bf4686dd797c67ed21b34946ad241c5db1a87a1906abd877e7965b206b371bd0f772722bcd358dc890cb0a4707a1d5ff6590dddd773f3099b84d10f5158e2fe05e583c964cea3986aad35c7bb2799f0623ccc3666686764b9cbd53dd3f0c43f000001bc00000090f37fea372a0e4d26e6ce992dea6506f6cb992331e094da50cf92d329cad0b8e40fff1c0694bea939816aeb8fdff615d8fb41bafbb4662078337b7398a607d09c7fa8448ec27c7581855dcc12790c3487271cfb0703aed8612673183ef7d52bf2c449bdd023a9a743b7d25115cc403f181190481c74b41df64e1711b0d058f12ce16b634e23cd6b298e87810d2a1c399c00000090eaede529f772b2ba0f4c57c39e6bbf5c9e12a6258a38c8086d5de7dedbbff8306c7479719a5fe90506d0853a6f9bf5c12c45fdf1c62f7d5cebab84e9eb3eeee1acc6597e29e2619b96a7ccea4a9dfd0516bf834c8113f8f1251070908929a65e83266cf023f765a0cca29aae566444c71810d6d67cbefe9670eae9d7b6a1e57bb6a1fe6749e21806a4ea8bfca35180790000009024ca72f55751c3a2f1fa6b5ba8f2828de2b402c8c2aaa76f8df3fdb3678ade0d07b0788a3f9909f47d4e463a327b476a43acb8d58ab355c4690648fad19878ad62a77fefa8a731af94fd8f819253aaef2fdc29ea25c6d4027f1407247ee783138d98285577d29f0828092ce8a3ac13ed04afffed27a7d7f250f700a5e772b993dd262b911a9c92877ec640d9f5ac6d10000001bc00000090bf464ad4c3858c0122511935318812b1dc1db80b5cc1c41a7ece66dd0ad5dfab7ece2a9a6d3a514d7ee39a02ddc66cdbbcc1eba73167068723fd267fed815f38b52fce696ab3f6c2d63c3b45513043ca09f41a2a9a9479a22e62c45379405216747a71b6ec183f4a671cacc8f667ba09026d61f7318ac5b2253cf5d96b658d7bc3b65f67636aa573eb43c640ba3f0b6000000090fc3bb64b89c9cfb06dbe7e87bef9c2ed71c2610fe2cdef0aabb138cd39f373fa94f8e881c2c3e4365af09072249a0609fe24f34a3e8673c734414fc70fc617806704d7c6f169a61c4d7fd9ac7cab94cf1c8a9d504d17dacc3d3e1b766e29a2d03c8a5fa3c3e7e2b27062710f4407da3e0093123ff99e90c7ab2f266674ecac51df1d170c62327fe9de0b9c81d0095a2200000090e67f3ec573e658b392cd2af096090399240c98c2466f8e43ea5b8bf53ba1e940fd98a86bbb52540fa1a9475378f8027ac77d6ba02c736f758af04da2b72ca496628260263774bab8c3a81e23005a2397154774b7846b16ee66d0747096517db61c7d4d1f175573402e14c4394a87b1f52b0fcfde42d9382df89a7425f41484cde25adb6e0b1eb35edecdca08f00fb9d2000001bc00000090b92ab763c1a69450d42ca10e52b125b9d8bf3512fa879d1c5c9a119892600534bddbd15de8fa6edced3fa0769b21c711de0813398cd3bd5ffd439b24f9db1a24e03441895911fc88c04ec2712b4d2f3c1bf2209e64d6e55b9587360872f1226bac301ae33122e23d6d59fe0120e6ecaf01b2e7887f9a7a1fa4623ef0f907ecf15b1e0b581d06d90d2a306c831d58d43c00000090101b4e9c41460d1748945f6074788e6f58db9a4df2ccddaf42c6f84f25432c2da25049fb00d18a9d5b51240855aa45157630078f02a5994b984a016edf39c7b241b8adede8c713ef1eab761ea4a2bac521fc229f1e999d246e8ef60db122c4a43541fcc0de8a956dec6320195efec3371730352fcdabac0f9372be84d1fb7e831e2b501aeb45979d1fe19bcfcae3b9bf000000900d157efa8bd9a51be9d467c060ab5746781db4a3b2e061380eab0d4cf66010d4cf2a401519c37a570508d5741ef30989846c9c53f66600971bbd070ca178ae00a55f3408db0059da1a2ba3fbbe619f7519156ea4a7d89b9e516e59a14f5f56af35c7f073610680b3a6779b708a7e18b425ce215d686bdb0d748dc2d7a5548cf817a16503766b44c712f4ddf321efebda000001bc00000090432f1ded3d44abdbe01ed2e89bafbe1c84ce83fd12888412eff36d79004f12d8c5aa5cf6998f9602930de2099096ec24b72003891060293e56ffffc61033792d6d4b556e0bad2e6624cf37ef92e4ca4f05773137660f3d57533cae96467a188770972d3471eccf940669dbf863942beb0810848d08161aa59b931ce25fc1df928083ae06435d59017038ec2374f54964000000901ec087f95def019a6d27fead9b8c62367f0a42f0f824302b6936b4550f3d653f374696ead3bb36a59f5526dd24cdbf8bf1dfb08e8b89bf89242f1ae76a79bd1422dc52ada85bbf65708c140678e3f7222d7b7f8657d5e96d2cbb68fdd06d45c0dfb2829b8ff69a5da3ad31f00dd3a71e0b16dd7146a35747ca925ce14ddad8160d540aa2803897cc722441d3503b602e000000901c3c14c105ff0677c2b7bf1860de56d70f741ca09b49f0a839963f236d958d7ebabdce53d6da91b119fc0da0f8a7d3918a9fdd4eae1ee313fda1566c0c3c966387952db18ed31c0f77186e9b0c67e6ba1422c74690427f65d8f9fd25f55be251beb77b6fecb3f61c9f7b2e3579a0a1ab091f4551d92a140245fcf2dc16111c828b2736d8324e00f64efb617d64277fa8000001bc00000090348b7cadb6aa9f85cd97001f740bb85feca57ee53572b9a56a9d9a1e4e769db7ccdef3debf02e57ae0786d27402dd9a5278ff5752c85b405a846a990636563c637b5236dac5ee0e272df43c5a5acd4911e9f04d01ffdc8819a526b0b359884a573186bf6c969de2c6d9a11d74e49d2782765e69acda1b5b090aa61c13bb6dca062d9fc1a09eb879a3b58ccae8c612f210000009021a8dd1b296aab46dbd0d7336ac88e50a8274dd5a227635b585d31a0733ffe2057c07c200b964c1bca0a63c793094621216447b62462186ea3534500d23d7b8fcbe56fdcb5a8e22486ceb3e62b9e68952846eec38b0971ec951954f28452f406bf260528914f82a7b05ba8737c46331611597218df81e21e78428fc58da592f9dbec3fde5615a8b66223b76ed24b78d30000009004a7b293f9b9a54735caa22d4e730822f32a72ac3114072e275dd2aa3e10e71c8d89fc3d41c10b7558d78d793332586cba01ab7c771759ba407af43201460f11fd189b726113f86bb9c4908556e7968d2ddad4cc3a1234106629acc17c9f1fbb47920d12b6260e26f59332ad056c925f23cb2eecd2773358dd743d732f11a094bf601aac5fe92730befd8d4b017fe1eb000001bc0000009050ca80f334bbc31242863e214c23ab508ba9f4b2f4c6c318ce7f7cd303e34aceaa8e543831819cb1575987598d38b426834612ea5d161657539e1ad5ace79ad7acc9622166d5a67941eb206c025b0f272f9967d93c2e40396574d8603c73304bf7433d34536dfbb635f08df960e394f8131d2b030dea5b231f632513433ec71743c5e0c9a837197924c84cf3e0042f6e000000903e6b7ccb8fb9aee6edaecd83fd6a465f54a9f561199d250c36097a23c74c46c22bac99e6ab6d80fda580c6d9c4a42199882b3a4819b2907f18cd651afc0131e780861448ae81e90c4f92d6c0957395fa0586e104bdcc8fde67272abbf2fbb93a14609d947bcf55f89cc334fe91c6aa6d2589c6d4ec464c2287021fc6b7b8ff630688c8a2d0373c2587ed1b2e3909883000000090d2c093b2f85d296e8671bbc3f6f5391f045b26835609469fd6a83a589bfa2687d79d63e602d211d6a8124d55b55bee99099153428b6d511ff66b37f3b3ee2d15ef9a80cd706fada648a7d1d937c36bbd2879b1913d2d6db30feaf51a63bf177c92a795a848069bbc68daf69319b60a540b37419303e5c8d3cf7975b903de8af1ab3dd703d8346e7ac301fa14c3e68f3b00000e00000001bc000000907ff933d189f81ea3642beee9b48974e68e9e69542a09eebc48b9a4be59fc6fc87a75474afe61162e15b85c0b3a03a564070ea4503cdc512fe86696d40224b5edf6b8b3de24737d5e7b35cf5fe8f0c96c0c6c3ae41877e8c0e1eef6f00d3475ed9ce518b73c3e91279bfb7e57b8c995442551cda3d4ab1e89d4f3c6ada8086ac7904cc2150c135f39b897c5a82b70339f0000009007928174e367b1a7cde51eaee56a0dbd0e65af2e74364e419a7d2b371a3eca01e83b6b2f7ca72fa58de8ed0c1c726cdce8311e9c4866cfe27e6ee7edea2284c1c0ddae1cd9f7a3f353d8b8167cfc9d2c2af85275570b040992db2aa3300b2b3071bd479cb815f3e0d6993506f853971d12f2a9ea933931b1664ee07d80c28a624ac667e95102856051f6579f45009fcd000000905fa9a3caafbedb2619e3affc97847a4a080591b04e2cb361f7f2e55a7f1295940ee6f7b6dc1132f7bfc4805c3abb05766bcc9c8f35db538338fd68e4a3020dc785d4337e2f8370731f293e97863207be11243ae71cae03139efa9e54d811dc21403bf9b52f0887fd95b30e615b85fb21007c03a84c093f0517d973a119e1619e7caec744579ba37f16602079745f4753000001bc00000090987a25b73f65f2ffb8491c4601ca2ca3304de1fac189aec1aa22e53f06c4b325d17e1cad996a33a0ddbb512a5e9529ae65a2d7a94c349113bb530728d589f37a1734f9895db9edbb4e507af3f6faa6c02247fa80098f678f699fe4a4b43ec18dc67a90fa3f974a9558a24665d7a8d8af1b719b78a52593fa1f42a60722695eed537deacf71f4e4f2613d391b473a24e7000000902486518492ca3d9af84919350632ae15ea3acc2e403b1d03598d2c41c7f3f49c7c1b4cd39a6f4b5bb2650348bfa507067094fa53ab6ee3cfe966cfdb7f8286e3a2c4c54bc0ed379c2509da262eecf1e42e60c8e6b78f6f6ff676cd1bcbc4779f4ba311444db1ff73328425081350f8c9265e22695d968daf3961d4460e192cf7e0dfd4ecb35987f26f15ddf384e9786f00000090a035e12deee24a5e08a2495866543f5d3e69aa4dbe1833e5f03d4e31325cc98f2203c077dcce09b9c4bf4c773e537169c0b6c98ca9f72d0f4cf9bd31f474acbf85aff1adbd726e06cb8ecf50764cb02921496a96f309573f72da144935092109f981ab64fe93baf54e26c3a965f3ab8c1251dd4be4dec9fadc08bce3cba9fb05f437e2149251cf69e5ba957333249a42000001bc000000906e96280f3810327378590f7e808274f9e3500a837aca9675d825305bce9b99f1a554c9a06ca60c373d827a468865a127d26eb16286e67959d066c892e4dc7fc367ee7298efe9b66990dc8ceb62f4c126214606c6e4eb48a3c1b4b60461f04382b583553c15c31a82814d751d3d84762418e51f1276e63e174eecebd3356a6a24c22ab536f8dc0c0c119d384c8547f17500000090158506ef9a1b0e59c798120e3fd2aaf1fb0fa649c222d9dafb90126823897979902670747dcf04fc6c23a46c76893f2c27426daeb5cd749f2588738192f84ad5ba20336682d83b768c95e17a5556f2c106b0b8a13199d07892072b6ff24437e74578252bb37121b9051e0ea551efc0b51d1d6b26dfba5600d91aeaffeed73fa2e9ee594fd2cb7047aa4d2d03779152c200000090be71589c5a47bb2106bb583414f6c299d5334de49e1cda93e4cf7aba43b086e1452202f154f198ed55b740b8c6c147ff20da82092899ef2f5aac0b1903808a72c437b275b272080f6a56d0bad9bad3b007edcc2c7789331b9dea6d42cc66ccfab47957c65a53147222b1a679f97856fd224bf31878d31d399b7f807405ff21bad369183fd43539a96dedf0bb039b1637000001bc000000905feaefb78dad13f506904a0a8ddfcde668ce2b96c854e90217fbbe08c52b40a69000d08df2be4d438d0abfa5dea2f92e248549f578c32513cf9a5585c931b70693f201544a2ece54ad15fcba157c16bc02ef6b9bc6d71d434b8e392ae8daa464716b56d0054910d56d8befe80cf6ec4f03b982348f197a68fde937b72bcfaeb6feb679647050fac1c457f1a21525114e000000902f105a0598720611323092571c024ec366dc188231287d98cfc8733689b76c2e0b9ac5b0d9a1f06b14a04b6521db798faebb482ac475fd05515900cb706dd52fccf94e48e6f4c047ca1fa4b1a76ca2450554cf084201b58d05396ebb16d2a727b488cf4ddf54adda4fc2d77bd8e8ce1e1f4189dc56924b2474a9f07b677ae53bee5132e03507a3915493d103818d8cc6000000903f23b02b0b2c344563356dedab9a1822bbaa38472671f66aa32eb96ebc7acc0d9bbac392717301706db1ae2cee765b7a4c6b4bd4f483f2e793c04a91c032a490959f1055389b6e0de568be6749a355432d80e888df790c9758ad4d31944b5283c51f6c9674c637af6a1d668000c91add058df99de856af3dc222de6a7235c1558c904e6ab43eabfacdb5e899ef3083d4000001bc0000009042d66efc1999d9cc3a74958ebeeb00616575c07339a9b85ee9ac70807e2c26f57affd7c8b975b17746a53f38b7291fc0e70ea60b87030aecf9fbc56f69d7e16709a7b0573f241fc0a381b1289d19e9eb08befc4bd29a5c80abc3789ab4965198acf9cd2d316eec45341c852626d39826245909e10a630a5409db99b1b723784a9384c71439590afe2962438264d5bdbc00000090795f8aae2dee0f7bfd1745eb31ae1eb4a51e707ac4e9d94140982969b9d87f3fd708577d7e1432841eed2000242ba67b5e1be6f8c749fd30785982548a8f7a3b96d50175a0f621d0427f4949673736d2012cfcee5067706942f7731994c88fa108a100bf9bea62afc32dfbb40740de802823d98f4fa9d665bf042fa79949618d06c6dc2151f0b6d240ad112107086743000000909f6e5df2028a34951931c049d19597ea2889d835811dd4dcc2886c68679358252fb69433796aa7c29c2948faf8fad1a2d41000f21888005ad4455d7ffe096f9b6d547f99e7c98a2f48f708045ec341342c0f7be6683b92f84480220acaa5bbd233e38ae3e6c4dbfa3d68f0b3dc534c4d1b3d4dce8e9e49caf5d32332043761859db4de6554bd05994282f209e1547c35000001bc000000903f5fc4779ae15b6e4e71bc5fd54a3bd1cc02c0a6bc36fe912017d61af548dcab6856747cd9a95cca8c74f7ddeafacefd7fad8bd40175718b52e50bdffe03c9ade10eeff3951530318127a035b5c254861352a0d60bf8eef77a140c80e2bfd6d52c2c4fd3aca155b8d7b7c9c2c94a494313d812fb44147d114900388a0f453f393a7acf67f8b2147a11cae5e3a76cb22900000090e6a39320687fbb56c5535f28e5191e44fc59eca93af556579b80b8afb40b074d0d6106ac199fc63738eb9e96c88ccb4e6767b5fd38a84f2beed8ffdd55dc4f57aba138771993667a37c2077c47718fd605e755dec6336bf599c1b293fdc517946add0f7b491b95e50ddb417a111d70a800f32c920dd2bdfd9b49a93b1bfa839af68068cdd7e79c823125afc0771b45ce00000090124fdcd9c9ecd351686468b9553806189382da42ddd3b9f9a5c60e57a3a61eee8238e5fe72fdf1b2cf5dadadda519f9b718e4e8630b7556969ee4561365d02287252117d9dac2a534de6890b0b8986d517d8483a2cd815ad35952532d2cd0b96518b05a90464cdd86481533d4396a4ed1780df72d871c6c60006be9f461ff8e072eb88e21826eb57d95c35adf012b193000001bc000000903dc8b81c61e31e46df07e46f78f0692c46810fa584ce4a5b052ece068582a9e2d6b79a38a053988a91b3683f9b95759c253a403a0197f168453aa3bd6111b92b7b74bb832db54df1970a7c85bcdd0c0611e0427135ab6ad2f65dcb52ed33a8e4c4cda1466ad7e36b34cf7e6dcaad12352c8180d68bcaab93c2ac042ecb2090cdbfe09c14cdc35276498e109ac3fee1950000009057607ed1d961be7596f94585f1caf398aec447c13efe341f9efb5541667966a01ea7ae8f68b7c331deb863dbd5377e88afb701d53f27587d33a9d550bfa8a89bbf64491a6c75920e702fd40e1cdd7c62295212b7fabc6777d6398f10c2e26e84d9fce24d790e063b3c45ab10569f13ed1a50075f5eadabe86b9a20519a718d04c70444b1444577f9c66d611af2fe6900000000902fd59afae3531c091f0b1af527123c72a9a5866d71a539f4ec63a92c17f90c29e8e216cc6613ef7b2511a49b0ee30e5fe0e49c3e4cdd715aa1c61648edc0ea63879820bd31c8160b287c9bc45eb199fa0ee1405065bededcade7d7483faf26758d8ce230ecaeaf050106dc489fb3444921ddb4cb2ae5a99c67c5f47ee3146af7507cce360b312931ad00d5c9853c808e000001bc00000090339261e4bc115373cdd81aa97f634f5d7c6946f2e0c66173e0e92cef5271058be9398da5720a2990533dc29310644a1c9286e040cb2aba0c0bfbd9a9aa0dcdbaf3d4f983c1c117493a668dd0f8587d1529b6bf45ac12dfd898adba5c8a707187983bce68f26569352a64ca11fdc7c00a2f5704b437401fb50c93bb239f54c45a1a01020d6822ecdc52a2ae9b1ef0f19500000090c62ca5026fb3f06579914b1bd762c2f7d970dd4a0e1ca53a932bdaa2ada4669dbbe834f155ce915d5b5f9a95c4ff86dd38cf63d4655cb325a96652ce3239ae46d076d8a1e42ad65e1605868fab37c9e9271c4e1c60f1dc489ac1a6760a4d65ceb788d28ec9f9608f6b6b51b669ed7d7d05a68f00bc45edc3bbaafe8040eb003240d829a7ab5abd5c08b704a133c3da1300000090f6aabd420544a76d49845959ab8a7446907c856d36eca872fd03825af49ae1fd624980afbe6cbe8545c9b19f2fc902187053e898ef583863e23b8d75b28d53a589cdd8cbe0485d06ea5764af82c0b50b096d432d56165bdeeed573899ba5e2e54c531ab438fa3e04fab4dfe9c5f33b49029c1a800a3478d456a50d1a65ef205f067a50e14df920267a09da86d6b5a60f00000e00000001bc0000009081b533c19f9ea09698de206e7060910bc57dc8d813ba6c05697fb8e678a5400cc945c5730ddf55b66eb9b2af5d19ca0d2bc1b2cebd24f6d343be3df5124118f8cfd30ba83fe191b2a71580c520d9bcab07a662c630a3c38b094a24dff8edd325b941ffcfbbf5ab3b2a6fffb34e80a2c111e78d60dc5da2f56c5bd8aba5ff575fb54cf015b6c68249abeb3fe6f382054f000000902d9d872378e35007659a028b9932bfa562d5cc9497a290efac692f461e15ca15082e89da8fa4e61a5ed05cb04a05b634a29b8f400eb0141fdd527417db9abccf04983ac0cc3eaf54d54188c99b1acd002bd34173e0955a2070b01c4855c7d09487343c19814ff57d8f6db903b0455d8a1c30b0c4d89d0c25842c00b83c768ceef639a36dacb8e813496d8d74a7aac97a00000090b3645acab7284cbb76e855d65ce1a6409a976ef7eef84076ff3e9c81e082b68f6e30a2442cc432288ed3a8ccf1dd9c95063bbeb9de5bd2c4e0c9ce5a0c048b9df6149cd4b6183894c68189e2830cd82006351d570efb7f797b2d0a0b6f6121d6e4010499c0e923f04e469fb7036bc7152325297a743f2a24c0f38abf0e07675f39c3dff1e49558476ad776765336afdc000001bc000000904cfff83681a7a5873f438da49c480a564760923da235a88b18ec0f61dcd4dc60990b054436b66db9ed6368151c5da1a23c65f0f7f411896bb68946aed5c2abb6dbcdb199ec828dae21c34d70beae85101e4835377c3c25b12533a5b27bbf38a35047101ce00ab135f116f1927224c50712f959fef1a6c88c8d55cbe7a55008ed10747260e702f52b9a548305d4b8329000000090cc1c0fa87ad4d63cf26652627c40b5c54fed5804db179624bc6acd1ed64062e99e50275acf40f5f14f636bef91f5bd06d1b53c74f041e2858a1e6be62e32f872c9feae8657d19f0a5f0d61e28a7cf10a293d2f3d7669c1f6b9239f3e13660638daff0b8e8a1e3b31c1f36b55e4ff00741a54f7c156ad4e5308db482411f67e3e5493c930f2b9a41cbb857fa021421217000000903ee0b537aabcabffb5be55ea148e36d54845c4c184afc6b82a6be6514ea76c6bea77eec81579c5546880400b75134aa330ac5a6fcef933c3998b1ce6255e0dcac2a1d350d36a93c172c13185e0d387860b5de897da7483b22fc9dd4f2cc55eac643f08234737c20c67b2c58d3e208dc226cdb0fbdd90d3d00ce2373d450e7bd9b0296a2cbdd5c1dbf022b999f57ff094000001bc00000090524ca07fe30c8c4b5ca4f5c30b19b26f5d48a18abb3018c3972f1399d26a4920ae9cc13175fcb5585f9a3de7fc5b93111f91a81b7341480c5405af4fc19b186865383120286d32b59824eb6858671f3717a9ca67468b73035512e400896ba5c3da2836243fffdcf1abe906989708889223149110c40f0190231349a29ea1fd5cd90d21b968fbe0175d12ca2e91c7e31d00000090d2b61f4dc7005d290c3bb0e2e29320d8d4f78f35bbdb039a82e736fdf0ba077ec6b61aa79cb4f5da870ab4b09e9877ebfd034099cd674a85b9e3530911105e7993ef21bf6a8c589c710272200885e0c524a40802bcc072e6d43ddcb05f118b4b499104df714e2bb3f8568b16b54712102b65243a7aee8e410875ae13bd78e8746955261742dea8e086b419a16ea822670000009088c521d8b967b463a34b682d0d95113ed739324461bb8a24393bf3d1e34805e1bfbca641c585882c7e7b46905eb52b4588d6550ba0317f180495ef1e48e5e1e2f5c85dc42e88c076803d156a1f98819321e8d52a0b6be6a861494767c0489b704db84ec4d00a3d01466828a1e757ec200a5a0ebb0da0a9f13d4e2c519f1bcb03d1384274c82cae2e4e6e0accfe245edd000001bc00000090ad5652c5b40a2e0ade1c6726b6ac76cc768b00d45a9cc1ab4554afdb607301d0bc099db8723da2dc52734bc4927cd7b335233d27178a21b613dd59435fc801dc77958bfa25910b8063aa34448505d19d19933ca47318945bfa4d6c4f41369a30fe64be98673d558e567b90441c7a147f0c95e731667b7e1d7998ed3d953f22b291bc356abdcd73e7b9039b88b2d74a67000000904780b45ccf61c3de2220cf58ecbec5dcdb5a3a443fa0b7b37d702fd1b8aa8e48ea26ecd5dadd864592c64004cbaf9a2805f25689492d19ad823534a86c178ec191422bf60140fc122ca3d93463c5d6af06e98f63ddc257026763032f400e637b71dcbbe005dcefc29ac33162d028af0c2acc579b0a8c35caf3e249642006a1d68758eb5ea7a6d90fbcda5550d71e6bbe000000902489b951c1a9b520c4b7e5011fa47eb550ffdce7065ea6c13347fd4183fcb7931bb8edcf70fd8e8de3c587072c020cd93bfeecb8fd54cb0a0f8c4e1041bc3bbbda63d0497ff92c489b047e4f01e670cb277dc0c721f2831d00c27d75f5a2ddcedacd04286ef7519275a2042e992edbbb28ea02edb47f972e806a903d52a11fd79d9cc29f0887b9bdb1f4523283db6d55000001bc00000090f4ff9b70f9dee895ca55478330399090da2c9bc277ad4dd105de8ee9609028d4c74239fcbb7e86a35c06e6fe42470da1d53effa1e4c0d7f39710fa119494f6e649d49e2979bc3be19d615c9a953ef4b127a887fc9dab54f3f36cc232325652765cd7e18621b50ad412400adafceb328326fc36c3196efe68e522b61972990c5e8b95eba426282fabe0af94af7c06275900000090bd9fc82eeeace4532ee7da395f58e3deaddfe3deb5e72b092fab45e7626ec3ba338b93e1583061cb06db482585b5469394466f1144af00b45ada25286e855befdd67d455ff4e335492b0b2a5ff6cd8d3259245cc0377625dd5e2e72f504204885816b9c84726056eed1cf72c70634a202937b608a634aeeb05bd136bd9ac24122d8dd3d100b88a1c1d1604350423413400000090f80b9f9afdf659211cab55dcc889930e2305e6f90089afd3d6ec0b7c579f5943fa68c8be02ad5ed2f6a464e6e83f86176337ba8dc214d0b78720901d7695f77f2c1dc82d3829f4e8a89af6fe6a0678c320bcd0b21480178e196081f5f6e3ac2fcb59b26dcf0f4ddbf97cdf9e037e235f1806db8666164caecd51adc6bb7909dd8a1b9e1b3dbfe80f92160f877d185505000001bc00000090ec8da01e88882da9805de3c48de5120f670f68cd634ce5a94ba8ff7706d5457e624c85363657d934a4c129aca182ad9d0ae52f3afc8b9621a2665ba1c1265280d185e9abf182086840e1a405ff3055a70e5df2685d17ec0a168af1f16c90a492a241cb7bfc1276c0856d43e8c38c8c4714928b2ea1beb7cba5f50e67f098fc79dae0eca3a309d824110502b53c146cdc0000009054191925f54c1cb204dd477d4af343a48dbe94262b52f10385866c5328ebae400f18c388b729cff56611ac089091d8206ce3661090832cb66f2af785d014509eba20318d49530be6b830681adbc5b79d0900bf101900f0fabbb597f5da57b818749748314bde8e747fcfd31d70b582d20cc942e31e78b4c565ea5acb9f955133d3a62b5bd24c8d04d635a5aef01bc1180000009000db8c48c3d6c782f324829aac6a809e6445a3b95bfb78f00b8731a237f3e3df79a97bca9dcd93920695b9d2f79860fe42103c2309e090123f15fd626817f554bb3cd4490fe27a01518ab3f9952c5f53296beb7bfe849c319322d0973c865c0fdaf4da5313676d1579c89cbc9e2c4efd1ff5feda6ea27765bca2f756b2bcf325d803056c0b1f569d1a8345f0efa03ef8000001bc00000090e05f7f135fbdf5012d8bed12d4603035f483381bd7ea8d59fb56601b2780e82a98163fe27a804647bf6155bc4e52ea317683b996c31b3c9541abfc935232f9966c9e87c45e75143235c7a8ac69c4366c0f9af16f9efed127442d0e36b5ec1f6eadc2052a1a99fbab79b5fa6e48082c5d091a5f81b7d8541c46bbffaa596c23f3f4daedb33fee367b30f20c027bf7973900000090c75f59b067f17eab4f3b2707b7cb0e3b5434055cd2e7c69d062a45e6bf538b130276f40c54b86bddf16009062c6abde9e796be6311d599df6ce74e37c0c4c75018064532454c43f4f2fe44e41a827a67022434c5dee8b33f66dfea2b57602e7efd47dd73ac2b620ac8059e04c953ba111c014ae2bf8bbc25c954c938819506a534e2989b46d54a12e3bddb3132851a8400000090a276c465f3f517c61b4445494fcaefcd37520602b8e96adffd9275f4343eaab23d88ab0f2ad91b55617c695f327f92bb0296abfafa615958f373447432dc6bee8e383575a942b13de82d1efcebd16d792cb6bdf6050605ebbb7bfea70ad7c64325fc23bd75431fa8dc1b15df3ddff11a09559a9501f97227e77662fd0bb22bfe0d11bf44c6b28324f2b2eb6c267c4604000001bc000000907131a50ebca59ba304aca4fa044f4ba68ad8b80735a8fae6d5f1c922132b5a5c3730c328430149c093ed9f0b7c5969039e1adaa5a52d4e846a745b98f06697c36d51670c9001f50f6c32bfd2960ce0612df65bec6fc910bca5289826210a89b272f598ce3c9ed0530bb5194886ac810d1a6a432785d9f1395750126d0757b29b97461ba3b6bc46285e6504c98541b3660000009014f5e80a2555343a6b38f0606cfc887234564ee752c0abc4f508033fd1665cf10579390a34274c3bdad1fae0a5311f90b99da9ab14507d5f7a1d59cc41a5e5a0d0eb2601c7be1985ef8cdc6d3f2a31732c35d8bba3dd0d7ad16c80ff5b4e8bdb65e274878db40dca8649bd2bf0fe228f17ccc37ec3fc4d6a7ea8121a5861fb14edc4b308adb596dd2aff387da9c650cb00000090c6ff4b5e2431741d17f592fa5d1840cd9700e6bb8696c740c45f34f9aa293f5df8ce4d4c9b8c14975bc056fe4f57cead64cec71b6b8b0ee3b62e9a0f8cc6ec476923eb9e584eee25453ce8f10978f35b064f182025a119f88c46bb469ec385227db0300147333e6de994629fa7de26b8105f0ebeb088f2f6a5bb203d203aa527d42d0224ec9b2d46d0a8b35abd1ffaa7000033a000000ce40000012800000090c71d679925070d32c995da2681eef595e6f53e550027843489d1b0440309a69d14b229674c481b0b9e84abc2c60ec7b837c0342204eeb41512539e059c3449f38cb6e9c86aee38a28b1473573d1dcac622672420ed9e15917b10cdc7b17d38622f211054006f989079d0b0043705e3d727ca9f0d428f68a0a107c2e1915460749edc84eb3b31ee811e34adff1cbfd6ac00000090038efdbdedc31f2aedd171630eef8cd0d244c3be6dd41d4b3ecf61c86175e645fc74affb1467beb8ea69638bc1341da593f9a0bd7e53fee9354992e16d0e6587455b9487e0ae646c06d1944638c0e15c18f9bbf1b441c4d366f954032812d7ed91c672194567076732f8f9d81f8fa182190612331690e5c0545a0cd27a5c8f042642deeb56e37297fa3ccc1fea7f928100000128000000903d7982ec14d1c8358d52c6f6b8bcbafe013830e191a5ab39656154a777d45fd91aa4ae6cfd91707e5933d89518faee66155aeb4ed726bb55dcf3b40b644d53a973088ab3cfe476844a015627a5b09a5a0fbde609dad6b5538f58f50fc75c43208236a3c4ce506254f2b01fda3b15252b2fb6c6247902f0cdd40c0e034e2d36ad9c6d22589a8ad4d5a6ac22f291722cab000000900fc5444a190c9c87ae83bcb9ec3baf6dc141530d84976ab1f4451b4e0453e377e546dfff5d61057b6e57a813160a607f8c1d19aa876143fa103c69cc146c57ab896540a59e7e5978a5d33d8459ffe32c1fdc4b9a9ceeb1252b595ce973b876db1d490f2def2cd7990743e8ccec7e85651d3d222d8aaac525d63967d4a006b7992200b19161f3dc590a910f1474e70ad10000012800000090ab379b57322f587efa10dedb047bd354a431c60b74c36ed74561f0b5819690f528005216797f9cc7246b77a8aee294beb4b083bda3b83fc096590e068f04561fb3fb1f38fa25cafe933f0b3aaff547b21680fd97f4baac392cc59d1a27e71e1b22a44ec231428680618f68d8268be4fb1792c61754e1d2f021698e203c6628a4c638022fc53bcf0bda5fc667a85e624a0000009045a2fa32a7e00ccaa3cdc333d013a35d34e770390db631493aa0f21aa4512e7c123673d469cca0a4ee651b5e84998299fefbb3ecb360e7fa9d3146f7b2d52591f3b11621f39714f4398f75fc7e5b52a62375dd3b9b947ba60426803764fce43970ca4be6217ce5f4ed7389f4e48b72bc0b5516972a0e4771ec103a10d2bbd3152766b278b20d9af01e4353121f30ffc800000128000000908c5686279bb6fe6cc423939eff72183ff10ad85e28ce99f28a722711b9c0b504af55d4afd50ac935ba78793d4f70d061ffe1ada2ea223e630abe7491f547a1914e66a1ee06df7082d4c172abb8c882b21810a5d7124638ee6dc2caf8fc7222c82573e56d34d6687fb2186ed80ebdc4831ea7d86fde094f306539288c8be66b300442b49a59aab66ff5b736ec9a9a4f8c00000090498b2268c9ed61ce6bd4e8c4ef65df0a888902e8b6ca111f9e8d6688c86024d5502332d39f4bbea07e64a308a0378aee61e9bc2cfdf2ab3230e2189d1b835de9d5b150cc914393ac43b7dc7ff56745912a53d2cb6c88c3fcbf6707a485a1852935e80dec3cf0dea9f4eeb75e697f298907fc5f8636796e3d94bdf4b52fe9fc5f07b0f0a17d3f82beae12d6a2222f0e56000001280000009072a82eb0812ef2f320ba109534879244dffc7bd02fe1b78eda49a3a48ecfe03a93bdd580cc2efaa04ce8ba355d1581e8b9afe08409fbef91728a1053b5ee2236ff583ba3ee585b16fa574f9ebe6fcae7179f61f5b79931f1639ed43861f5b4a33a7c41cf2fa55c520f9358f45db7f90f1eb61866514ec833f9b0768acc8af7edecdd4f93992d70da975dff2754b7f19200000090d82046d30f688030a2860b4bc7be5a704d44673d9d6c508532d6d098cb140202a91e9880fbab548f0f87bf0f4b4df23b3a501a86e9fe6e82b896c2def96bd43d23335176e45904c77e0d78d5a8c6d97626c7f06e116d0ff1aab88106d53425ab3ff85999370c19d3dc5c0406864c74f40d102770a0d8d7b737850730d27da5f989cb23b8031e3582d418d36e1b3ab2720000012800000090450f3832122e3af03e91a318865a2b335dd34236459211475a6828a770663785a1e4eaf456f7bfea679561f461f464515d5975363b7ac762cb5b18684a58d4da94b43db18d70cdc0c50253b54463d271244af59856bd7a149fb51e1e5a6e4ce1a5c3a091acaf2f09cf8f406b37854275133242eb3c7f690cc85ca3eb51a84227cf11fd3fbc1b39f668a262f7135d6ed5000000903028f27724261e2750dce0089a8d5d86cc9168b0b1ab852261d6c09844a4a011d06f761c4d85a6c418bd71c2830d10d2510b73bcf31fc5a8002721444fe3d60e9fcb9e6da66a9d079fa57027769ed47f1cc46f59e1b9b3cfda12fa6176db2e1aba945452c4f0c47bdd1070db102802fc2f5d302852c0966d518085c89a4bcdb4f1f487b377875f6161b488b3b128f1650000012800000090c3ced23e895c7656573b5df10d3646ebca00ca93e876938a0f8e1fefd50db2d78313c4cc2fa49cd92335279ab6c501fe301d108dc6c157b8d96f0e1b6ce376dbe7de4406cf1e89631e22fd33a3b7ab1b0fab3434ba1b41db25d020027e28de7e4b00e3f31b58cf00249d56e3561ce9f024ecfe4b4f7029947569976a107c45c96402b762db2edd691bdd2e0f86c4a8930000009015474eec2eba6d58caed4ca78cf4e443e3b503deab75fe074740e9be70d68af21e1aeb2e66850a131b41a942463b1c7dd55206d0b806e91b9fc981da435b9388cc2191cd952d2db93cbadd98866ae79504c935649b6cffd6da114c067aa75c240b93b2bcb23381c62c60b2868b2a13ec1d1f2611d49506039c360a0055cb51a8aaf39449ca6ddc7d63f68aa9d92195770000012800000090865d87f1e469f41b5c31ed1e616c2a0674645917dffd61e065f9fc5e73e13a7f456c2f646b9be714de0e030f604da073b9505ce841e671c1d17ed04d46e5565015a2c3ec2729af33490721c850e3cb950bd68d278d322cac9c489770957d94705252b455022e22890eb6a7056f39d1f82eef60354bfe05cf68306fab8d59ff6cf0ab2c080401864e1a0aebbd7aaee0fd00000090d61da29674c311d4f823a6b2b097b703c0d3bc76b832b2f5d3592c6a71e7316df5085d7826fc108febc8763e004b639374380b4e15a6d483ffcf9655d16c1a4a0dbc48e45573c394ad50b97e77e8bec90ab5d3423a539e719906398fc33bcf6ca0d937297c69bd563a41cdce943732312e6f97104340fafaa6a85fae36a5ae80b81190f3798d8e9bf8bc71491863ecd40000012800000090ffb7ff7af5bc41ea36f85244d1a700a2828ed17f8159cef205d7f605c2a2b563dfdec4b8daaf2d4bfcbcccbdf7a216e61df86acf665e8dc075ee708962cd60c69bb463316ab697783734348c4ad00c5f16a8ac58d2715034eba5af99c4b67fa7781ee27405331dd58c90428352b595dc1c46a6e1f277c2f39668ca628701dc3835c3858df17edff389ea3aa65dd30dd4000000909fb2bade83a464bb1c67b00819d59e2a5b9d41d92bc7ff8fa82c695bee6d5d4339e15ba0c655ec17d28f08a7ea91300bcb4b2cbf78a7ce01464f64a440fa89b7ec80003aafbef4f5992c207448a33cdf09b5ff6a9c69c500b013d12d117bbbd23752a082e5460bd74fe7f4ed1004dc0300bc502c819b127979675a3cb875ffcaece9468836d01abb957059ddf8aa56bc0000012800000090722de9d67d167ffe6df805fba007296a18eca2e2de7a407a7b4cfd4d92713d2ea6dc700dd8f7094c8ba5241d56b5cdecbe6c32a89d1bc666e65f96a4d37144af333928895f8b055dffef4a51bfadd2042c71790d7d76a869015ddda3a4b2027e784690dcf3a0ff6ff60d4f97283a926f03a65cb73f6516dcee170e66adbc7d3274fd50f853e499e5fc1bfa44ada90b6700000090404bdb971cfd878a67852e6664e6f53ce6f6deffdef0607050892ae0b59e7d08ac7603364f47d0dfe2ffda9dd73fadce4c9246cf68d001ed163e08940f979f5c1bf412b6d9795386da60a95185cb20ff2355150975b1a25646c74c1303ebb7775ba620d70e09aaae7f97cb7b6da8f0991853f44135f3cdb67dbf75e349ea2cbf06407f804848090fc832d7c1d7e7c7f6000001280000009007b0677b6d2eabed2ec0e09f127d60d715c2ab741c384278c1f2bbd598ccf8d22e246e8852131aa94de590c0cfabee6629db631f44b5509ada661ac07987092591d59afd84b45f97e1084d87ff6145fe08881d6b651207b9c6a106aa102f66f08cf864b77f17a7b0dec92b6d116734400027074be9638080c8df12cb3aa2aed032065d0f183bbe14b94d5c4729ca347c00000090efa094e21b696a986eac21a4d86999f263b506bb4ecd2cb7a4b82a061bec6bf631f52ff6f33bd20ff552761f1333977b4b2dabfa0bc42dcd78921f087c0fe6781761b338a30ae624899c60fd69da6fa402c085e1d3de548a08c26702ca97de22d430597df903ec8c9205b3822ae395bd14eb9911c0d701ecb994b25bcd98ff9947acc66470c48b15e884aaee4632d86f00000ce4000001280000009063f77aa908b88e3af656373781fb1f7d004b3b2d44cc7b9d19af6db5389f0bfda548770c4adea33ddf8eef774b8cde6b8a7a9a041a86ed15408e108dd5bcd92e1aa2663e4a4d2d7a1aebc0f19aac1f9a0db16679dc2f2cbd378fa2918cd9a36e74bd7b341102326ae62301cdca306131194cfff96dfcb1d53e2c71cb117044cbc09bee6385fa06de2887359a23ec732d000000905623e40fdeb53b03b938ad694b8f785f108a308c20bbb3d829d8a5a7a2a51eddd2be4cb6ac50ebe5f4af9018ed5b8ae00de2a29564bf8fff18603bb289014e39ffccab4126d8b7443c2a764f33c3f9b708fb490f14c065b1dc4f24ca9725ab9a091180de66ce9f65979a81f97523b57f1956b60c989c44138d57b8ec8d3ae12a3a15f5cf0d81607f176da730c27281d10000012800000090ff9f267fe556e160594fc2a5a815c041f2c47c5d827303f7035f9abe7bb8bbbf3d234753a43861321deeb26e1bec2ba4b2f5595c8d3635ad231309784b97616a9324195c31201c6481c2104acc39af8a0a476143a197281d042a696299d4f714360c6c20076e83f441ce7ea6afa9447c15d5cbf43c54a9ff1b3d516e2cd3cfe9de5ce1998bbebfee61cff88c41cb5d5600000090948b7f4dbaf6f2831f75658a6c820c80c0847bd526d9f436dfcafa1afd370280773ba8294542e731c93069ebe5cbf1d6195f7e213c517ba069cfa7d59324f40f745efcb95cdaf858a91b244b0f1f4b84081fc967b62e7142a9d195a9559b2ab599a3099a7e125eef3eba3315a67ce5300f6c54300868c4d7190ea9130d9361696d0bd0dba43d0834e4864e3b7d57f5650000012800000090297bb554da0bdda1d83e89ac27a54b48ee1790c00219cfaa0167c77a34af87fb3fc8fc0d80d89117fe62230de3a72833ee8938d5a0eff8048662b5e45f1e57470a35614563ab65e2857414b634a07a2021a42ba345d06f798efc219b2824d07b8978892adda8b49806b449ad7c3fdbd61131bf968ba49e7e8f1eee5a7dd64f59bb2bf6cc5fbd7817024bc4709c5c159b00000090b7bbf78d1f57fd321952af5f09fc41efae936cddaa198b5f1f71e21d78cb5bd1b563471a0271bed0af52ec5060153bc033920c8c88bcf699fc6e62a5424fbc67ecdbb54f36cefcefb7ef75066f2e71481a9844cb22b4441895f7424e69327fec159373879d5c6b195b7ea352194e555011775c3ed96693bfcf1ad3eacfeef7e5ebc5a57365737bf930fd0a447aebd0bc0000012800000090c24593fe8b57a02d3470403d06b5bb619d6f0d14dc9a4c873ffe1bdd4dc1ca608e3bd4dcfb515ca69ec8e1ba6d0650eea0ad9b8ab7835c0a606ed9afecdb08cc7d1b5fb6dae4d4984bd749708e164ff429a02a143d35f99212f5ea89d1442bce93fe3d0573c30d8a62a078bae1c407621006c8b133c5b40f4451bcfcdf8192575ee5fe38f278b537d7bf5c13d3c28b99000000905a6a50f82ffa27feca446c6cb59193af6377415e82265c4d28f1f3e7215c8ae85d7330a25d7fdeb577846ba17585ad7f1b14980ff7f6762f545903842a61f6c95d1d34eb16933e8a832cc506b82f8c4404f300adfca46f0f5e08fbd0b99e18b908f19a63fb6d6f98e9fdac26aee27e7c2b0ab15de3aa62fdd415c7231a54279ef5d7cf9e405e6d1ec090f98b59a666520000012800000090793a9cd754e8f7f460b4bf5d8dde22a6993914b7cd1389eb80c927cafc5e6272d5c90b1e3170e7569de4849d183fca9007cf8b178839597f8e48d13d0e1106a56e2e69bab949edea1153a6ec3970db0c0acd29b06582e4b2e1ed2de1cf4c32752a105dddfd0095c5214b684041be5add01499cad24b94ca1ec7d78ef349051cb33307f475281d1598a86a30070a9a64200000090e14f958c3020249654374a1f3111adb7173e844f84161f5b7274baf685e12d52901f415ad5c37a1350d05f58b131375afa7e9ed6d57e4ff2dd1945069cf85e1061d4f601a8fe9541f07da351f5d212750e70edd753036e02e2a1278791523aab1f7a7237bc0e4fd798751bf940b2e02805bbb1737c9af7ebc1d5cc99e012ee2cf15e67b3c89884a832ed38ecc4822bb700000128000000902e7d5e82048343981a2bb3cd56f7377ba5bab3d4918205007497e5a2d35f849b16a2572485f42dc4380cb5e1d3eff4e1e30e02a93faab6cd338138ab142f976ec3d8f477c264ca58466d109bbc3856120e954bf2ea346ab0ba5d0c8a9abf7224204ddca8ec5cfeab4ebecb06ef6e8d8909a7d2a9ac183d3c0ea5668d011e9f443ba88e160c90b7e795e015c87105dbf500000090503c75ac6e1f0725f302316b715daaf080b3014d4b19d4113a0377e1190f27e3a589fbc8084de9b03e5e6dbc565441b42484451d8630d628861f6d0fd0c53f9f10e393335ec07594d7910181c90ed6810044f9ae40fb83e41486a2bc6d588f26bd6af302cd368a227dd511bf412544302d2cef03fa3d06b920e9532a50faeef82b6fc3f6fc8321d6375c5f8e44d41fad0000012800000090485f789e23a539a0a2f374697ddd900acfb0f301c991c436bb294e707fb652674006d89052d59d1b9b0ab424f3916cab852056037212d7c7c4f5039f98ddc5aee5926e103cd9df9eb5c061f9603a3300061b67f709c3088e16037fdf0c1174646910e2b6aae3f820494dcdce1cd881662ff7ebca23a35290a2c8dca50bad64c50cda5bdb531dec39e95a3892f835d2e9000000903927209a4951422c3bf52a29ff18d371151bf6be55fc40234ff661b46474cd7153c150d8f96de3f2e04347f2a25ff734c1c60b8d256db004f802700e822a4c4ca19bf6190807e29ff4a895706575462607aa4353a32d228d0ee50c8bb9db027eb833502cbd3207c66a67baeeb39a1b1028ad263f50ddc533cec2c9c85f606e62ea031f055efc15ac484eca930de220160000012800000090eb5c73405aedadbe78ca133680e036939f63af7bac31b94e87461e1b6a86a47d1f0ce79f09884a23a47773476f46640363ee2ace60205d246f415847a03ffec4ebe4665d8e5129f99b77b507e16ca7992673b99d6c89ae4f9565ce47c31835f3cd823f7479a417c24cef96cf99a4165e2d2a52862400ed61e097e5eecd4878cf0eb5b45b82c3d99743a298cabef51b1c000000908a8daf200a00bb31c60fa406ff9e058563793780b33cec32ca6f5d9d2f88581961c0119617997f0db7537cecb603f4e70064043c9d9da6e7b9c46c69d654a1f3d5988dd903e369e688cea1a7f4b7d09f1f46d73bfc23ffbf13d7833502a10a196f54a77016466ebbc504e64b597a139414c0550fba5a4641fce3b83d527d2d86334fa8418b68afbe5ffc6a343505dae300000128000000905d63fcd881456911188f19939a8495e6c78549700faf7a3a6458fd88ef6ce5f77ff22c2dac5f556d52a2fbd36f8a94ed113fc3f8c8a66f868988bef2a00a562a0ccb64cf4a96b27de14a504973e5420c12894e1bd5b9a7b77453596039cc67506a884fe44b2b011d431d878bd32942171a24cc4bf57cbe41fe9327e0aed0d218e032787cfd245b0b403b35dc95c4df9800000090e375ca363df3929003d884321e970109cd9ad391b7c7c74a0aa32767d7602acd5ff235211adb7ecfcda2914559315265c90291243cecd396561ca7f2635863606b657c1a2238f93ebed0f6f8de081a940e6f2007508f12def94d326e615486e0ec209ebd78ed64bcd8c51f7e423b8e7f230ff1b81954c47b70495a1d74736ac12626e688a6d67e61a6f27e51eb6d38990000012800000090de88fd7e12d05566e5cfed1d05fc6013f02dc112aa74f0ac306304cf559236489cfc6dca53776dbdafc185ea395015f0aa8d1ef5f24487fb8f99edae72a72c4e5590e672f502cbdff996beba83dc56dc162bfa0e0a57c32ddc36195a081f9d42f11b1a0e0b09b34fd443b9040a1ee65424d9272ebf6544a7fe9a75b7efc79407cf28467c7b8256e199d2643492addfb800000090a3f440389d4a74107a9501da64a3b5dcf875d9ac8c82aaeb2768d34d3326cbcba65a96a1a3a6af19c99df344149ade6782d3eaff679f3b24bf91305d10827323f7dea256ce10f5ca79147f99e893f30027f7c9ef1f0358a18d10a2d87e98e79ec7061793ae4ca61634fc15903e7a00a509919be972938ad2aa5413b0855a701b4ff6187311d7a0ac8ed66e85f23833b10000012800000090ce588cdd25056e3b2f9201cb7dbe48ec9ab60b8469d2352a35049c31ea77f9af1069f9d9f215942159ab154a8b74e1c17009059b1b8674c341499ebedc27c90d9ae8d01c7d819695da6a58a61a540f8d1e9c57d341ecc20a7cef02f268e9b6746e645823195d47650e56d88f7656efac1c7031fd2e234ac838a8309d5e70a5b2b17a4f68342c597b58a9d64270a218d70000009054c41b052ead3566e398a11e68a8139f830c5701989c97ee2a698b7796fbbffe81ee971c2bcf7033a743f01cb192d281fa215ab5658b61d5585b6670ecc2ca2472ac1a4117afec0877f5d2cefa31f4931fd46db2a037b341e68e55fb8518361e0c238727d5ed761fee9cf09f307f351803a8dc48166f821c06900fbd405731a012e470772444571a005ddb019d0c05a300000ce400000128000000909897a994ba05f0486e038bb585e5571d9e127a6030d4435ccd58f38b0f50d3e5988bbf20f018e12fef961eebc20c8debb6b2099faaba17214128d774be4377705679bdeaf86b3680b88e255d862dd73f0f704e8010d711ee89301d25592d1d4c2aba8716264154c634cf9c850f6efeb204e9c44e005d3ff9244430333bc9c1a6ed21bff816948b334a72b6a924bc965e00000090a49c50055c86e10536b64b3f7e8471e2aec4000c158b54abf089f0223b5d8d999b3983b8e6d30863dddbdf41319d572c6d2f8c6908a2ee7f7d38c97541832e5c8f6434a3b9fbc69a5a16641a33c6d74e1a48c49fd577e345b7297c15a35e53def3cb55b8b93711d09b0eb97a80a065231c80c5b0adfc02cadf986d512f2b44775d696bf1d81db65ef12bb4b0333f9bf3000001280000009053deb49fbf158b5be94cd2a438f3413b0a1fdb10485fed3388745781d94194dfc38464f57970c5f6e52cdfaecaa60fefc35164bffeb909e7d9ea6dd31034fbaad36110d8f820f7dd1d9208aae6fb125d1fc927e159624750a037f41fd49a9d1d693c87debfc2dab1d2d4e94fa8b2c34828e0298fe92306aecfd0f2b5e250837fc8d4b0bb949493b75e138112504cc47900000090f3d83ed8705a04d934c3fefd11bf674a0cd0bb9a9756633791b1b666adb87e0f969c7d9ca9c53562217d047161c226ca8f1518badd719cc009133e9033789fc38db6b6e4aa362ff305a4ce3448e0e9bc24a2fc3189ffb1a0e60dfb6141c8092992b1e06c77fe8a411a061a8daa4b52a714d7e20b02ea6575319f99998a5f7d9c1b40259beaf99f9966c2f34d1be439180000012800000090c327096b3eec0a067bfc1c20a47502c9cfd269e3d9730b7f36a804d0164fec3c9cce56c6210d4143cc6768a58e1f0719dbd09744838559fbf7e716bd092753953bfc3a6b2738c515f7e7e027d031ff432606ba6ca0d2ef38eab336924eb792cf927e016f16c0cf891eafd612d5d9cfec135e5d68f88e994382cc6f400160cf1697d689899f45bb7e3a87bc95cd7eea690000009088e9e7deb8aa55e2981ee9adb7a44612bd7169d2def6d060b6ea1f0ad48caf91c75107333919ddacb0cd71577da15cbc882e21fe80118cdfa627a65dea7c382acec3556d07bad8628940fcf895dda6022dc658e582265c71baeeb0dce7a6ae003ab314f713e0c44823c005986ee0099a15fc512a02471af9e83fa7c7e95815d157abdfe8f8eadb591b3e1adbaa5307ce000001280000009081417056f6e040507a63bae32c2dcf546187aaedd0bf2dbeb1dbd5fe0a0706cc95eb5b753a80a899404daf16923bcda2d0676cf61e4771c1808681a1d8c032c455378c4800cc646bab5d8599a3c7a9841f496aa79516daabcaebb6f15c6e7dd2854bf294c5034dd2c063fa7914c99c3b277aabfdecca615167482f218045e805035b976c285c62c691eca4c8df9ea582000000904a525e70aed1a1aac3e69072a4c3b2671e6a938d455a9f58b3c558a73f50f7f2c5d6649db92acf5cadf941ace8cef6580b2ce3cef9f6fc2d3a8f7b3248eeb04ef8046479be8d8dc63e4e7f9ee35716991ed2d0e0ad40877b764d41395e225445da6e5397a05a5006f8c00ee3b153b58f12fd204c83aa3b83c0ba9b46e6d59ae28c41bedd59abb1bc926bc363cf79caee00000128000000909b037a37d4409a5181e52506747ec1bbb9036c881fd020d3bee2dcd612e68dc1fb0b298bd8aa7ed2cd5f882e9d3246c91fcf55db2070d09c33a6f1219a40e33c47dd91199468f261db47a9f64f210e2e06d88b209f6c3217730704780783505bb79e9c39ec94f3d1f7f0e6257054388f2745903be8aacc22b3e814b50890294a9d8a40b9dc0a3418c85dd2d80a8c6b7d00000090b580b02d3849d33e10ae774074f374461d60f1d6b339bd2d39db0d7c442c22a1af2737d0647c31ff6df4d49bcded921073dc9d229c35d6c87075284f97c3abadbb9d15b0f343ed024b8ce85e5aea6df21279cfaa7c940419e5cc233e0040a0b3a269c4484b31a71e693edb983ce8dcec256eb90fe2c4463bb3f3d450ec32ee3a59aa1b244b57425b9f5eeddb8290174100000128000000905a3a2128768d8d5f73d71a428196735890ea6eb04c881789d5332891a38abf48f243d01cfbc7cce5b149e1bdfba4818df5dbd0a38d7ce2c619408614dd6490e23876793d119818e657d3474b63359d6902db8605bb2346f2164170e8c6eb5372dbff0ff7533c242b23dec54006c5876226debfad08fad871275239cd84679a8e7732b869d3dd1d36b79ea163ff8569970000009091956926e8bf3bc6f6d231b113ebe86e0f5562bb20b83e4b7115b2905dce8444dc55b3fed9831313d578ebae075b7e76b9afc49b48e7d35c24f49b1077f1677d418f5e8de6722a552b556258da524cb00c703e3643fcdee02b1990a394d85da8627bdbd960200d2cff52bb2ee72dd4b41cec456f6190c76b0dc9987e8b578427effe223c07f71bfab7deaeae68ab37700000012800000090c96bafdbc9d729e2a3e41dfba1cf190807289c45bb1351ea9be682c35f72071651c61bed1d08e23d32718dbb7369f8502bf6a0939495b8805c2efa14d0e3c22db5668b1f3cdaccc3a288f5b33f24e74d2fd682578d0014e91b937555feeb8a84dab486a59a7431d628cbbb3d4102cedc009c2a51d9dc73993b322c6faecfefdba0c99bc43ccae92131249cfa5db070f400000090f316558939886b8972c81a331c9bb56e931929716b985bca2d2c01d2535f036f5bf00b8f7bc3b5ff62cf36fb7750792f51e7ff80cd9bdd74f07fafc07170fa1e76721d7d0c34b16edcca6f3c7dcac4691b2853151dff440a70e39c00b55f88a2b4578252fded76768a9b2dc103fad5b60e0e2ee332dfa6341526b959031511e6fe87c9d8b7e94cd864deaced0fe917780000012800000090f15673a8ac2b26b1ea8b0872dcdafaba0bd0cece2f72d76b8d2e2f2d0dcc0e0b72281c339f4d72c00f8c9f54a06697b1fca113961620727494fb50a9ba1fe014b4a86b3d687aededaa520bee1ccc9ddf211af150ce36dd15a72c7cfe44537630b149ab91f630ec838aaaa2f5766ad3e403b61b0af41c0264ebacdad6aa3ccaededfd921115a83086fc1adf24fb22c23100000090aab4fd8ad58bdf17957383860b25110bf237f1ee8426c453335747d9d80345dbeff22faeb160b1fff089aa148e2d364a657bcb86035413cc1b3a13295e35485daed937be9735af02727035f72fa717fe1cdac398541a9d556eebb38ec9676efa8bb4cdb18e20bd28b084644478ae97302d849ef7f47e11e150c6d4d45133cc46538d6cdfc3d10d73ae346307e93869920000012800000090243b45e22c08e2c67bd02ec3094e45372e43425ade05ec2cca9fc280b837dad7bbadae7ea3127d19186329f66cacb183fb8156d2d6ca130b42a2970dcf9cad7fe65523b3cd2ff108fe81b2e58387871911a747eed7afd7b4d2cc3d67a74b8bf970c2d0c1b78b459ca497d55e33b29abc059db6d287a067050c9a7592b893b7eee3312e672f2f29bd7dd906a61b8920000000009097886a623b7bb1f1cce68039b4a899e0e0b0a0451c35bd6be205c972155c12143311d4aebf3e2a9a0455e8bb3e9eb53a7b18784fe540d258730b17b3fc55714196288d0111ddd0910d87914462bad49815aae603595888bc000c5a21e6a11776bf1232a245888594db842a61b0dedb990978746a72f2cac732ce8d6a52c081ff771009067732eae2a3644d3ab44bdcea000001280000009044e0a4bd5e3a78f5f2161dac9d19b79236837160ff98b2d82407bac4bdd0475a85ca56d08edd50aa7cf146f006fec82aee7ae6cf8ad80d974adf6cc333c47d2809f515d3a6268f1f3f9fafff478a154913a9a5fba94787d68b1c90e2c689bfb89d7d76ddf3ba9503182cbdb6f4d9b0a7098f7cde67c54afbb616efb7e6aa62b98a6930bd3ba85e1ecfb0fe1405f569d00000009014db97e6099157f09d0e85ce50765b5fb344cb1fa282d46914157a587c697e8fcd0ff9eb71dd3fa8bca97f12951dfa0554b63907ffb6cada8cc3ba7de76268393cb4ac52e89fabeae2c0ac62ba535ee205e80d247286af16803ee652f2d659c86c649a85ed0b8db322d2071deabb5427224c195b68bd42d81001434d2a52461340201df50ed4184d2649f5b44aba5d4e000001280000009006f42b65816f716aaca8a064f3753982938baeec88e190b69727f4a37a9325812010d0df94d9e91487b8dc65273b0ce2017718658a0bde0257a800679bcf758a218c01f2a2111f1e061ca3eb8a953df02355b3ce1b3c92cbdd0b6393e2bb334d5ac66fc15dc53f6f6384a044fb84db771b93b2ad429ad5d2b133bb7cac88be6d4e2b65f0e9ae70af2d9b9e0b1d21d664000000903ad57810e82927f9e1ae20f1b7e95c26e0fe8d108fff5c352ad1cbd547d0413201075470ddcd2afc08920fa6db662db4f04b02596143a5178ff5981151727f649f1aae93f0b02e784a439abcf9be449c2035212828ef61bd5653efbb6ba88043e78d5a8c96e803936c3be5b0b8d757f31343db61141bc8d15023515cb7fe0450d77b5d5b9b962dac04b5d65123dff05700000ce40000012800000090769b7a95fe04e1f2143155e7ea60be905fc932a1f934e193004ffaf8801a57992349425de4379f9d18c7e4611287a96d34277310223e56b4f5b188130006345a8ef172ac777f7857eeb24ca7fa6a84d022c743e6da0e603bdc94b18f32273263955a733bf98a46e01bb6e56edb06ee0e2bf6e111610d01d28cd2d96ced7929852b871af1629bd70d6abb21db8a93a4ad00000090629d3e61e02ad7e72fd42528a18eb029f33e80a4d464d8963a8b27472ea6386b7ea7ad8122c4d478981fa75becf8211cec6e49543a0c6fc9c4a4728e0ebe656f4005b3b40ea8d9c38eae95198950197c012fce04008591db2be1e00b64183a0efd705dd568e0b1978b3e6f92d0cf54991f8a2fde3dfd508015ac7cc3161a98d9b09a333975f28f39dd86db5ca72e90d60000012800000090b7e11ba7480b5c973fcf207721a59e92e1fa71f0573ec486a3d1728d0782a2a7251fedca509f9506cc84313f5c3f3e4a6d0cb3eee0769a1e766285d6e386e7b90bbdb1b482504cb062bd33b4a46e44521cf3a4099423d1a193cb662f11f28d68381fc162c71a39878f32203c78ae3ae71e85253f1fcb46175e58adb856361a7893f17ce700af632d01f766f002322fff00000090a194629bee6e5297af2d4e81b9552497d96e41c40202bca01dec4fffcfcca19011eb3187e5d273022b4493dda188db20c92aaa7c3f040fbb5077f18cad5276253829979488d68d8b256f8e9dd5f13bc22d07de22053a539c84aef451ebeb66ff41091c59fe6ebc335591db149937d9852e3f5a07bd276a8f3364755c6fe88a6950d723e60b528ce8e3609353044c9037000001280000009041d5f38618d22c35005a4ccbb2e563c85e2b448d2201c688c561242e1f3180b20a70b6368ca6a04a6d6b7bc8af5bb27565922d1bb84f357ca84cd569732b487b050858315370c32fc772389ccd70bb0c1e59361c961d1fec593ffe37e528337819ab977161fff87867b7d817861efd23190240e0e5eb8f20390da04b933208db4cdf59dc6c95c96faf995afe69d6d4af000000901311278c2a29bf0a5ea49620300d70c2e70dc5e35cc2b197f1c0af322847f06c37ee9eda077ab4418bc7fe13e323e9d8863ab80fc84ec15a542c3de17964ad98e593640170a695ab01500422866148481db5414b9e9dc74808543d57b11b0d6c9ef18bd36a20ea3a3a4c295e5e6c61b80b0650c0294647be70a5ddc723d11990aabba34c7473de537f4b13815297c75d0000012800000090350eee08562667e68db2618c4f7e8909c769d2acef55084de48ab1aad2a9be0994930636de38bf302c1bf742744b9e4811e4c6b76dde69bc221458319dc3a82728ff2fc811552ab46879a1b42916f83704621abdb5d3f3725eb701a93b29a2bf46e494ea7ed050f5af474860dcc2f67c045afd17b39e0ed02fdecb7ee41beb93ad62ee812e1fefa53457508f92bcf86c000000908635c62dd4cb48672eba900690c4a2b4d9170059c626ac043447137abf472e308cdc51946b0c4800b800d2bbf8fa5ccd6b88e05d2d3e75fbfe528aa720cce1cf5f2fa3a08ed75ffa1b338760bfeaa1220e2491a9002eaa4a5adba74dc3d51e30030fc38a517d48f059e5cad099a71add28a655df3752f94c35102cf84371fb8c289d70c9e3c79d0923d96eef8fbe01c3000001280000009078944926723027a07938b0560fd9dd6a01161edb84a2b35deca972e341c0c2f99debdad57a4e9fd343dd01fa43b4e5270c4057f02674a7e2379c3676e866aa5d63e5cd6ac2eb45772fcb32c440adcf59266a24a74d703fe60f9f520e0e5544fb0a665ec5533a44c92ea9dabbbb20b977029c51e0fd9a744dc2e2e9e980f310ca042b2078a2e4b78f011e506c52a0968900000090b17e1c111f7d425285fdcfad0ec746cf7bc2f06ce732e74c2ea73c214c689685a34b7bed644015beed00a66d0996fb24c837b6cfbf39402a71fcb3f147b54a83902d349e2341c137af6e652a8be73df32e13ddfb927e204afa375e1411ed811734a59c4e3c84a38e8e266a71ed211d5c0e40ab4aab3821e42d8345fc11d7a24ea7417927b534bb8586e0727ce058089300000128000000906482e87c2faa9855ec501242a3f85a69c86db4f79e1629a57789ecfb57b731a1862630807e5dafeb40bb7114802f1d3ee7804a68e63ed05f968ff91f0ddf76a7c05d7bb28fd92abc18c0f2827187a01d2807cb0c5c8b000fe8ba06baa2dd2565ea295d90fc0f39f7e8d153c99063c034132e663cbea67d110d96f50cf195f8c0b121c21c2ec73f50e6c733031650767a00000090ff3c3a3650a88f58d5041d2a476ccbf9edc9260a2896e4e26a61780b40eab5afc563ffb21838d361fb21731a88d1a437ef9e99cc0a6746cda0766c7bf7846aa417741ef05e712fdda23c2a3a3f10fae108dd3267d80f270b10132d4566237fdc1cd4121258ed8f0098b4c628f5b26d410b7ccadb3d2b5d214201ce41ff79ab0f9c3743001cd55bb53e84d346d90f720e000001280000009089e091d396ab28517ccbdf40a45d02abc83c6a771310ee94385f14dabd50b3239fae674a98402d00ddd41a3139552a81fc6db334d02c87330d9c1f5747d1a5e6c5e566ac2093622d4afd551a96e740f80f30bc649c2e6f25db9cab1c4f53c2688ac6dba4e6d24219fc3fb3e96f22d79d017c16f68e4e15c1e9cc75ded884ae4b870bcca55904c7e4c85b902c48297f9500000090f6cf1a1091f1ff9ed45b86d475d81b47df21fee05708873bc11201c9ab6f8852cbcc8c0e7b0cdc53f1c832a1b277842b66282e57cd677c5b3816d4715de88701865f8b9c6a394a9345b2dde9b3707c141d9e14005c89c8004d3eaf70941aca0fa20d4b861312a665b20dd2ed53b9f6c80daab476d00c8716f32b5138bbaee3755b74b0c265877d7e88caa5bc99f5df0b0000012800000090ed3eafc128b6aa44fa604f4c074b08709a87cbe8b121b18be9179e2c735c4cc57486fc2e38848f45487ea318c5a6f369df389b4f8802023e322cc08ecda80cbdc0d6735416e8c74dd2629b1c9dac44ce23352337284d4430c8c3a91429a707af9f8d7ed80b918f1847577b1ecd2f3805235d4886c33d39070b6e0f0b12236e5548314530034782f86b3faadbd643ac370000009059b5f5ce278d3b179affcfe95c7f2247579ab3a96493c390dbb40ea7746dd9d885e0fe32a951a0c2bbfd4830cba8ffb67a04a5cbdbb75a3e03df77e4fd7b2b3eacbe7ee38b576e87d960ed5d8ac2ae622cb5cff0da9a10b7e48397ed99fd8e11141db00b06c76e83b1e45f7b241c723303e1bfd9cc8d8c3e38b01f622ed29efad16e0e724e8cdca0572fc8c7509eb4ad0000012800000090f84960cad0165e05bbee5df21c974fef634f14c4851dfa847a5f07a1d7a869f68d5d896cc9f261d26973221592607936aac41c0591ec20849c1e33f0e9a5c6426c0b209b9b48a3ad45a7dad87fec894219eedf5aa36c7db0758868993e97f3fb900f6bfbbdf36fd9d8afe47ae5a3283e29674628ac8544036ddebb628629df03ae05ff788fd408f44ca9254d4ff78ecc00000090a4ab332943d66fe625be47b9845e537b967ccac017c41abcbc0c2628c75bc84a02177296f90ac31f71836242d2abace7e5f0609be89c02ee8bae4a0c5f3088dcdf8269d76eed51e15455f4c5fefc79ae084bac2d2d9551190f81d7958298e64527f1c454c972799003856a063adf38c42875f2e864532a0c1a0662671e47b84292b8c17448d6358dff58e4a39c4ad545000001280000009010dd1a56fb7e2caffbf7da1d2494d96497c10f8b83061d2a7fdbf4929f575e94458d285d297462b31a0d327fe7544144851c002001eff096e7e763bb7371b8135a1c25d5b844a932fa712ce861ce4d0d151412c87e1e385a4b6ceb7dda77a2b8210360ccf0ce6aec734cfcf7792c14e917f003e0fbefe22da2fdd4c4370a50eddc7c051aa1781d32d09180285e81e33500000090d04b03752849abd068a041553be26194646cbb651bbd7eaa8ac61b863e7eb17236a5024ce2922fdc74712bdd9b0eaacf534c3e958837b80778eaf05f1a09e8af6464e7a1aa1f6735b3830081509f907b03c563539582713973caec33e047a5e087499f60585d49c66f39a728e1a1d54511ddaff3b2962b9ca053bf76c84aa9ac3e852be5c528c620868f97b770ea1c6800000128000000903eac051126fe83094f9102987843fc611dc961623b49d42fb86f7d5d4ffd58501bd3caabca512eea7ccdf1326f5a40c86fec627a39802b0188d786ee26a6ab57e6b494758fde93f864f6b9925324975f021d5bcd23235fa00ec18a95d73e5daa37c028a904dc89018e8570707e9a605c097e9694b140056d2eabcfa2f21267daf3accba1fc1ec324fb3515dc8ab018ce0000009084627b52fda3356fbee716000047cef7b28b792170486623a6495af3b4c733c60f3e16b16cefe06f53dc03cb98cbc63dac6f25cb0ec9f1ba23cfe5750308e69f103d06c04f9b08998b9e008153714bcd0dae73a7d52e55a2505854865ac685d0ede14c4eb30d56afafc26892c2c903251a7eb4ee19387c1d4790cbfc7ae2a2129d0e336dddd2d51b9438117e2cd31263", - "timestamp": 0 + "publicInputsHash": "0x124b48fbfadbbd213feab5c7dda66f6908f55c3c899d88d0db822527dcbc34b1" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index b10b890b79e..f0147e8c6cc 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -52,13 +52,48 @@ ] }, "block": { - "blockNumber": 2, - "startStateHash": "0xed09b43d862f8628640ddc03012c80962c0bab9bf63c4962b7b1ef80e80db89e", - "endStateHash": "0xb80cdea4fe6984e4a45d7eed793c19a7768836819a566efe201df2a848638aac", - "publicInputsHash": "0x045809133f2783cff5fd025fcb350a78fae4854d441a47c7ca05c1e8355db2e4", - "calldataHash": "0xc73a69c8db8a87e0e6b99c6841d4ff717f5d35bc40a70f3130c917a9fde92d40", + "archive": "0x2f3fb377fd6181826fcbfda86813263509bceeeb8c606e61a03386a5bb6d0be1", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000907c1b3a08a2cb8683fcf76e45ae9de5c9d696408c53a9939f5064e661500cac4a2964e0e00a2d6c71f958321068266a0ad7706eac1a5183572be5c3d53ba45ff1734d012091c1faa4caf66c00b6a0b4252ba53f2ae331779ec2b332e67f3b10a097f4c74d6bbcc69fabdbfc1a07956b820a762eec034f3519c6615c7ab60a150c811c029efe9b594f2412a29b64105003000000906bab5e23dbfe7a7696c7090aff4201627797929ea89bec9d6a17ec930fbf0f3d42708d82717dd5dbba0e06b724470f6a9ecf06918af478b4d92ba01a3bf5cc97e531181c10128934d4f2a58760f863381de408544e4b35200214e5bfbb7d191f689934289a36948459656b72b025f2590cf71cfd94c6c0b479f85ae74bab0f42384de7051fa4405e3e1663e0cadec48e00000090b9d3e39d91ad008916bef1383e0a7a18314b2b778569b1bc650be76cbaa70defca5db3dba7234ee8c0c1ae77caadbe6e4d44aefc9016a6ebcb43a30ef76e614ef6072bbf1282ac465c0a7d8f1ad081c523aa58f64bb496593f493c5e18084cbc343f9cce765f11cebbb9f08aa524aaa0107fbe4f10f8fc4d5ebd6f34cc5b6a718b93b35c3cb971b033d51dbf3d71a1e0000001bc00000090d65b1026d291257fb639ab3bd2bef618b0b48a8a0011f78b66ef61da931d3e98d7476e5b783cd04fd256c2ee48e50e6609423babd46f0d4128e062251f200f5efebd8874fbe9803428ace9441ad6be73024d04270212a21b1e315671fd50cecf657008784a40e6a945d0c9933b0b751e0e4270bdf3d96f5660bc332deb55c1d69efee98575540775b0bfeb1795ab0b6800000090c428df8558124ebad08202b4e9df93e9aba73daf792c1c5778d7db24eae062d1f96e40068f382c241371fe92222fe65d6079aef71144a6b5200b640fda76576707df17436b91e16e3702b234bc3b5db2148e9b10bde68adae03ec7397db66e9f38d9b6dad770ed9a4cedd10af990193d010d7ee63c3673e7d19a1a86c85b812a77a27960a061d34b6d3603e9be4fd68b000000900dd0a2f23deaec926322cf81653b6af17ba64cf0771512f67cc6254d5b2655c57ff8bb485ea8b7800db96eae65f0a7c88bfc2106b9bf899dad80284afef5030402d374526f89145f851b824fb54289e50964cc0cfa74628f766fc485bd77b2fd8d991243ca4df56a0d2961c62bcfc8b0143b56669c4243ba4b8a1b23eb6d47baa02a5018715df1ba04c901c8c8bd0177000001bc00000090a90243f2ec68e4f6e6b21048876e4a1312cdb3af73a5cfc0dbcc269d26985fa2055897a67459ebb74f3ac45aa0d6ff3f63dcb9e71f0884497c858f0ae15cca019fe6e93e9baafcaf945bd069a3a5c98e0865700131bef16cc4c47e389f5e0f8c5222696be1a1c09029c7e1ddcf643fa617304820537e972a15547cd43dbc826304a85d5a9fdd345f4033f326fd8b317e00000090a6f785621cd1f8bd394ce02ecd3bf72e1652b7dac8434e0f36be19f5067923427af900b9d89d75e0693d121c4ee41ea5c7b3c3768c2aec19c6db0476c0290e50028b11d31ae04ecd702125a29fd857db05a3826a0ce0a9d720f46e24e33f95c1ffc966b90a1d2d83c7ae9f28e538cacf0cec4bf0ef40d262f77360406230b9456a7c14321fac15cd4dbeaac0672954d500000090ced89c13be6d034f1f3ed73c871c41bf79e2b6f9c03652ea3562484101d06c0fe592debbdea9ff08a4a8e242c3e31b3a39b0b503bcc29f1f3da8c90fad9240b701258f7cd3dc750418cdb045d6f89070259677559b050bf6652a4b3c88edfd90a208d80286a3a627432fbe2bca3d07e5196c31f8e14d2443ed9eb8a12ccf2f2d3f90af296c346adf5e874042f50b8e58000001bc0000009036b8114db5d25a74f20c28ec8fa372279d3de9bf48e22a1466a0e02283af96257e863f638359ea3f4d5626af79ffb9c3755f0201f31deeb9082c5d4bf708589e66edf6386bc795ba50d50a23daee25eb1492ce5b5ea7bc5b2692bce3fcc4d75ce59f4ff60a1925b26288230a41a085d7192a0d71649842bfd019e17062a1b606dd09abbaad2ca4f2d8e19c591583814900000090f448cf92adc1a09fe6a43d3532627994990b9eb5aaa76a43d547045d73c4311a476773a0642db295b91823296cc8eebedf1c9fd738e612e2c07b2b5770618e696f6c4f97e6714ace745c013e68ea1a7317b03ca9059b14736059b181ea3d2d4b35b02525ce4127e892259748c01a81912e694361b8f22c0484b545ec4e2bae6b6b9a04727ccfc5976597374e891ff50e00000090a422ede5cb0a1ee27d05be320b90bcadcaf47b31ff2723625145666809a67f3c2757ee3d5e56ec08fcea4ccf9cd345e2281dd362935cc246680a3115f8b9df3301c3b1e9b8c6a8eb2cb869f8e029b8462a2cbd9f5b38a69ceaedb87e7777e8edcc0c6bdeee33ef17b3fc5dd8d74fb097010b54bc3509deef732f49927ca924a212fa97c5ae076dd285e9f5001bb3755b000001bc000000902388e4f77b866464924fb5d3eb9bb1f4cf8aeee2327dbb5ca6c94d7469a8a4cf955d66341ca63cd8b74b1b81c87fe727cc79d4c52dfc33b8336a6ab5e88e5460d3fea2d8af8ef176c91ee898a1ea3b501af82247408797c0e1b3d309a271ad98109038e1fd88da421de1be702af1c94a2868d845580151b770a3af1ab2ba4ffa38e4696d1174792ceb8169c0e3a40d3f00000090eb7def151cd9a4004475ad0ce963e7e34cc75ddc8689fb9466c4e9ced59197dc3fb3c25a43fa9c62bba236f989e38bfcdef819eba5dcf89d17f6c4025beba3f988497c0b9639b765867338d4b096dc811f1f35b19829cea2a0999d2bcb28db6d3204ed4b7acde9785129e72af98439d31035fe030458a481ce33a27dff24a1ae4796b041643c0c80afcccb1b03e9916e000000906968b696d07368fb5400ea065d9602b3043800c1440c79689952ffd7797d5c614568420845cbc63e9d741e1f5fffa1d9851d30c01c29b1927611f795cf88d2237e7d4ec9037aa9d0d2bfcaf4b5a9355c0c8e9cf86b1c2957799bed4517fd6e7678a52789de5e7d7bbc50b1c4819f7d452f2d0fa9ab1862b6e086fdaf8870a4b1a0720cc10f545d8b1a80d2f7bbd4a03f000001bc00000090c66e589493203da5dc904131056f39a754308b74116ab5ff61fbe83ec2eaf2029b6b617bdae1462ac1c00ce5411ec65c0c5234d7def6a7e8ad98a15b73e2a9c02f50fcb32dc91952a1256a7c0cfe7f9821e175d48758ac9aba3cdca31f3c6fcaa0c616c8fd0736a1930ef29ec83d40c800e48f95794a82dc3f8ea3fd2a823bfb297e541d1b88783cbb52046a5c0f562300000090768193236ad2763b5873968cf429dd9904fbd0e566984a93df8d19b31fa6c7d97b685669fa571770d1104e49deae20e878a40c0836bdb779b82935926c6fbdd1d0a5a0313eee67f020ece80df5e81dc42246e9f9a36c8515a4d80eabc793bcbbefcd84bf5d10711f35971580e81c41280037c6d6da5cfa8c3eed023f32d55c48d0d4294ad7c030781aff4f77b94fcfea00000090c912532e7c09e0a8dab5f7a0c0e3f8364025505f36dd512d2ba05909f99b04cfddfeef1175f65eeaec313c4eae48323611d7b40b7f52bcb507d0c4c80563c66bf52949b1496b5fbb65265a62e7b6843f02e21de4e1dda3aead13660ee9e5b2cb5aa9e614f2bc9c086a0eed7cbaa710b42edf80e0159819eaaf21d15dcfd2f94efeb9525fa6a0f99828876e91682585b1000001bc00000090ef1b83a2fe15a224b3cb05418b3497e13856d86ec0def188a4cf0ced86edae1002081453f26b97ac1691c20788d6c4746f19f06e29c5b23b0e887777b6e30208971d0f2cbd0ed8d91521f4a3c7045e34076df337e47e9fa507516ef13f03ada0c285b92fb61d70e9a0db40d3e163c45e2ee3a7b9f4f6ca902e3a7e98f18b0299031970689089bb5f21c08d2fc94603da000000903b62fbc69c73bfbb0c0443bcf4624f807b1ef4acec60db08a8bccef7f0833e1944cd2ee8644678af13f82e7014c4c728d36bc689b93d5856cd21d4c005bae82d726d64da49fb830601b511e9cef791b62e54ec2d95817842163e2f417ff9cada18ffce9e4588208fecc05500ad078f09057b40278ee50de377d0a121b23a928ecf36c42d1e609261fd79c6c853cf304000000090570872564617956e481624ece8f9f8fa7bc63eba53e28fe4c3c06dc594cb0672e9530b3214c8983cafe960bc97fa3536e3ef44132d8721b793efedb3a17578de05a354348a2c25e83357c4682a39df3206d44fc44579a5ca0920f4196fe08e2d00377513e7ed4145e51de3836faaaa4e181002382bf3915f558af58266a43b2801a97c127dbc10b2840c2e0df5949bac000001bc0000009094212cd20c5afb93ea77dc91e6ad2ecd5dd55ea4e8e7de7ce66c2f7d496f9af69d07f2ffa402f093d6bd3c2d5d246c7763de341e81e5b654b1c29714e79b02ed8aabce6892903ec40e05e0bdac20c8c2237a47816a3cdc1fc64fb4052c9192e2493e19c8a6f2c639aec710ef74b5ad2727850860db08e994d6dadc8f773a7487cc99b29f65b78e76874842e18c59cbc100000090d22273ab92a64992204949d374718bce467241f4eaba3dd635a3b03469b2cbec16e5c37e80258e9b1985cb4675450f19dc8c2b3c3576da96c4ce51a08aa4e3bb3c8015777e3300fe7e2eeb1f57b8675f01a998d4256eb12fbacf0157cab4dbb9f4ccc9d15d5786f2c14d5b453cad59a828312c4bde964f8bf3224a34d5da9c65652b754d3e9db14d985923114c3ae8a70000009016e64044ce8bc509083bb3a8bbd4546a349850ac8c4c2a4e3c1f2b6bb12f46a2069c4bc6fcf80e208fded4592feef5da5448609bec68fbf7e1314b3eb76e5cde198af34a03a051e92b586452758582a11ccdf709902a39cc8940dc42e3ef4e0afc2ad07b53337028ac9dca172b7f475421b2eff3b6c4da731453539197b2d016903d4d1ff7361ad5c5c2fc35ecdc6a2000000e00000001bc000000908f5f5305fbf3044e058b0694519238796f9e67dcc6927252965c4792d1642bfd740e05eccc60eeaa8e4a5b6a085385b2947b7e9f0ef5de46869ad4136e88fbf07123f9570b54623787cefc24533b49ac0e01c777811bd9cac13a289698765bcdf90d8e965689cef3e2faee319c3eb9cc1242762410d2041e045715375e0e060dd857fb744e324b653250e850ff35845b000000906ed36c1c9b2d8c7c394f5c0024cb8510f8558c17d6c83111ee0d4077bb0fc10033c45319684f00450424e3d77369f15eec6a65156daf316522cf5795f0d21c326640da47834e04eb9987af73772f864027aea09f7d3a5e79d39ac7e44f7e2a83ddc472d7ad4d6ac4cd2b235e660eef9115773b7394dcd03632821701533dda5be844f897845e7781985fb961279153f5000000901d10a151dd0b0aa3b5b8d6463174260fdcf462d9a53031d828c4a6e2268c05500373e6a19654b0196fad986d4a1a5fb508596b86081143487d11a8914c16c8a3be4b5ff912f227619cbcd5f0fa9bb3472d659391f8ab820070814fdf2008597dc2feb5a180ff856cd705506219e6ae8512684f4a8fbc073f5cd556bdc28b514a728ad6643d63d0b2a73132e333cda1c6000001bc00000090bf18211d1bf13578fd2bf01072f7331e7f1fac3e4082875ae7e7e7b3ff0b4b37164425b976bc4938a6cf59086ceaf55cfad4d17745bbd7667939b438ac95cbf03c6d7363567a153cd37df714ba7e304004128e90f1076177cf7021df6819fd1fa05e4fc477ef5448abbed7425d02d5cd2120ea74f76498b5771de72eaa6062c4739be7bdbcb945bf50f923295bb84110000000909e92a40e2d7c0803a9c1c2acd2fd309d5dc6a664ed8d8a19520fce1cb1c04a70e77b37e5ab8b86d510dc91d20c590f27e8695f14e3e6280fca591b91fad636e6e0017662a77908d614963b89692a5b2509a593a79f44e6195f385ecf367583615e5e57cb0e0a64e94eca0feb06ebfff40a570a8b8ada1ce1ec4ec1d41816ad5a0e0eb5f5ff60424a342b692e3e00003200000090a488ba549f733799ed5bb466cbaeee0cb5f92530d0fba69ed7d64857893c162834bff5636267fced644542d9ce29cd01c422a9bb136580b369a4b807323f3b3358438e5148fb094a70eecd217f515dd12a94a17a4220490b31e7de13113830cca9a36e7be60e304e53f94ea4a4345a7427cff8058fb4b484e0bc5f4c4593ff22c4329d33d5bf96d2bdf9a152dab4f2c1000001bc00000090b2df28904b5b72cfd178670ecc399d16dd3da01f4afe6d735a7ba5de51d5aa826355206ecde69e6dcbe87e4aff2629ecc23fe3c69166ea1171572fb172f2245e063b0e46dc59e49996cedd02283942ca192a166d30c3418197da6c907f2cf2bf423e066f0fd68c1018af6dfcea86c04e2217a1fb08251948cbdf4b26ad27a5a47fb634267f5f1d06715a41ad3031b31e0000009096c5ddba66f37c8e7761c5cf195c140c6edf6235facb9dd07674edd48b646119a11e05e3addaad9949704f7942d246391fd7743bcf17bcd5e6ef5afdbcc60b5ea13a3605d200be3922f68f84c879d56318a1306cdfa7aaa518661fe032ff2d043113e594bb512552705b20024f7b4f070071db291994809f527f91d79aa40b18046c265b12165cac3b5bde0214220683000000905bb6629675b1d01997f6f33a8bf669e30540b49d31e4895c3369cd810ce5645e5a3e585ddb29382ab9209dac3e68f954423c52cd148ed3969d7e7ab819063070a6dfa3c135a45a1d080f47c428bd69d50b6630d5d2bda9730c9fa5f32cf8c81c03b1be6b30b7de3669b050423c7e132925f6b0bbcb1d5bb0af2c29d8ae2574b196e6e8da740293747f5e20d6f51585fc000001bc000000900e9b1b8cf0d0175eaf2276c35dc87b99a330902503b3bf88a756b750f4eaea3609a401968cf175a77454836cbbc5525ca5ed14edb753b54524dce85926933d149322a31e37102aa8fc1ae44103757be91643d3161252446bf073978f1bdfe311bea78257d05fbba0b263c842474b9da812eded30907e614d95d53856099346a65bc21b56324f01dc9e3bcd98f6220f8b0000009039d7912fc0239dcf903b219c27cdf364c33cd37a30a94afbe18f2778cf2d0e3d892976206e2ebcc2e6d55673d978e65b76461e49ad281d58da534a83c2e3a4f99ffc1848da89a8d25f3fc43775ba84f00baecdc0fff6867148dcffbf9db34bbcd6c1365182d56429f775b70633023e761c2dab8f1069db54ee02ad670457b2d5363d0c7f1408f8b7241e9cd9637da5cb00000090bfcb048a04b754ed6499c538a5e7f5171a93009747e879c6107841670f8ba2effd3ee5a443701ab6ec7f7cca7f1b903e647b64c1d23283fc7ac21aa2e0248576e759e58a8092d866d9c6af7932761c6708b38158792e6eec7fe194f4867bbfaf9bce9e7b31736646bd6b75bfdf57caa21ed0cc1a5ed3cf23e49680957e6ccfe145bca1532019a9ba465af64f12b9b1c8000001bc000000902f2439e3ebb2b14781fad9616f31013916786861336cdf02d81ea1a2d0f82fed8e1a0352b7b5f76699e8a0429c874560b857915338d03c98eea3ce383e048a072b4b030fe128f64184d6b11747be25bb1822e95d9487ac8d32b34a772a4504b3e98dbcea2661ae9c4c7209647d10a4481aef78c9e5a2f06dba8b8f1fcd22868b3918ea74d2181d61798f10fc9391fe000000009038ca3a37a4f433486ca51033d317a37be014d1a960b33bb16b54c6418f2df1a55573ca9e052da45402f3b7bc1b1718073c581eaa6de90161f9de1359763046fa9eba5872f0559d3a40df31678b93605d102029a421b8e9c0cdf8b9aeb79a56694ef916396329000996a10af3551edb4a04887cea168a15ea8fcf8b9b3693d34f34744c6cda7ab63c2cf0f74f04a8660200000090d9f3ff5b9412956db9a6a98a8536aa08f13b2cfd675a0d1de26d311a31ee234d25daf3ac9332e20838e735225908efe42dd6391b8671380b73941fc6428e3ea61f24f9b56365ed89320e72c1a7c3dfeb05b0cace2b85c028619e40c413599155a9fd882caec77f4af38fb56e608ff88d02881fef1658f1a55f6dc1c0db724e6b3930ae928311c7da07db238923a7ab3d000001bc00000090e81f94ae53f3cefc91e9e1dd0daf188e8cd3c9ef1c6e78f9216ab5ed80c48b5546fc5e13048f64bbc159b0c621dcc73048f6dc215e09e00242fb5fc5c5adba821bfb38f7e48706be200ac8ed2e045cf608e7001683439e7575ebd3fbe2744886c97e980f3b76890c32221b8e15b4fe1204b5abb50c5c40526fc850e99deac16d0996bce31e412039eb4e5e41409c5eed000000902e07a04fe6a351dd0f4885901e4c964d58d4b90c041ca27768e0fb352ea7a92cef1ce4b7b78a4c3fd04c78df3741b9a393631b7f305b850d3b4684adede74540cc36ebf64be5be1a2b7aaf858a7abdad1cf71dd2625503f41b2aa6cd8bbb02ce8fc975f6073c56a7d5665d57dcf67f2612dfc622493b15fa2ae49735c9d77eed90b069ce10f26dc7a56be0e27b5dc72b00000090b63ec5dced5d374975f1268fb76ebe294fe413110af5861f3d874c4e2159d712b53d44d7bb594e5e06bb20805a0b83a718451784acf8fe7e2a488f77eb0e5fb232059daea041fbe8c260e772b1786a7120792b5d421cf88206fc781a212554ecb4dce9d3d0ce86ae6a0c3370242062cc0f71c72149897b6c3d023351104fc338f0730b8ed899ec4e9478495e50a79165000001bc000000902a45feef1f690573b1adab340aefcc3718aa5f5da6246496e3a27c0ec30cc19a4c296667a0bda271c960cee763d5c50a79cf2db8680f6fd6b153b557642f2561d92e1a983154177fc3dd576dfce6484c3060e2cff23d56b5400e981ab57bb10f086c8ac4c4b16be77f4a8df2b71e125e02949b090f32a9d2325cc0512c3a29fe917d6532287377c1c95c88ef0c992fac00000090a20f6fc346c15e7e890959858476a0f15f2b3fc318de61e12ba8c5c8aaebd6c1cf9702548b6b930b3a32d37ae19ba0274d11434aac08208618ccf457f457a8e986c5922cf5d9499167fb5bd2125387800f2f9a04f1d5310185d5cc420a9485852747a5c8966ef1fc2998a2363f6219812f0beb7e70c8b49f7fc10b88ddf8cd4e9ac9e6e0891b13e645116069560eef3500000090784818f1d8648c12d54a9c59fcd7be95532ab8af2845f6d3ffc9ad6784dfc7c34468905e2f2a58ff4979401d25309aa43ec338c3648e151cc091800ba72dd541e8e57566a59e0c44bb929591834b91202aea218ad2dde451ce9fc17969662765fae79213a63910b819cb298ae208a25301ddcce3170069482b8253e649daed00e6bf05c2dcb2b55b9410a51187a503ec000001bc0000009004690b61c90265eb3a91db5fbdfa7c7eee1f4b4f359b16e803f41e57a10ae17287feea5c17910a75d7408849bbf6480ced31bc122abfc20571586db97b1610ee5d0fcb287e6975b142cf38b0cef96d3c2e1abd49e8bb69f93f3b49930deb05635be1a971c3fcf56d072964531f803d540e97cd9e5ed3a4c6ac2699e8a0e898b67cf78733ca44d1be440818826562b8d90000009012624585c036d5a50bfeca21aa095b1a7912126044130f201e7a9a68af5ccbf48980797ebdbc0e25324ff6a4b30001836a9ac34087da23c0cf54d97ac2303ea36e4641a3085a017748a1b16a2c31ce8b23f4ea5eef22964dede68b25d97993af88af796df8f3ca9d08c237245bc386430114e431f45c18b7d6cd2679d4b0c39d4ea21a422f0d65698f826bfa12828d8300000090efd36a1245df2761f370ac183478511343d07cbf7c3e48c25bf0974f5bcca31957c2f9ba1ec709cb88d86ba8b73c5a7fb159e1fa87f200dfd7d177fe5fb644b230e9d16d2d9fe530b3195333abfca4241f8a1960a844bcc46abd9e916998086bb5b61dff2a49841f390b4124aec67ade1fcbd225e21183957ff1233fa7bc0ab65f5e6b923bae64a17d85d3780295900d00000e00000001bc00000090947684198f65397ba252f9dbc1f8af99c32aeb32284f3de49c547b0b3114f328502977ca818a2b4a264a487456ce29d0f1418a548e71ca58240a97ff5011de799d72cd0ec3a48f3a4ce6403399c37f330e55917691e8414f521d38f3ee63ba5c24e191e871b406a7a112ab11fd79623106d026049fc195d5f6d13db61db27ce7275f50c6db01e2f6e827950602a835760000009091249f549962d71734d4226ca3442ebd1be20ec7a8ebd8ac4127005879d6b5b692feca8335583a4ae0a6a9ca2ef890337f89de3b0d0d9cbabdea11713f3ee8f44843e8bf98a36c958158456ef9bec22314433d304114fccd775dd84f937283a904c9e34cbb00f1b045894ed2690a29f3094814b960bb88ccfd8fa201627dd9e6dbe1113b92f6ad611721075c318a94bb00000090d07c621e6271708621a319478d0795bef45f713b6de2c471196685c0594594a609db8d5db559a1649a8d1758fea1467283fb6c01daf08762858b48bf0615c1e116f73f8bfdee730c72c56af959018e2a02acb10d80458b041ed34e3022e2b3b398ca07a4650e3201f16b7a03e4ed316e2b8c100851e08a74e8a44bef8292271bb70a527e7493107c7f6137a1eace849d000001bc00000090cf7ad5c44a117719a906954ba9babc0edb51738770b4ee763b16786eaf24fb49faa32760f99342e1b5b5bf14985ce6fae0a7de2e3220f6f11fd89dd1191daeb109fe74b046ff913a6256e0368b26c15b0353414edeea5052ccc39ef500f69baee2a4d866ff0687d450a3dfebda4dd16a2488dad669abb84abcb8304e791a0123943c62be536dcd139543693e23b8f92900000090ca8eadddacf1b9634370e2f35e4041b50fdb7bc6509d633274e89c9f20e46cdc7839f39b7bdf1c86eaaad5adeaf2cf4fbce53e28622234e28b0a7c29d925009a5d95a3e552b90504d2cb2ce48599be7623d6957f71a06e48789c3405c17319c231e5d13059c74e2046cfcb01b195d15e15aa436d9b166a7ec1bdc4c5f80e3d9dc70580b20514c9630b65a71fa4c2b2c600000090ab0d42c3fce474d24597ee47c7f10a98c9f68bfebb211d2a352e84ab938d45bd69759f2a76690f029be1aa30730d0284941de3f796dccdfa1f0529c95e4b6679354dab63ab48ecc79a5e91b3d7d3f95d1e07799e9397ea5d2a6776fbeeaa4ff79c65c4b06810e20ecc2686de6c256bfb00531e2689364b7b81f7692432290d757e4caa95775d586da6d24d9f0fd460b1000001bc00000090d2a6f20ae66b3c42770388248911cc2b69569ec915e4ab4fe8a6c7e1d4aa0262bbe1367360a2c8d201e445d361f4311bfee4871f95b4ceeafac0bd20d229c523ebbe060cd13835e5904e0bb4cce865aa283dfe8dafa40181f02a5ca81541b4e170efb21a66ab761cd4943d42947657c927fe1d12ad7c2a5ddee85c8363d3edba175c87e2682bbdfffe993c9fcd2577eb00000090f14f756111656f5896f07909a24f208168a7175dfd7236ee3d50a11d6aaca5f4e02b0ea1348bd834db882a10dea0aa5bdcd78cad15d555f4f7ae29d79e188a9b0e82264b2018c2cdafa2787a29c4b12b2b7af03f94b35cd827d0745732ec211061a26c6b73eff0bc3e492c1910f4c4dc0295ab73daf1af831b407be133c243c12f7faeb13cc54c177cfee8e2ec1d9eaa00000090221009bdc1b35d2c1f8f98e9c88ed6272c09fe0a5050b71b11600da54e262c86892616e7117ae08df212206b1645442a179796d63c3babb16178a0c64a18daa1d09573cb0035bd68971b00de5d5570a000c90626fed9dfa6f56a30c8983abbc55f791cacc21a91eafd0d4d0f26553f8c253f58e1313862b32be1d830116757b4de42fc122e76367b8bca06b524d1a2d7000001bc000000909f812138b9e775dfd5969502abea67268af1cc21c9bbf14c24618f74e8bf66cbc3ffc22659bda2b6f286ebaf0ec4dcad2160910cf444b5ec4162d4e69a6fb8eec2331c41ad0b10177b2e8e4c2ac98a180a72bdca115a8f467ae53bc69b561f37f3415376076097b186e62c24e2977d630b40c1e975642f810d232937964ab2149babecd8c39b9faa9b946b14638a4918000000903fda1fa8f291baec2fba11067cdf4e363a1f0ae6d2e168fe8445b614ca3e8669ff1872d7d774e11fcac97f48cff4b199c047661b22af335c2027539859262c0feb865fea60aeb493c07bd72459caf3820e170c456d91f8fb70f1097807f76a1d3c3552dcea437dde4b4336d117de2fe6084425c996aecf3bece7742325e4ab116a23526edeb91451923b40769ce07b4700000090d49dfc5cecfbef724d97e87b5024a1057ff0b853835ee0931170970b6ef0afe3630fd198020f91a75de23bfe72621fcb1112e1e315d32cdee93656c96b0463240b988f392e210d8d1235dc76e652308420900759e115b20af866c93192f6bb025c35f9ce5f8e9d607a2918d70aa231b32c7211be4ecd9ebb31b223dba5eee9cffb2c14d002bf4e6c8cd2617c52f92209000001bc0000009052cd51b86e05a112185fcee59644c7868239beeadfecbcca4d334a1546904f4cfb3b16391cf17aa1fd543fca15681a8494500c1b341277b96bee5a43feddea9f5b5b968f46374dd616e74b96c20173410d3ffba84290c2230696ff06819e6cddd55a76a44a710c31ca5bd9e95a5f215314d88ec363fcce41e0556b5f5037cb9ba663626ddde3fba5ca49a18397d2861c00000090195a187ee83284094d52b6597b76a9de1950c68a4a20bc0e1a958b84f3dedd893db8d68af7abf948c04cc946fee7dfd3e98df98cd435c7c0616097c2ebd550f7c3e98a7341315f53468c3a4f7516ff8d23c160006fe19e7637c2258444e080e9c54753dfac170b7c991d734659748c4a09328f81b03ce897fbc6dd4bf283093f526a65e24cfcaf5532756a85e3f0980e0000009057f70fedc5778b142232a47726cd35c4623e7f440ee98e92d918491d17e1ef9ac8de9c6c9d2dfe5d0b38181b709172fae1e9970808ecf061d7a8dba520905d2f8dde99cfa9b6a527596aa783c7d21dd5282708cefb592cf2c17cae26eab29728101185f515f6033731b1e0c050b6b0cf0bfef40ce87ef4ee0412bee0503b16995cf7a5bb5c4100d6a502f80596c1f7ac000001bc00000090a87159ed5a28b9d2876ca81908a405c4d4ce69b04f5c585c787cca6e4e444c7389b1d8f9bee61c6cc5d40a65cb1c66235ef5bb36e274cd24b8b8be107759787935eeaebd7e4f7bf42e1d9e4d1b2cff8215e079b4c27c1bdff61b19ee1e7455df02e2b9d44e6d0113cab1018e8ffc2fd00079cf8c0af9a2d431f1ad14ad1d45a7dfef8080515f3506d0d7123fac6957a7000000903ede5c1517d46f450f68002c97d595f5a35fa49189a8346927926a4be396470ab70757159ac64fb5d215ce07384e3bd7af352c7d63b3bec10627f7072345d365bcd313cfe82b1f6b11088492bf9ff62d27b752571d6a5adbb01f290bb70a267ced42ac421070fea792f6963d2faa1f46112903aacd31f3c8239648fd9a308ab493ebcba7813ee3c1fd85b234bd293464000000904dba3f8d5253847e0410880b0e94de490bfd7b274fb8ff1a1d19da50ca4ac756885cee121f54bd05d4098b6139f0429bb44f8e9298125c7ec4936565ab5ee625503acd59ba4fb8384fecb1faa487ff332444b78ee8b1770ca6e7d8d4a5033c5a841e0bd137dfe66fea79921d8be63d3c17046aa6b02de3ea263e784a01331ab59390396006610ef6249ca469b3b256e5000001bc00000090a318178fd7c767175f9a386439bd1753d04b8cd05fc9ee599f2b3b8b6f4d49509e588d27ae0143272f13f60649625c2cf65e7c60b707f155a1f2d7adeb4523541aceaeda83869188a240ae6f96626bba134792fc15db82bd296c98781fa4187cc2235b9a81683c51719cc7089a62e249191486dffd24778d0d42b360f53320d1396a4535a21c67dabfb7ebab6829429600000090ceebb89ab853d54b103f12d65f145dca0b50e079974b3bffda72918d65ffbf2b6f56773816504aac7d18f645c7a810c2ab27755209342bd1a3d3c7bdb4a0a9f3bef70768fbfe0048f19599382100791a2d3ead79c839dca4469a8e1ab7efad9b49c9c921d5d06ec688c38290cfaf41212dfd1fa3f876165e9e2e4501fea39515129b1920d61deaff829d5c8fd632e40800000090dc880c0a8b4345e819c34e4d4cee8f9b655bbe54ab1fc7086dd2dcdbb92c0abe931df0b7259782b8ea3db0cfffa341a43fef48d99532e19947e67d7a99d1964f7dca4b077387ef4dda2556ecd948f5da2b420825296ac7e697f327e031c600826ef2085458e49c20e39d4abc647f5a642ccfcec29b3e8aeda89451df3bee503b9a4185b54516d68b8c393102242e7d82000001bc000000906c7c882a148444a9b4d95ccd067d18b3b7f3976ee606456437dd3503fcfd8e65a3a0b7149716d3178ebb574a3579a56337ae43b55cd8f89e7c1d1cfc076e28fe3628f2f91ccf6092de236aa93432029e00321c0b18fd00222b7218c0c6974321b5dfb7b9a37be815e77d0ea4559a2f60178cdb0a2cae0e4c6ad3b7eba520b09f74cfbc559826e3499f49918e6da231f90000009081ffb2cb3bbdcda534d9c100bf64d41c630244fb248f255da994c977ea3e7a2591398362d4f8a70860460d5d65ba17aa0e312e47a22f6d6e0e96667ba1ab2b02b898bcea8a5f991e25878b70392514950e237cd9ef6b504942ba6ee37e97de35b072e92afc0071f3362e4f6d7667330c1060da0b1b6d98e5c0873c1a0b8725d85017415cd2ffe4b018d77ee46eaad29300000090fde71d5101f8606e5bd8be1402cae1c9f6fb500d1f6eda8144878cb10f44c93171bb2e96ded3a1d1a6320349a6d5ca84677773742dc57459a772dbabbef35a96eab54f7ed1b4353bfb02ca53c68c1e3d144c6a1cf3e56a76c46213c589008be1dea90938d6e2e20f47f4cfc852ca294d0fea1bc5c52eba75821c70d98a6f6dab13de0624bff4f75974ec7d7f4860e3b100000e00000001bc00000090d9f207c2e4ab524fd2e7b51dca4f4fb421bbbdaa372793c766077aa8545d83bbb6fd42dc13cb1faa91900c92b683bb527414a8ee06ca3bab0ce9f935885198a88bc1ab065be3c41dc936685c6cc8fd6f102711ae2888d2391ceb7391d2773f1f22642b3b8bba7b356734ee0cd13a3d5a095bed4c7a18b005c895b25092a1281879a77e5876af1a56965934f1b01ea01100000090f6e66e9ab940c2d660abd12bf1ac581e825989598ec0617bad0c61fb54fd1a23546d7eb7e47c65389a32b86a7636532255b7567d19551b31451ab28c53665e122b88fbcc80ec0b06f26508ae1bbb82082b2690761b9151ded3f00c3534d4966bb79bd49c193757793604d75d837b3393023b9ad219829bff8798bd903a86bac85d4b6ffe1a4a7e68997248a4121df0ca00000090d4b4c16da25ec69b67ad5075f5f4caad48d49d2fe1dc9588f5809e4266176873d373ff68d6aafaa419693dc8a5f8347f25191b6b0e1aea68caed8331ed5f20d4cb46e7f35f714c7d8750ba404abd768e03f3f2394ed30368b968112e6ef4de0f98d860637b91067f9ea3a1ba95ae459b126db09c405009c60e1ef968e4d359d801d672b8450bcc13e5e58130412995cb000001bc00000090996af5176d961e74e0317c4d426c39f03f1155e8a4ea71df264f7e2765cff15853370c2d324c5cda0ed4fec33210036ef8c6afc30d98bc2fd62a4b42c20babccf769231bd8014508a1417d05bb1110fa21e542a26c0c88d844b9dd00f65989f74c02230087c7941dfd80e33aeb099d522b144046133c21ae3abd46b750220083a524cc0b83791c496beea3433564241700000090bc0474d57f12eb0063ef2c63b1d9e2c29b1927305b109cdda2e344633db5ac45d6642a9f9cb07bd4ea10c7864b9063e886cfda45f4951a8716bdc3d9287d3e524ea82281d2e1463a473d3bbc9a22810617003f5fc24cd8c7b3fb385dccae36562c8495e1daee1241ba6795e6ac98658d23c5fc5aadb784c29bf11e6e3d16801ec2f73bdc6c3e502de4fd1d51243a03990000009013675fab13dacd1fd805c4666d09775c253a761a9279d9d7831289bd7ffefd5ff6f1d6717efe15829aa86cf17451755f48ae5f68bc5f04800d65348993d20e2af9a173b4d67836f70b8f99e9072669b608373b2fd442a610ed78abe40f31b2e835984fe9bc1229293f202f0571a8d9831d43f087d6bfab4471697a8fd1a7df7dfd7beff70b02d5eb70f6f447fc5f0a49000001bc000000903956dcadee164f892e2ce17f5c3350cae9856d708aa761bc58732afab746b49f220021fc0c58a0a4ba9e8d9969b084b9082bb1c8fe2e65fd36620145e208cdbe7a8e1ef4409c40a810934f8508744eef2f838d08c309b3f07a8af4401388000b6e69ea45b326abb2573202de67e5cf4c064e4b9ca1a8514e0dffc98b69c493a195b918f70f79461f692eb8831a6dfb900000009070d9aefb3da2dfe00a7d2af651e2acb69df180cf66eed166bed5d1faf3e3b656517e22142737d2ac36e9ab812f04df082873328d44b77390f183f326f0cc8d2b3b15c6e4f2c29ecff7ca4a43b155e48828e284e51f6521becfa95f55252575b19111b30ab145fb1c7a6502bc59e829c706782348094f0c0c7b163839133d319f784e2d3303aeaed7ddd331faf711f951000000909743d75d6ec72d4297dd828d0f52dfe07f0091facbce0228271033dde57511a839a22ae30cd7c4f6609a2de0e871a581b2e528b0a90db8ff871af2475b8985d3a04afd894c356187f386219610b7fb180670a3a20f5b04af6c5a765462a6844cbbf7d0c72eb5da66321f3311fa95d99d045f2bbed604cf948545266c1f296b4bddfa1d487c780c58d8e71953e645cfc9000001bc000000901eea6f04d80babe64b4795ad61a35c08d32f67378d2380b7bfa04f46d06e6208c1f28d2303ea2c4e8171f3bc2d2c1a9910508baddf162dd9af42c8f7604f886fb7317b025f273ad78773b639af1958180989fefa2599b70c68a028ef4e31ea067b38444a98cc276aa404dc52fffb57712670d1f19e7b7a0238caf85ece99752ef1b36898775eec4bdab128fa10181266000000904e0b81d40cfe9d1b4c3315dc46394adb1a409d447202e106f372d091d481425800026683cc05cd01a4ec5152c44965954bb81cb66463fc61018c549226fcef6d5ba402fa203aa353a965ff9e2feadb7125b0a6d0f5f17552ba90bae6be27efa386db8d807bb07eb388bd1a981f4c9f392f030f279d5e557c7d6051ac0bbfe1868e91541eac030abdc009967c3a6724050000009013041cded588c50538a529d282842e54ae057463f35f2b4844e5dc77761c1920ca5a41ba99b836a664f5214e7fbb4b9f4f06a794dd726f133edffd80623de4077acfa0887865d9cc6d89a1e79bd22e500b4b39c12bd5127dbe36d7153da668274613a31e8ab0683947fc67dffd8e720002e46517bac2a598f2712fb8f529bf6eea93c4772660bef673845e7e756339ce000001bc000000907d2b78935e99681c27d68d2d196425afc040eae419fb3efff2498070d1376a24708f657d887e88e493243bc1012016866572433d3525ab42ed3c69d51336bc1b62ba508a0fabeead6a0fdcd6615d1b011aeb54bf48d725c6c938abc9340863821f656fed760468c8b24b87ce84f908211507b8b4f819af0e73a81d9e3f8ab9ef52394fb3f2a84ecb50004356347ea40f0000009040c20a9d2ae8cc24816017c41a22d9da9c2135d2c3a5b71c82383a8d7f61ba080a6d666d12d5cfe8032a6acd35835a1f03bada40df38cb0419ae80bf2ee0c9efa4b02863f10e37e9c441a359d29dc3130297260327f43b962afb5b6406dd3456b260a5b1b58ee80b9381b17050b63e042a86d67555af1bb334a8d2a6f825a17039e93e8d620afabd5ce9e0aa6412da1d00000090063df44adda8384565dfa07941d978435cf1ad2072ec9b9d79fe5b39a947b7ad68ea617daf9471dd0d1d225d7a544b69c9b38cb894d2a6976ce42bedcc8d3c82c3d177922139ee8103dd4113cfc40018043ee6a9b3d18e56a679f4070799a3cd94fc90063be7efbd85f7fa76e1b5bca92125f9f881b6626b43cdf2bd607a43ad57e83149979332407a32c9bf27f81cfe000001bc00000090f89605945dde7a518c2aab34b78f0831a346c0ddc0bb9734b4437b2ec319093f3bb754fbdce71e62b9f0cdfaa5e1589dee6ff2e9e124f8b4bdd39765dd4a1a4480ea4a792f4665c858c5d9624ded3ccb25eccf8fb852d32a08b9e1e5050bfca43e25bdb2129b1047df887b35ff08d64b165fc2ecf4c27d7825ea8df02f0bf9283ba66366a61de12245bc49116aef6b9600000090068f8311a118ca829a61ce3b443cd79567b12c93cb950c9222f039b112242dc3410f9cddbb555faa0ba3ec6f534690b824a5af190ffbe772162152a7cef290bc6e198ef04d40d6fc6962f3bbe5ff8cfd1bd6447d7ac68ebaadff48ce3296b68fb5c0ace2b42e8649d900ef4bdab307a30b00850ecde2e9ca4e903e32adf86c723393f658e5f45f5dc4d5f703720abd5e000000900d493c43f1f52ab642a486391dc8c7fe4d182e21519865e5cdbd0923bbfba771cb7e271e516167f0918e279b860073fa0c1eb283767d4e159591db2f23bf49d67f93534adac491be319ba9d480eabf0107e9d63c30be1c587c2419b4f3a1f941660b0893528246ba701a6a657daa4837272aa3f90a36648b1c756f19beb3e681b75310fb5e5d8abaa5739dc87d8b8a13000001bc0000009001ffb46e21b01f52ebdbdafc158f4361ef390c0da5615e39dbd15ced8be78d182733e22100b6b14d244a05a332645c7a53f67c814bfc1d8bb246e4f3030ea00d282590fd36a5e104bf2095907cb84cf2157eecc218512df1cabfef1d42218ef2f9ebdcf2ffb79029d050bbcc0103a6b607d7407b4b1902d34e0e53113b4d0c6d360b9231a1f3676ae6ecf09d2c2362e50000009024e6af36bbd2e462b9555cf380fc687a902fcb6d9ff57ee70f3b588132193cf8632b0b6c74b83d14528ebc550c2cd35b19e6ce58bf9993a499fff20d5c7f74e6f340eac36d50d100fb2b9218ba5627b72fb1579edeae78cf2f7c216dbd4358c08cd1a0a295e971c35d798e12c194a05a0f88e844ec1bc1b9452396b91cee2df848bcae4e0b36fbe51725c7b1ebd386e800000090476b0c2836ba8ad84b96a276a398824d54c077b7fbb306013b4f295eb903e467caf963c475ced241d1c32da91d0c0d583896d5e09f46be5959b84deb56a40271e19792b469a402559b816e3ff005dc8b1b57e5db0fb7828f0b17fa47ca36bf2232ec8bece5d8793c7fb0f4e13afc66ad2eded52dece2313bc725d4645105380e4af3309ecd66fef12a76bf674553190d000001bc00000090019a48c420d89ee53949b8e920fb200e169e70536b51adb238dc6f0e2f855073c070690a87908f41d85bf5f2967759fd4fd6a047788274fb75d2dc4484d207ecd19f30819ad59a851be85e5f48cdfa21071f7e89ec63f62dd9e814a8e75b069979e4a8c8f28c26a8e20b95c2008a8c482a565dc01359dfa71490371251c73efe5f2f99c088daaa10066222a71c4d42ef00000090a88a455036b68ab135640510b8e39395977e1ce20588bb0cc84037673b254e35e4792c9c8610337a9486878c6de8bb3528b218d34ea04ab333528e98dcf7f9360f50a1ce0ed54f9f86ade5f2037d7ee12d996dba01634e24558444b31a5ac15c6ea414016b37eb469c40322bb1c7334a087821b940a9de22ffb729f513bc66c20220ea52d8c0be1f5be1c08008dfe7e6000000904308c6b8eb3cc92e54434416aa52413594869ed558f1e02efca0e0ec84a48f04985e3e1d92b88252a680da4e857e4328be9350d3c874c451f5d1e5cf181f9f31bcb1f81656b9591cb07d4f3dbb0d22ea095066a9f9d506cc030ea7cf13c43c3d615d6abbef1708501532e4ee54d3e6d01ef61a694f3c83eb9701ada874b1b43bab8647d05284e030acf7dda064d5c14a000033a000000ce4000001280000009058a11dbbaa33dc29ada68385fb562e19c0248be7a5018a1b7913fe9301989e23e6d3d6159da6a7cfd14d379230c553f4a5fcbacafbc829ac0476e63aed34a81e3d5df51d2a443ce47f18002d149136690c5c1d7b2e5ba79717fc2c3e88f11397d1b5204ee11a5ae3ac773539e81f11a80a57e67bdf5c61472bfdd0d19f46e6a8d5b4bd09fd82938be8d3c67e5f8419b90000009061c505cc43b343b64c6ae23d2d3a7f178f86fa4de2616658fd7444b7ad6d36ca7529cada529342f81ca222781671e52f6da1177d40ad92eb10c1e151e2e70b0942113e8f9f1d80050e9f5968e7098f2d26c8bc433ce063dd5fe37502aaae904a361878356c3dba2440ec803d7efe09d72b3030657aa269d9b0a2fd32f98515cea47fb936be2dcfb05330fd28c27eabef0000012800000090aab3fd20f1c2b74c0a98e44ec5b6d5871a39d7bde3be7c9e305a1b78b5b69e34e96ad2e54bea7bb7b4f1d1fd330b98f057e3e051bac002b6e049d665b7ac853e44b6e85d3c47edeb7ab8e0694b414d572bd4f6798af4632bca1763303a0adbdcb67e80025861638b989bf69b3cdba19704d8b2640c678e6d77f322609349d859e1d079f9592f82d7366bfc8fa1e3d09d0000009051172e8e627c51843f09fbeb88d348b86f71074cb76bae310e8ae139e94693ec0b768827676738a93145102913069cb19fce5739f39cc708f054297a4a11e392f08278baee64ccc7e7ff0ee2767ab3e9010fd066e5e2f91cacb7242a93e0d0cd216f47e0aa346caadbc266d5f5a3e1f909778820fa4fcdd4afe02c26fc232b1b65bc33e8b6ba41012be34e65dc9bc1c50000012800000090dd000b6fc17ef00318e1d655346368f29e0f3f017da41b43666f6e3802396ea1258a57f78f0fd4dea34b23950c0b5330b80109242d9202f0c9ac050fd8a8b481e8edbf4a450dbfd9676cda4323eb146f0a5ac92f52bf8bcc5a0d6f70ec69af45c4fdca41d5591e751f6576c5dd6769930b9b31c156cb0136cc17ad3bf71cb45f1e0c4fcf2deb699303c1b63f330efdc200000090a1c653fc27ccdab5f3a45dfd0b36f5e6015f6c33d709d1bdbf443e656bbd8d359f90d6631eb6ce489d6c25cd8696259add18e66e255c6af271fb4a4eef70a7bd0f1a2ba52dd0c8a818abb615ba1ad868047a84dc3537a251faf4435c25cffe516de034cc5f8300654ddbcf2fb5c688991e988f9a2dda3167b3af648a94690998d49d3f616c337cbc64b5efd9615b44fb000001280000009015839b2123bdc678bad7544bba6605575db0b4f73bd769765ab09ba984346acdbdd66e1e99faa7f104cf9913257398a18bd539f603331e3e4dc10496588a2754e30c56a9baa525429e9d171f2477dbfd08e003a672a180bc75a44bcc92e41bfd9f0165769d969c641ad670cf0b92959708f4365b90cf35ef1039e27a6df2e8c40965e77393d71c5b98c3c54f4cf7c109000000900683e98ef9cd8964ec56a6ed2682b8e94a85f0304cce4072ed7a00a6983c056039ce8f68de1f51e7daf63948cc4b633798ea0cacf136f0b2f56beac7938e3b2dd58c98caa99d99f7f5252b50209aa5e806bb3faede475cf356767c3dfea7fd3c931067b6a0232e864d194371d9582c7009127ac2a0db5a8a0e66ad47a0cdd8006623f63740877f3481139ba407f47c200000012800000090c7d794b31669d4c78c5d77312e2785573675e7b6bab6a54853d89a9d1e08af640c405a361288910a105df8f8c8a8a4afc1cb34237a43c761f05d63af042d9cedac42ce82d683ace0b573e5088f67948a03082cd6b4a4ba24469e8a8932db27390f3c34691288a561e305240a1d71db922bce51b4cb6b3e574317c31c0d465c10a4236a2de41776bf2ca2c28e8c5e4ce7000000906083258d6acc362cb3461027e3300318c10bbf85acc9f3488e8209376f9d0d65c6f07e4a65d1850b76e3f9326d6a87b9ca8902deedf3a66646778d7dd8b0a67ca55aaa1f0ffe24a4f54c415ff1ec9ce62a7c4ff1514a7ea00bf463ec7d54ec35227c15dc583badb708ed54fe42e2155202b3534c0679ee1e923658d3f7995f4a17feac263b60690bcc5d2a2d78f8b1500000012800000090814726dd7bb5c4b5c44f1217c622441ea0ea38db88ef24d7b031c4b207ca5bbb41d1520c63e4f2c34a6f317a32c5ff1585c3b5454fbafb074b13583c90e3f864e668acfdd4fb66df11d6a71e940d41861e5626cd5f7ab0feec7e6cb4887cbc40043efb49b3e15ebd7d5a7a612960e6bb0f01c6e536c9148595d9a52d0d5ec59f2d17920d31d98808e0c1d4bfb7d8cded000000904e81077dd43d002a7e940609558b0e6f63f491162b0612d799c48dad8139f3f06e596dbe2211ba8d3623348a5288fd719e87e37261a8a4c46ccb50483e7fafedcb6f823fff16850e6689488975b49ea91a7742d6c3966ad8956755114b54dbcb8d1cc01534c20611b2b1606ac0892e252050a63ce91a7ab7f6da691306f7599819a877c8a5dcd214127bfba43750ca4d000001280000009043d8e87f88881efbdf9fe3d6d981a79321c69201d1a001f9227724d2385f94402fc30f40d6bb5f5abaccf737e096bec2aa8d808a991c3457529968e6c2d686a2314a187ceb581cc75b57b53e66c8c6843040c55f61701fada588be2f69340cf3443772c2b81327d61849e4f59830898f2ee53f7c840277a979de5db5df84ae770836b68606eeb89114c3b88ff56922ba000000906f8ea16cc4c640c6b5b86f7c2754cefd623cd7789bcbad86951053e0b2bc355a4a79ac7ea269aefc8044a72022a3904be1a842feee01570f0a0be83ac9b81f04a7471051b7a20a197ad893e3f5eec0cc2adca5d6f09e10809238c3de4363c2af7c8c0f54b30f085d04626af86ccaf2bc2d751f44645e44cacdf9eb4305354aadedd930f69a6557d6a2a60d347e37f1b20000012800000090b848f0e992cff482ca897f00e436b6bccc99e4c7ed3e0875c737ce9aaf7bcd96699ecc648ec9fcd724fea3de7943e5653a34cadef91645ee312e75a116d742a1d85de2d7738759acdba78c58650a3b1c094d522339cbc97d4d01620f8c9b5c8e6650072657643becd21e6232ccc23ac617b0ebcdce3425019be128107fa1ba7ce245c0c2f8507f8394c36d365044b6a8000000903f57984eecc6c4bb21f3c97e7d6398215743f197c2c0e5a79fd044f349a0f955a18b7274ba74625c7b5472a02c2c1f0f64d5aeb1b5fed2f64db05f04c0b35fc228160ea7f1d19b7a00365d5af17c2c270287411d24dbe078e4b21dc38be0cb9a8f6465ea8e5b200bbb3bdfa71bce73981d05895cf5b95c3f932df37d8edb80e4c69a49def556bc977f968ec3eae505ee0000012800000090550d964357f7687a3b6d9126f765b4ea42887294396a2741fd0c759ce74376c33d54f5e4f221f0bd939d3281edabe62df3afd9fd8b4ecff170126b26c35a505b4f5915e0bdc91a138dcece72d6667afc2250a85061d63741d069a5f3f91b5608a2385b1e8c6248761b83c5bb65e4229e000e324222e3e295e8305f19bb9d462bcb3a216c8c61de6110f0b1460abcf68500000090d49a1c992f5162de4a3ee22df00939240ee88891919c65994bec0c949de8142c24269151e4ff4eef30b0a287c8a3f5a74e4d7abb215f442c2b21bc223b37830ba243b155663e5b15a39cff7dd3bd025017e80b3fac8e23f64cf2fa43a33a8bdeaed4680c346d79bd2ff1e57df284a09d049003c94c6d25743ed0d5c4fd89a0052f71db7d4d78232f2b8cb92e3234900b00000128000000905be3d7ffc8c42048601533ac19ac6c8efc11c857eac4f58b4b87dce507507e317c4bb5c2c3f1220f8922ac42ebfc321ed7dc23980abffb3c8389aa43e97525b4f559fa4e125120b8cb7679965ecea3dd113303b002d5cb07ec622e8fa17e4fa66f9f8e6b18c24189913715c30e17f06115246c45f34962c0c71310bbbb90f10b08e061746dc165cb8ab5536a0e9b4b6100000090ea8bb348900aaab0c7f4b6cb5afc2b2e6564e55ec4a12465de7aaf174d19f9daadefc949bb6a61634f0c14c804255861e505c8592e96a3790a016081ce3f92c434ad76883f68a1198eb83f93beda89741e85a95cac80c9db098828b23727635780285d94da0caf2e27f37edd1db7fda00f82b9577108c38230e8ce249e51f6898f5324f8ae3a708a464a68658eed3fea0000012800000090d69d3884d9fa8db5d9a0aafdd14096fa5f5e07f0fc2f471eb7ceb7e63c843450b314280aa0b6f3f1bb394aa5253ff8f9e61dd0604ddc6dbccbb9b232b83ea6a921c60ee49a5461d9dbe51efacd0437fd1b6f66bc78f6c35e513bd1dc3250759f138ff632e86034ebe805b5e40cf97afd208ebf9aaa5b079ad436957ff87faf48effd6f806ad31992fd597607e549f95400000090077660556e07674cac5a4eef3bba09ac0121d6aa597c2bfaee86d5c1939f02e9a08ae03d6b3833d03246d9a60965316c6b7350c5025ac2ddde4b5f8a3909894868fceb23008fc3c6bb9607e22e3ccd93137f2d16027be26d718852a0fe5da7875d0aa4e1461c25b29167ba4fa8cdd8fc29fab5f6e55c0e67321b9ca5fa5cab0c4f915046a3a29c1b8d3d943a2a54493000000ce400000128000000901f717e16576c5c10bd8a10c564904c84b046fdca1cb8c83da1be094a9434f747ab51918108f291b53d01c7e48c6c50eda1057710ffaa765a18dfa1d3823575f1c4d21238d44a11f6e112394c7d3e8cfe139c215a641c10ac6ab6c4fef72b5905e62c334e733cfea1d33d2de4fdb79c110b9306b1497909d2f89047de58cf661f86bff436b80ce3e9036cb5593358587c00000090c61c80377b209c6da5a831b2c525a59a14a13cf6cd6e50341fb5f2c21a70da9162847b9f6502d7a51d345ce3098d47f6462273f834ed8a3d19996e1b0c436185e5b4815e43a784eae77bd52cc413fa5d0725d5ca61384ae1abb0462d86e1d71f4f929ac8985c83ca42b0c7350b569d70081e486464fb1503638a53bece15315d1e4132d647ea6cf7f140fb0a2c02dd340000012800000090c860d8efce5b43084983049738c12c4781991242f0e564fbb21d010bc036fd088ea2ba31b627d30279553c74c1c93e84e9abe6fa76c126353bc608ff2b66d76cd376891b6813191ad758ce5f1d5d706d1bc21253d7bc9037b6aba329c82182d5c2046bb20f69c483dd1425ab7386ffd72b1ca2d72a4d8ff1b1e1357d5a00f62023bf7dac6782d3563e5005bd375484280000009020766effa4d23acb703176dc21bd6d2bbda2418176cdf4d14998c6fa6085fbe58a4f7663892dc8863a45cd364ff06413185b383ccc8d4b8e5ab4e0186cc125e420de3fba775a2e7ce19a8fc581949522046c5371b418f9c60180329e473d4f1bebea901360501c27b58c010bfb47fc5a04e855250450a084c00e39b848fce60eb149869d44f5139c86ec19643e503f7f000001280000009068003d2e207fe1f4f0e2903c7f12a889cd97360cea337b73dcefdb3de788919e6975714dfaae6b68977271313cca2bcbecc7b036cf479b846fd7e3a528b8b90aac856589fbead14d91f63b8754c27df11d33331e2930c3a7cbc1bb32e6a349b853fd9d484c27f9d8dd02e390bb4ce2a20bcbabd186e62e3737fe3c9a51011a3a5920b47ed0fa7a563dffffb65dffd77000000090f609f0c7359598df6953914fe57a31e020154b26b4aa28204896e3528a95120740b072bee852be432f772d671bf9f92515192aee0dfc5a5856321c21233c8d7002a03833146cba22d0a4190a08d1a47208fb071c276dafa999649d42b307cf5d86771e8490e452bbefb1baefb573d3762c742280580d7376e9f4ea1d1486bd0c541e3fd46c0b1ee0d09888557bf6d6b00000012800000090e5136e1c5018bdeaebc8a84386131425b551ed9376acde8199f5c48ecc2cef6852185999d2485763ac1b1f53967a90c700bb9aee823b4c656b595edfffbbe1d6d353b587f3054b59a0c3dd5372eb3e370acda847a9d561e15226a15dc9d0f9a5255426e4228b79daf88d5e0e2548760623073a3a3e5177ae05f1197981f452c6190759a1bb1418adf90b13003b95b8210000009031fdb894dad83f81f86c6a179c564c34e8ecfd8b22afc9514c129b9dd58e0c0a9d758063fe7225cdf04075a8323cf1551ab0c2d5304703b053e150e5924eb9679f1279b3b5144a6d9273cd879023ca6806442973f54405ed8cbcf285c3978b5e6510d3cc3c3a08efe916086c23be14c116e0a7a779e86bb9b5f4669e3167ba095bc41b7402ba61931555be1506a892b600000128000000900ef862406629a92c15574c89727bbb7ac1cf45d987b905923dd49a9523cda2f6af918410c959402239a323d54ad02c049dc3ebbcaf8b75a7a6f56946a5bdb39c2762855a72a91df2f9ff850549940cf81333d8e138c20de0899285dc5051a3935384a2190ba786082974296f78b662c114b4f6915fd5a5617de5f05f922bfeb56ba57eedf2d97ec6241f0289dae7df0c0000009090484c79b1e0b61a92ec61ce4ef2c51f480b28b7e2aa87d1b2c1391fd8bd4a4b8aa64f562dc6d35882348fb1e10d76fee3cbf2b4cb1c4480f95a617e7b6347223aea6b44eb532a69e880d288eab281c914debf1a6d0dca7fc5393bae0e930d5425ec17d97b030c3d67fdb23f68ed602f15e95682c5a1eb2088dc7e82a8ddbb589175af124909e9a2d0d4b0769b9c881d0000012800000090d3284c9c659d8b0707267e8b10bd9789f2556c96260eb05798809991c94ab291e727e73ca8f4477b830202315f99233b99c68951eeeaa94899c60f9c6dac4b3f52f436d80945839b3ef755216a37b7aa156c509162c1f88541f78e4e56805ef8a29d564423b719ae3a0a50307ae7f1cb2aef790844732fd1936c27b0f541114364b54dcb737faa15a175652950032c5a0000009017f42abe31639bdc24dc7d9f212ca97c6443784871925f35b8f4a6fa43d4989898fd33ba5275c61e4a2d5bc55cdc335f96e4070bcb8ee5b4107b72886a3932ea89ee9e94d556566e0b0af98388ebfb380e029ebf47e9a00680b51363b3e3a864e1674fcab446cf3d1d01b628f9546b890618779bcdf57db5b499e46b6c00ef69ea56efdebf94e34d594407387111556f0000012800000090b132e62183ded1c670bc4bd895899cd38f06bad9b8bdd4cfd672e20c12c8afc5839ac380c6fb6e68fd0dfdf19cde8d342ca01b34d947b83c652ad8c69a70786fa828c9e9cf21006d30c0de6c72ac6dda0eaf6f4f39fdf3029652ed4eeefb4d8ce2bdb445bef9a446d0c39b88a124bcaa2f03b5fbbee509abacf7cb4b7422575e3682ca5634e496432abd48f5d19c512c000000907c87d96d0d9394843d242f5cc6c163c061fda2dae63e3f659ec53a6216fcfc27767fc426053b1267a6faf53ca8d95cc2efa72eed3f33e215cd499a5c2e75fd5e6931349ae1fc12300ce47e8cf1ab8e9a0629c6a0147758df2b1205878553869afa05c2236f039d0b8a97c0010bfb8827210fd1d69d077d5766a4f7744d48c05a6c70ea1cb5bc73df0701fb54f5e06dd30000012800000090e47e5d22930f7723ca2ed676f15853713f5305623ff0b379bdb579995e997c8cb75cc6d38b20265238ae77728f50ae219e3ea94e91d61cc8ce975cb2401ccf2651ae0d90b7469dc7cd4728befd0a6e860c629dc959061804615987f4fc99c2cd054f02fdb523bb61d90b20d4d551b9561f1ffaa28c3670545c1cb04b86d800066127c64abad06333b7f2910c6150988700000090bcee3f930412919544bcb8eea41b6d5cbc811e0f859575723836ab710f3dfa7dc2336b8c587f63cf549c7199e1274e83e4342bb679a4a310c2d8eee33807f49d1e1d9b71686e031dab782ed97714d981149d1abeb4cb01b550ddf6230d282aa12dde65a87a4db8c851158d88c961418411ed1479306291de7392a48fb0993e96564c9279aedfac6d7b0cfa4ae8c8d0c90000012800000090cc95253f57e1e449d799d9ae88f705d44fe26e4b5bebd668c618424ba0ea1768d44dc1a7b3cd7990561e78e69f056b8e19264ea97f446a7d4fb009616a5b255ecd6d191fda872fd8b9f674f442d890c92448f12b249e081cebdde579134dc7a48874aa64dffed480906145a7c1113cf3189daa1781874bee162ec5f16ee312bf976cab53d24c04016f4dac5b4480f9bc000000904776d02d6cee37a71ec4453e2952e311d9bf36f0348edd0d5b4a3730400525aee6ee5e68029348e088e7c175ecd3bbd673b6a812a7b696c6971d62beb98077b63a32e244fe8c3751bcb8d659c935b75229c50e1735b182fde7ebcc6c9fe25471c50f2f3f95842a6d37dda83bf61c766112c570fe6cc0680ad71d79bd43e90d22e9b1619077c717fb591a9754692996100000012800000090a26e57830438298dd3838384705cf18b35e3a15039693890c52c431e51448366de6cf815d9d04165e37eb33cdfc4273ef58c12398cdd2ce7b9908b2658413862300518f285306a63ab1e9d27442106b320cccdec81c096e7810ee198bc79085f9e92167998213d3217735b229da0034b15d50665a1f0f1928674ccaa57aad3e56aacfd7bbc6e8903f8d2fc56e58df8580000009091aaf6da56e346e06bc185ae1b4707ab118e17c44e837dc7898902e3513b75e47f08a4bbff9c4946fcdf9d9695958740f705c0dcf714dc386d694052e491009611ba3654c18c650bde72c4b0e9588aaa1ee848824c4047be7d47f194fb3ee26e9effc349936f6de348155eabf208f10822bab739e4ed52d9ecf749c133a17cf892b6ea460ab9d1c2d141353553ca7b420000012800000090542778661ad1536265596e9b9acb62c924daa7d39bc9708f161cc30a193d1c26e48de678cd62b96a7adba0eaff03892c3c769a5d3afbe98504326b0218355bce4d8097f73a443c30f674ea9d16b96e7826908b96d258a3db1ca1d7d3e1014acd9233deae60afe89e7d34ccc4be8a23ff1b6cadf34bd65a361fc9ea082dd9ee0fd3fc3295d7250cd31260362ef41b9bea00000090b71c893fc2dfd27bb72055bf2b5da1f092a8b28c7cef6d5c0daa9a535e038fcc9ec51b6c6e7f4b5aa65a8813d75fc186d99b6d2714cec0fd39b4dfe8d9063d314b39950a7fadcd993df3cf226955274216a0aa1a50d95862ace4750bacfdcf95d8a1b11fe38bcce3d27a8419643e3ffa278f5c4ae4597fe9ed6214c05b6559913b06b19737467b977d9c04e6354fde9d00000ce40000012800000090df814d37251e81d9529dbb210309f4a0b4fe9917300bc980db42af0eebd1b708f3911ce74a3b2cd0fcf258894d04382c48d47268ce668a558f54459347c0a0c1bf0359727d927f928010952c0d611cca1cdd23b76143e5305a250be2f3f54929a3a18759ff59046597a6c9d877076fe10aeb57b23c9c454b9bc26ad78796618fb619bc361f38aefc899eea4a187cce6e00000090a8a060ef4b5f61dd86ebc67dec1726c3096d06d6879a2474e055de985cdb00ed0c0af11506162f21d39199bcd886bc17a23df10142d4575c7820d889de0ef15580ad003192010d261c38646a1344368f2a9dff1ae5b23072b70871cd2b7588fd65bd8bd44ed7719eec4e088334e5986021484946bd90786fd4fc39dc52fa86ed7886d001d3ee64206f0c5de7e517dd560000012800000090093af15fdd24dc60a17c63743a008945caf76d4fecfb8b973db7864fa2d23bb18a75df0d7d0c27bb3e8241363f4c2b252264173e1c6478617f1513528342001d4cdc6bafb17ab9799d0aef54910fbf3f07dc8e8f7fbb24b2422fbdf5dcff71a3104d34ab492e30ae6e229fbe3b2a18f510e28ce2d665f568c14f67b707526eb6c5423057221c87e57364d4f929d92a3800000090ea6bcb48020f5d194f522ec07220f2859e160a4def93c50d9b2e3838d744402cc902a12fb836458aa3724d521fbdab0f7ce5f2cad792baa06d37d9b880a3c3a6f39b760c0e6386b2ece755b0b70709af2e6fd20503219361878ca733d0846970bc36fd66c2d65a115d05c9be0f1895a5068551f353629807bb187b328dcb93610d1676470ff6692f37aa2c7a1aa78277000001280000009045fd3ab0ac586a55781d3ad84b47bdd448d4312c21b58756bd6e866d6a3aa459c8c08b3751a69d4ed7dad3494b61cfd4c40af77d69d0f4b74480b1674d47b5c052b0c823d8c6e270dc548de8994cba06135c22ec535e8fd699da3dbb013c8104c07b036013b9733ec7999a99908fb6af14c649a5f2fdef651151524f247f4cc868ff54c895683c6c06af0ecc5352f0cd000000900221be3ec7a77ac0c02a89f5f6afc7ce0d400af4c7f3c9e8f333db0f814453bfbc72cdbcb802cc6dd87b7d2402a70f0750355f7dc44bb5638a71b8484bebc29d26855821bf0bd5752717205f44b6083220e091cd96d0aae102d13623770b3694efcada6486d31e271be9f6ed184dc138007521e86396c8167bf1e0769292d6eb44205a4e7b8d7b14882975f8c852b8ac0000012800000090f621215cbf07f263742ddf8bcf10c81af2a3ba85c2b830458573aa064b63146cc865e2bfa6ece775548f16918f922ed4267fa6c5875fccc25077f561f75b6da876e4dbfbd32a4b10af407180a73c1d04081ca4c9efdd437e2db28e2d4611bcbac333710462cbea53c2481b75bb04e95128499f0e8799df086708db8234819064cf51c67888896ba7bc0d0e89f763439400000090293e6dbdfc2c738098231b4f1c8f0d739be756ad24dfc1bab7245ce3cab2cee0293f34adfc6b2b8545cc225caaf19ed3298dc00bedae7dc5de5516804661b960984916f9b978e6700b002dcb201ccf471e22f3ff617c4874ef51397c30dde547818a89b211f9dbdf3dfd8fd0d8d3a21a09da1a1161f46869d65008c3a039637cfe18c39a19df1374483b42b6cf9767b80000012800000090985d646180b524e4b49ad555323bedfc082613c7d6979162b43fc3c7719c15c801685bcebc7e855b18aaa215f014fb290812dbe0c720ce24fdbd0f4b4953c8a9bc8bf4c2f9ca4bcf73afdbb7430fe659282277f19c72e657c3dfeb0492e55caa22ab062f983eb417eb74fa6e518e6a30150854eb71d0a8aa344b1de99ed6afefdadcca0b97bc7c1c2a9d41997fe83530000000905d1e0305028278eef7df7c8df1d39a9945c64a925cdac4b7247a7724175b3b1cee30168ca5234b6efc50c2d23e7877924e2497d6b7e4ed826686e1a8093aec5ab08ad36cd2e04ef235cf7a30a08ef19c23fb2add0dd306fa4ae8881e91ea81b7db90bd32e28829b96075805fa1cab6900d9e963ff5232efc60f516bd73a5158cfa7a29a9bb07ba3a6c20be2e8315c5c0000001280000009007faeb8e333cced938005055ae4a104329ae809af5e6dcf92c13d351487c87d3915868c20b87e59cbaa6eccb9174d56f1ad6a4922be01d2671f5cc1d1d160d9c03611572b49bde324538fb7dd8e24687297e6490ee16de68a15f0f3db95955d8bf104cdbc6c90c5c76aa1ce1b27109552f0b09ed4e193f5cb47b3f68c5b9aad2e59b3995420e3bc6540d2fcf26d30af700000090ddf990e84cca0077f0d8c4ec255c2eab76c668e84cf5ae5ce39e06aa31ea6bebafea2fc22bbdbd2f227327cdaac2118731b620882606e69069db26b1773eb2d4f245227c34ee85ce7b87f19bc235e58723aac9fda228bf5260b1e9d8c64b1e4ac89f788b294e2a800ec83824e152379a1408b5e850966e49836a51af8ce92c211b3ea936557152c88fdcc16f3e398dbf000001280000009010002d75ba1ff4554ad77a06af2fac51123649ec050a90597c7bbf478b34983b6f7b15944b5efdcd8d54e4ebcf40a56026345a578bb526cff840fd54f335c002673717bc46c72a97dcd059a2d611985e1a19a8367b402f52524385a5ec56e6207a9e7c4a10e84fac572d70e9b3cd1dbb1fa7fe1e39bb6415bbaed8f6303a99a23ec054507ad79c9bc29d0dfc0bd9447b00000090f7ccb463266a4ff7c273e9c0a136956b7c6c429e2ab773a18576ba75a23b8f8f543493d5adc9e49ad9d30b0d3f23932d60020d2f2847ee8357fbc6533eedc9be6b55d81d87500628aa400d331de9d83d2a3fda76c9bdfc820d094625a4596e02db3e604da144fb834934a4e2d93d133e0d404301278631650b7b68bed665cb50e03f214684d822e14a300a71457778e5000001280000009080b451e6c9a2c420625c89eecda47b21b03a949e5315c38d9b1c39e59f5009deade992bfd878ae2397bac5d4bf2d0284aa9f860a70e6f41ac3b1dc5c0349c2b5585f550a5fe67b70b817657c92579da82ab5ea0d7f61481f802c65bd54b3c87f52dae10c80db0c79d9fa1cf9b45b7da51fce4e7fc0463b489c0512b1165f3f42c75ce5eb050843318907374e280d31fa00000090b217fdc174010515389583c88d932d0f285943bd9c3357335e36caee6b9730f391e6f34c191f74f64d501bbc72d370e08cf50504dc2ccef5073ce027c9ab057da6338d64db7891f135a8033c395e9e53206e12f5ebe3796201c8c5fb6d0953641c5a2e89efd038aebcf9a0c4f50d1efe2464346e02ae75c843c6b11a1cd84a1b996417e45d4b9632e9dbff6b8db094650000012800000090e93cdb4a85f24cd964586f1e9702d831f03a265294325040cb2d5510d18d4a5186074cba2d5a70a0a862590867842de3baa87c6ca244fa5e18445f78d21fdc092b3c65a21f34c04f69e10c201013efa12b63b34d3a5f84f6ed2ceedc99608fbc6877950e61e5c971e5d0d70a8a6c65440c083a8218ba4687f3c1c60a94a5a5fd312276373e45a4685282a59c347a5cb200000090e2b0dc32f29f76e093c78c03bd76fa41ff202875dfd2d4dc7b699c2bc3faf4bf2456d6c69ecb03c27f23e8a08f6234f58aa364dc86f829db03509e4076a1f2aa9937c64cec202f020616b3afb1808acb154ae4da1dba87bb1f7ef9ec18b4f81c93699422fbf92201ebb8d6a9051da20d09fd65e6a5dd210d275d2ce5812a6938fe864ddb6b2f2eda2f97eccc7e270cb90000012800000090dc850cdd754d5562d2cd0a79a93dbeaa8073e8c59be2570e7baa1fb1c4708bf5d247b4c48f47da5504112331264d08219e885e7fa72af442e567b79cb2e47bb074f50ff258252ed089b52d73999ad1c6016079807c678fde5d22a5882e20e8444b3bdac43c815022ad11918c83b982cc23b269e045508b459b0147df499459b9cf406fc80a366fe92eb48fae1ef2f020000000901d1f47c4c1cb18a284d574eb6dac526160fce963527d2762b13f81e4410969a6fddcc1f847fc435907806060857bddd7798b4b04001edcfab63ccb41ec96fa3ba28f8ecae989f85a444f4dbbc226a69a24c309b920b961ba352e9ebe153e51137ff5afe88a0c6e1b1e1044d51904c31305b4180fcf006cdeae8184dc4b5e2e0f1fbfeefb57d3309d45ee8d924f0438e50000012800000090c00446a7e4204241776d5234a2bea9ed935e437d9ff8d31cff62c072c294cd709336c171c4d2008a18633174e321640679b645b4cabafc5702f8936605d9825eddd72a4aa53b6899d22642e58486ead90e7f35b24a3beaa472dd3f8be3c8b65c001b10252457d252120c8273f645f52c2a2cd4485def46cf3368fb5e4703f130cf1b6ede3df24c3cba58ccfbfb5c1d710000009022a8ef23801ff2e837f3e5db3361c6897db0cebaebfff4bc19fe2de194ae245718259c23897359d07e8594d4086da22c0969b3cdafdfb20b6df113841c3e2520b776025831c68c0a2a1dd4bc581df7631d6a743a468d357ea936317efca7f6ed04c1be2dc7e6a1b829e3c9fbb423224c0813db64b88a639a1e2bb0d28c118f29d9aea07e5f7eb68c0e6c044d92e6c5a200000ce40000012800000090e2bc3a48af462e994976367fde39209c31d47fe41a4f37fb644f56fe6421a805cdc7cab167dda0238e4b2d6fe9ff7190d5b00977da7d3bbff603adc831d7b5c2991bf9b8fa11f7b0cea097d0f2f4437401198ba8112a0bd4bc1f536d844648050559ba594e2221f41ff991b831afc04c16d1e2987434b415a200227d598641301debed676bc98f6fac8dd6b00ec3d5ef0000009090adc3bdfc913e1e8f6fdd10fd6e3b62f9a64220c762fa0e0074c2b6fc4f61c91fded0e9f550dd1fba9ae651f1ac0450a72f1b41be401fbf02f969d1a3358514748f32d4093cc1c301db661942c58b49274dba34e513a07634442e055dc224fdd4954bc4f5ec39b56f263ef83ce6d81105dfbcf76b28810a08b23399c067c0730cd643ca0a71c14dfd7fe6a7ca4c7cb80000012800000090cbd5b3d8671123dc24f039239bcb164750d2b94f9e10b011bfad3231ea137b6ca803f15a5adddac120f372364e74f8fe2503f3ae41e6e159d22e02e86eff74db1af028b4d491ab8dd8ef1b712c9454291d8e74b1faa3a9a3a2897661d52b5d38c879f0ee6c25d9a4cbb334b344e0c4d724c3310ad42fc29094d89c434ea332abc10a1b59469f892b4fd60b01bdb4fa9200000090183be88ab1402a8105ce14826e74cfd26ac966dd9c06b2fa1cdf0f92d2837637cb37826e4c05c5207220d0eff1a8efc95d161de351749daffdffc974d40d50412fe80440ad1f03fbeeca8b4169086efd1710aedff6957061c9a814b7c86fab671102290d3e28786784e925f5fec867cf1c64cb4e4d2d7e9719ee7ef0ed4b1cc0e4de0a4d6372de36162ba9cd661436370000012800000090492b1ab03ad6554322c047f02efbdd83ed97509f1820395508471b0df7ed58d463e3b73735051b72d82c513eea1b98d4d51cb7b8ca4fe23651f3f5155f18e4555c093b1eb6c2a98171b714c6601f440224e4f0a5e1cfe404f51d314024cf5c4b1424a7dff3597204720623c0d03b83552ff2b3f159e3764f400465a9637d4d5ecd540df7f378b00858927e1df1c029be000000901943fd9faf476880c444febbdb07802a24dd21a945512a7f86560d1acaf786801b297ee3fdad4d14db06afad27c5181aa8c3ed4db540f4f819866471204e2a7efb9903839e71df18c998f3bba2a5c6e504f43bc05c038d0e7301a6f57bb73e9b3d346dd24bfad2cd28024666d7aea47d0a6edac531b795820968adb825f07da1aa3da448e6bf57880f81d830698f1f0d00000128000000901f0b90e626f010f5f9b965348175df86cad98ee79276e02f5a8ab74d96ddfdb75f1da24e300f6252ddfc53c30b7d57c58977a242c8bef37ecf77e7afc8527172780ff4b8bc2e1b52696dd1c6b79faa1e243e88c996d3cf7306f4e3f0062a6c5ddf4d1e0efbc34adb2bea97f1904944270fc64104193d0210726362ad9fe624bd2953651ca3ba77247afbc581b35df64800000090e7ce6a2a5ec7cc4b32e12ba70c1c491206a85c6bf637dbf7ea3e9ef5c52fec6b421e71eb44fc46950137dc8f780d2bec886dc91616afdd2c700c24832cd53fc692a92a3aec923e85eb8a1421877347cf1678ef20365b09bee2f356edeb6066db70c6eaccf4e1afc436136c5acc6ef42f0a64e5fa94a66f3c7ee8fb08debbe7950b0d0307dbc49ebdd86d5295f53bd58d00000128000000905eed1effd49b3c182fd72fc371f22360fafbc935c94329bbea121b76c3f47c10d7a24852dffbece757558a2a906fccf152698cdcff1368c5ffb433e3b9a16135ca0058af88ca48bdcdc00b6e7dd0532511783b35ee2e85bcb2b5c2a2a0178b8bed4b7dce99d2ed823e9ce610b19b8cc62684e4c14c6085508b7e2cb240fa6efd4ea0e755a720a019e47a1b9ead8ebef0000000909861d898f71affefaa9c24629753b3e6988263567d48672571bc46f69b65f35e0371c72a53ab087fede69bcc9bff623055ee1426ab173447a6cf84ec2fdbc151daa772f1c24de647d606fe99bacff8f000b17c743ed65e5abf0d5f7eba1b53adf37c43c6dcbfa399fea776af3842eb2620fe73dd99bde3c733b7966b9da121511e389985f51368d69dddb05d8ca4a45b00000128000000904f4079d8a2b1fef6ab268d17e10f748d360790081658a4dfaf52931efffe7c2f041923dd29a8a0b5ae7c0a16b1915d68921698d3c99351d8325f4da2422360df766a7bf49fab1b29b7d873951f21d3840f521987c97272fc20d483ed63f6a461273ce23bc3aa6dab2976243655248c0b2923163e782dfb8bf27c3171be7f86da6231fb2992e539dd1f4743558826d2e100000090a98c0b3206e0ef65c45ed93069c78aad33e45aa2bfb121a7e5a45313cb5758c6cd78dc20411fab5ce6cfb52413a4593a8afd3b8198cb753cde0a4d96d3839b66fafc974611b39fb9aa04a640c4e251800fa3ceac5567b9421a19ed92da33ec3a9b145ed09ed058837cb8d51da7bbc879052258bdaa60e493eea98e24bbb556d300eb0206ad4a2b336f3ecb818534533000000128000000908aa7ae30702c869425bde7798ed24dadb39c459ff83ea139d9f6ac6e06a984475cf323d7d45e95c240e346e393174c3d5e91ed9a4f05f497bfbb68a6168fb83d82903c1a5bd9513253a2049abd087d5a297db4b7a90452627a890a7fb5b914af3733951cd13229e60c4c72b7f8be532021cc9049bbe19b38a40ca1f5c1921060814928dc8383345821e4fe686c3d30b6000000904811797f420982fbafd20c05b67a7ba97ad472240e24b1539f533fd790c8b31559ba3b593391ce329096c708d20cd8104e7c834b646ce963c5f634cc4c97b85d2a923fca24d6282c01eb098c33c81f8829c69b93ba28f54c7d0bf2bdb9fa695ad3e2fce86f02adb1aa053ac1848fc01e04776495af37c4115237a3fb0e833cfb47032ba8ab4686a7796d23d5e36f9fba000001280000009026dd418e127c509cdb836ab92258ff19b76bd5e36ff73901eb16b3a6bd3a84df61b3657d3f317f95852e0d723ccf96f19b7fc91655a6a597755164266cf8b99becda4a71d594a7469349cc0bc34e3f10062716c1c60b10662c4cfe78d21248409ec50eebca288509c0a0dbf5f320a21b28dec7530b02753f920944d3efdc7d7e59c0a4204ca900e22aa59e04c5c5a6f20000009097ec2bfba0e6dc44f0c7fde2a6b8c08da93af4b60313d597ea441cac361dae66799037a1fc9328b37850cd730a6b2895d111bc7a80c7d94ed8dbed022736042e579a8a0c96e40abb5f61abb1536718f51d87b83c4d69ab74c99be50aee9ceb67d2951a16b265e9356e264c200dcfbf2000967f66bf7f490bba839a2f4a73fd5c15677f6cf311b65672e708eaa2503d5400000128000000903d05177da328f50a6b1735b7f3c7ee275b145e2effcc456a0c5a2b6b85366acdaebac9801eb0510cd1823bd01139ab5d3db0f38d2cec64e653a14a0c5461c5e2a904f640d4ca3bafbb0b0f4be9739cf80bffbee46f92294abe5558926bab3118826687aac02ffbf1d68424fe9af65b2916ed9211d0d3d2d6917c658545188720424ac98fc35342de7cd07429def9422900000090e1d45e36164240913087d829bb92535b93c0ffd41386ba5c3d276dd57611f6e68b3244f1cf5f75764992c8c456850c135e3aed4486dc85eddafd4921cccfaacda04c274181cebe2ed0e580d1350d8a3e1b4777640a7126168ce8772f7ad20463a3d5b9c05dad1c26afd2e9cf762c3e6304f289ac1d13c4edcdae63f8277af15e80590889a55337e81b118ffcdd9982180000012800000090f0f12e1fa0945b93a198c6631fb878417b46cb176a2bbf347eea9ef4d1729d28e940a208f2a1132325f403a3d4661da1e1d0b2544ac39ab2c6023e5fcb2ca1737e0a545703bfa9c4ef3f90dae7cb42151e25fcbd5964fdb9002517105469c59b5482528fcee58c786344c30cde4caee9040346581b540d44d1287d963b5889a0066dcba50ad62940317292d9794cfd530000009078dc1348b125a76fee5aebd336661e4d0214c5cbd94fcddd08c1526f67da9b789cf7bb879f6296647396073b4036b462e0d66e6b45c3e602494b8c99024ba54090fa7d6cf9726b49b6d22aa7bee4cc33096bdd8e3015a9561d352e009dde3a772739291878b2b17e96ee8c415bbb6cad1ceea85f24360cafe7a28cbe08d8074605a72facccd92bb307fcc855d413f8ec00000128000000908d2a8d2e41f9d850def8241eeb22d8fe08c2555c618b155b75d95e96bdb0b0b377cd0ca2376eee3307cb50328931faf5767ff80eddb2ce21f184b7942aa019bd8e60a881715e6c382433e77761296bbd025dbf23d1b00f9d25dbcfda67f9b4ae86a387fb7bdf3c5241e0b78c839b90322a7e03779942b0dbdf47c34b13c7d671358b008a96827396b695f0ac3e32894000000090df5748605961a0e6be2ff2e92b6280110752d8a76a8ec69bf9b7f4d916ca4a5dfede149be73b24e6426e993ded9af3dae9ca39f2e43363dbd1b36a9ec44d2b7736a4936a16096c151be8f8a3f907ac33116b667bba9a8297de6a994b2b7e34ff897749999724668a3753d5caa80d571b0bedc76486de3d07973636e9ee1897e7e62f94352d22ec90a956a16db6d36027", + "calldataHash": "0xf4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", + "decodedHeader": { + "bodyHash": "0xf4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", + "globalVariables": { + "blockNumber": 2, + "chainId": 31337, + "timestamp": 1705501882, + "version": 1 + }, + "lastArchive": { + "nextAvailableLeafIndex": 2, + "root": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907" + }, + "stateReference": { + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 32, + "root": "0x06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b" + }, + "partialStateReference": { + "contractTree": { + "nextAvailableLeafIndex": 8, + "root": "0x022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb0" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 512, + "root": "0x24c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f96" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 640, + "root": "0x268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 160, + "root": "0x039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a" + } + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7e4ba06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002f4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", "l1ToL2MessagesHash": "0xa10cc8559615be5a44cfb608374b1f84fd11cdb5844ebffafd92a77c068350f1", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000659eb2370d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000600a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000101f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c418109070000000224c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a006c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b00000020006d87d3393cf4378f937c65b8103be6d2376fe77e1f17850cb76b01d30fed0900000003000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000901bbbef3c28b593bda223910c4da84390617abc7bd1a5d9e6abe699a8d564423d157457f7ffc6ad35e55fcd080285d1f8d0e4257da98a610cd038d08935be90b454d2a167cd0dbe7c7fcabe35baf98f8b0444d1a95109d8af1126716859446f94e2fa3e9223158fc00f0238c4297cde400cc585cdc952e4a35987736f5f0f358afc2c80a9729dce95e4ad6c99a8049496000000900801e74f1076f4059a5e29ea28829c5018b7ed6e2c13088c3ff4afd3d1ecc7195e53056d0b372de69aa635b1a1e2f390e2eff2c8efb57445a53e4ff7c27677b3dd5eff583341bc4756170e27620b1ef01734b72ac04880ce64a043ec11cbee86fb54f25dd38f6da24124b8fcd0e6501f1243520950ee37e7711b13383b83a5670ada6faacf0b6ed63149ff7274313cd7000000903d789416c844dcee48a0c06656977e98cdf7b78d890602ba364c89e5c75244c91065944e7eab2d653ecf36240dfc8d45a57fb12292a1231fecb1202ae0a0448477b3c45bca7f816ddb57d6388cd17a3f0aca6923244fb0b379d6a61ebaadfeb9cc5a5e4581c974556092bf7142abe87e0b29e6f1b99888449e0d7e7ad682da12c1ee264c51ed42667f351deaf078cd15000001bc0000009044c89f4bb93b937f257264d2d760ca5e2b3d4e92cadbf7a0b09abfa46dc22a7c8ab66e5a4ee70b69c0c3a55e9af9353ca6f9e445c7ce18ba203522b28057392622c7cd856993730767bc396cf7a7842e17b72e2da6b614c3a5eb3b758a8c7fde084fc6d1e315e86bf88a94974c11422007441bca51c0fb5a8cd9125a17deebc8fffdb62314c51dcdef8b0b911bde617c000000907cf318c159e037fceb65d69800779afaf4339456ec9afcaae830041a65564f0881e7776057fbe9543a8e2bc51a479c7995c2e1f03aa28f5ebe082bd419e6a4a0f329d746372c844b38f34f450215596914425fdb872988b458cde3fc19afd08806a58b565efc6ec48c2d8be29650150b0f70ab038cf8dda8ecd0d30a1f489218343782affb54aaf0700a993fd812279d00000090391336dfc5cc13c655262457ad009a6dff4a4212be26875a99ee84800b54d454204af0a6685988b443e2d8a02ac61e87916c6f33cc31be2e5eb6f0fa57cac629bb9748d4cab7a56b06e832ec134c88871f61fdbe0ed85c9febb31a9e7b57d1c0fd80c64de3be0532710f8a0c4b6e6dbe2b4731ff0743916951f2cf2ab02d2b073277afa45bd8549231b5b4882cc21574000001bc00000090d4c0306719a700d2335bfe386a6265a26593dc3b00ee3decea20df454464b378b308be6712a79d127dfb22087a048606db264272dcba52a6aba8dc8f907b7ab80d84e5b19b8964085616a3dba66ab55c1f26072b93be3a2bfc1c1dc02a1934b3bc77edcfcc6da9e986db080cbe44e1f02d26389d239f59e89153c403b7121172d4cf25ee5a4f6b334d241e9476054ee800000090ed5694dc14fff5bd9e60c0b0e14631a67728efa34c84b00e23d247589a72c454bb9100a8248d478698f1857f358ba12978163df41f2406568bdbc16f77869395f72890e3ec965f094ba3f2e394bc3854074d4daf022889aca54819148fa933fc708f6b94817cda4126a24c25269f413014232b411c83b1bf72acf16f3332e74ec71b725edf8c14df6d0fadb866051a57000000909550d05d0953185a5a4734d57876a217b048cadd73932617f73c8385691a7528dc8b86244ac48a97866c9ff07c03b4ae87647306698244ed38728b316b5a710162484cbadca0a193e062221e22667f171ec129887f420216fe57d9017e5ad95e656eb93ef18d4bace9845f3933f365a126a47bd5624508828e86be6806b7d6f1a5901802974e1f5896f38041438be007000001bc00000090bf2b3c0781fb59f551ccda180921c7fb59cd0b3fbf3f2d08efc03e329b6186aa892764af52466ce12801f5c425ec10bf740fb24d9812a70d9253481db8225be7fbec76c789a05c5a05ed9ae4dae23d88158f012ce177df67198a930a5cdebad4b91c0fd3ce0d2424955f9168649dab4b0673adb98f3eee50ad255054258bbf19e4c074211652c9e70ce90bc2841a3c6d00000090f3f15a62c34a9c61c7775a16527cd2ceee25ba7b4f6dd174c15dfe09b038c4097df4d2fe97205939ee1d383c9de219b35f296e1f9e68377ae5f582eb44eca3a57280ed2f3275f1dd09c16b32ac1158de21a791fccacb346e1f10c3dfec72bd056984c97cb1f65e093de5dfe30aaca5512b65720c7e95db495d49128884c54dce2dd1201451607bc34e0e9e61b32b163900000090c9303074fcab34ce08631b5613015cb573f8bad3245ff941e061efcf3d2bc98e75f13fb9b026e9fce34e970109445a58077664136392fba1756b28a98576f4a6dba24c19695a5b7a092d6aee83678ac802e48a785b7973b0cec73cfde3c755d8e6a29da5aeb45da94896e8ebdbaf8b22042cf1ddc4ec24f437d9a29bcbeb851a3efced101ba9492574aca98d450bc475000001bc0000009066ba62c480fa8fa8e997d67460ac659594e5acf3ab7f39efbc73ec56a925253858ec11890572625f66e1718856dc34a6773d912465997eb923f2b0951238e77844043fd70e967edb63a3b5d657069c4e04670858748c1dcb6efecf0faf92124b97f0a73eff226715b0911a5180dd708d0a0d072bb2d7c2dc29c1ba30e89d0caf40ce7d9badf83d0894c347a12cfd695400000090b70a4068ec9a281b1cb28c85b9a57aa39cb39f1ba8475b196d569053c09d179ed7bcc57f2438e66f4a6ffa160969df973444f04ee871d5f8ce80c5a2ab783e3ab7b042167205cd81e5fa466475c7ed94027f19cf3771b52de1930b26273d84392378e19362ce087519ed6514233c929b1793f7e258ef1d8b4d8d8071cf18cbb4e6141ed183600c67a5be242acdca3b86000000907baea0cd6b76df2d47201f6c7257e915ad7dadc9e1eaed8859c68c1e885467e0f7dc9a2b6b0069305064b274e55bfdd3ad5683188b423792b6ee485ce0acec288f4473db8e1407187e3b883cda868da32ebcb8e0e56e36d94a5cd04ac5fc3d52dae466abc23da47d6bdc5b73800bfb760ccb9ee2e47ee6dbf512638ed0d110040202fb7e0d20c91237a4f76c922367eb000001bc00000090435a77aa1a5067c65b865b0f099098e369bc09b7466096ea97ecd5c7dc5858eb45defaaf2989274121a0f534f88191da4d3aa801fc7fc1bdd5bc0d262b1e0f37ec62db78889a90ac6671ea990ca4f89e1be694df56aff7af48c2432503efdb1f455885e0ab1f44feb1739d7e0b0b99972af3d27c0af462ad11773ba13816873ff68703bba334da82b1d20df328e821bf000000901e55e15903dcfce5122f315ee3a694608528aff4bdd9f73a8b229cf87f709a78cad350984e664b84e19cda7bb635a50cbc1a6cd07011ca9b17735398c44133b8c723323f1b2e423fb9d63e074e4afe210f479d2da95001a0e0c14bcfafb39095ba68a06bb54c11b4cd4322b7a9dac8471dd5a4fe081c21ba23c3ea6f38f900f03144a15654dadd90c6df53ffc4e9879000000090e6f7127c8ca00dd089998aaceb95832f9f6fbb317287e7d91e09f11ae8a616b0d5c1093463c3ec28ab7b9de0d78cf306c48fc0e35c725a42daf1259484f06d0d0994aedafc7e79bef6d8a14cb835a8af282a5b621c67d4d51ccec78db510f0ab6a70f33d17ec8ade77d45cc2323d0b5a1dc842e9ee6d1fcec7b59dc1957bf7a54d7bb64e7e5913486a186bfb733e5623000001bc000000900daed9b24c8808de6caa0ce94faf29b0161f52a6b6e753d60a6de14382e5543d4f548d163944f4763b35585ade6fbd461d2212fe452779b7080649631d08da65bd450235e95b009e82e7a0ec6f83b2a025570d446fec4fa9ef7931ff02d8268db614e2bd39bbefe1f1cafc27d02b72301262660cf9a50142a90777fe870e5fbe216b736a1626ca98bacec9cce71b40e90000009016a3a084d4db5e21a9ddb2fa8ea6bbf3d1c8a047ccd7299d7dce8b2965a40639f54524e4708c8f3c6b3d68b965b198056691e411132ad001a5c3f3e47b2cb79a792611ce383e4ed6fe76a980141c68462c1de6452357d4cacf986f010f75538916b9b3f6226661a550bcf45c1643b5ab26aee38d8a240740d17b64983c3a697f372162591f9cba336795ff6e771dfd31000000901832177024c659e403875cd3fb6c9b284abb411bbfa9fbe8f92d0fcb55181837c651d9bab72e4a70319f6719ddb9b8de4d0a1f55b2f0bee04ffc2e2adb30fc52d5e85ffbb3571f79ced6ea4c2a01acb50a5149334461de2636c59da982066b918d2beea8b4cb6e4ac43d8b0db00e6a1f04d9efd02aa25814d4aee406a81b6d476a8b0a41d118eac19714a51df358b9d6000001bc00000090a3f3f06a4a96bb9202a1b3f1907abac5bba7f78117ff9b1aed42fb43b1cbaa4b6562f7089868c0b1e434bd36f2dfad77db1b249eed235be3091c20382cb1b1d679458fb695fcd9de0b40454f4f31e24f0b6766b52e095f579bf859ccba46e0b9141ad9a5e2deb486a8e4b69e57e1ac351c40a85b3d32a46f41c366080204cb90c11a2a4f69318317c1339e1339baed730000009079bf57fd182085d21ff68c3cd140c7175c02d3bb3a629f524401ba84dd20456591632f6653b297cacec14710a34b96833e134d848d1ff827ec7071ae67d7fdba4e7c38b23b1eb354730b23f26c47c1f31e35bf639491ed74a38ce136cf075f9322c1714d7f1d0f54d69309e575f4fe061db552b171f53f1efa8656c0e7d6cf6e615a22c666cb36fbee3a5e50fafbc5fc00000090c5a6ef430fe31e17b99f59245e6a6579d1b754ceec9ff1c517895c18d50736b0aa71b234d25be15ff15d3d4c72f153b4c89ae1a2fb6abce065f3aa1bea6a7310ec52904a93230ed524dc4f145361fb28299b9316d827939971374540bee274ec875613b759be66d9edd3339d6cca30620e06f233bad277a812eebcbe491003ceee38e0759815bb0c02176bfe12d63a3a00000e00000001bc00000090dbd592781428d455ed39dc0a07b9ef4ccf58122cb55c07417d0939db32f1866ea0ad8ad899923219cc8db4bcdf752ef90945ae69d0d6a5955cb26e761c2df9f0c414a579f681023f5e83be5e7fa190fb127c3babc53a4cc2dd852580d269d46d21914494e25acf5d3375e0086d5a97c309bd8e92370b80453715cda7cc900ef6efaf62118c4cf5bd7825a173e7e609b00000009066525a088ff7c589c94eeae66f8fc9f087b188fb791f53a5c817550b579a936ba0ae9ea3fc068e776c07ffc0bd3e0593cc82944b3b8ad5cf56c5fcde9db94845e2b04e642c0f7bc247619f69f2660e1921f7ffdb11a80108f64640c810e1e12f1ee907f247b47cf7a183030f3b8307140dbb5ab35f8638c1eb82168428deb529505dd969034f149271a54e1b2eca53770000009040c4b147cc2db994b92ff6eaf08902bb22decace8884a9106c10acb1e96222a7a250f775e3ee8f5829d89fd2d138e03fb5265ec0dbecd7c6dc549b80e1ff76f9d5f8aed45c6f3d370ebf6fe146ee7e130e24ab11e5a2533106fc6d294cf6fbebcac388841cd501264ff7016f0ae299902f2eade2fc2ae7effa8b967e7b5d6b98d83eacd391786d17d257916cb0452948000001bc00000090a2f86a906afe230c158387a588576e4ba5041c43217e5b5f8649a87a73775a3452bc3bf4e21757e53ffeec78be7359eae072956c5e635dfbe3d3e476c958cc89a22e26f5439e9481cf634aa107588f8c11e8fad4739babd855402dfa419e08b030d289d39a45d3cc7b1a865b6115e71f1068eef4671c2f7aacf48acc527df9944b52bdb870b3e9204bc8698754f35f9b00000090a19f37ea68c8eae603f92aafdae814f19be15ca223658a00ebbf284e22ccddc90219b78f162ae17727283c2869d4a1cd39a1fd7434d0671e840700764fab02a023805fe8c7b9eee4e445a63e90f1f400079f383bdb6b0c6257239de9f49fc98c77ca46a5f25a7906345ac830bc5d0c532c5ad56c4ec7c977c39cb3e42a0077d6eb99180704f7249706324c3e3b79760d00000090081a6685395e9c95e121c4684fdd7b01f44d3efd15c56f303e3b7be13797d3b0fe79ff63de67d0c0d97e26ac6461adb3feeb2b4904d2b7b84635e9666c94a3ad2a02f237e0cfed044c5a09b9b65d2e3d0a828adb37d6b23ecc03eb74e2b25c71282f9710a575907c783266b634f5bf3a07453fd656891e21f0e2d2e290a8a82a2a0e5082c7c760ac6a2f5752a74d538b000001bc0000009038865ca967ca89cf35550d25f27c55e440803f4f8a75113addb9c1561c2ba9c81d0bfadbb84e494131ae3047155080ee1d21de792436f33931bb1a699f30c8175a52d9883c8292c6b724ad9867f7cc95295e8c7dbf2f37a76a8052f0ba31a3ee4a658b34359a18ce2104030f878d6b471ffe04e5f74ef661784940d2090c5f134efc1248966629ce8c8411713d1200c30000009023ffd451a6cfc3f4ac36e52f5f312d48704c6929e2ac77405207c24fe1c6e3c291ba592b72614e64f0478f22abf9e25258c7d8f8c992ddc11c991ede410dc14aff4502ce53a0c4c055cfc8151cd96e6306e686af7a3ae7a36c0e977f993a447b87b1cc367d878aea89324e2a3ca398070598b8829da2a2d244e4783d7c1690a9ca4b23528d687cbee85727608ff09351000000900efeb2408af27136ae0e7958dfcd539495df3ce594047c02595a16e38c702a19f2de7ba30b62c2f14a24f29641e2a09c6dba588540caf306ce1bda730fffa5c75d7395e29d2fc222f1705d00de7a19912f2caaace096cd2c6c6a7e7d7c964ae9917563b70a02fdb678a1407c734e4b180a34d98d64cfe0b946598ce5b569fd79656b98a4c87b0700edc1c64ad7d6dbcf000001bc00000090e5fd3c365b22326ea5c0a5dc9f19a996922f7d49aa7313382808187bc060c5b2e015d9b65e23f837dabf320de7e523d0eec069eaac4b1b6850dfa41bd9636caada69d6f42e75eb17fafbb85fdac13db006c1c9bf8f8b254847c18c8e6db06233879d57a21d420dc3593883287540b2cd09e887a6b83d313cd4c68056169e1b7a1db4897cbcae8604fadd6043d904b78c000000906e60255a6adc6580bfd9781f620f4cd13b5c681e9eec066e60b5d785ea84a96a234991ec5d3a57fc0e514e35997e2285ad8074827dce5fd0e782b21f442d353ab072a5d5d2366c3938f1f45f6ce3334f18bd29ef0d97844498c73a72929b72766270cab01c339b412c7832022cd6fa3621729a1a65fc36a97b929bbf4f70ef03aade5df05984a381a6bb62423d9648910000009045a199afa36beb3a48d8a261c43be660020d24d8265aae53155c27b41a4af7780db55020f443c91453ba6a859feaf41c9213db991708737f96a117082e0394b0e1088881d99897226f4dc6038a8fe76f21672acd1a17cfecc99eee359973d6cf8b2a283b5b1b9d27c38c18ce6c232e381fff33e9693fe839214d25ccdcf1894e961cd47c26b5fd5b771886f11db2c228000001bc00000090c43ebc23510738502cc9d8d299fc6478ea4c47a64c4aee16c5e14acc4fe5bf0009bf12f5983cbe03001a26b6e94514fd8101af523a444553ae827d173648e4c8638ad55aca067312a233e0e5ae916bed23a2e29585e3934a321fa483fb663b4f99a8bb77d03a9b02b78e76cb73dd3f0e0837d389463f82a99d5fa64bb66a9508378165f6fe212ad61e7f8483dd56071900000090e4b084e5bbb7b4a8a915e501839417eaf2dd878778adc46a68bfb88e6cd4d2121b1855b46ac48f6046035159b8d3d52359baa8d9f8d6287f270affcd3de3f2ce287e2f8bd8011d102a236cb0bcbb8a3d0e4d309c502ba8bf058660cb96ceb24458043a9db9fff459631458c5556d38e51ebc921f1bf61d44ddc3708ee2e8f5bdbd63c290b7eaa4927d62154937e2bbb600000090f1b36fa8ee796d9caebda6e71962013059ef50b948e189bebc9cd8fdb7735d12cb2d06fc04c037ecfc9b2d25ea08c466bad41d97c2aa5afadd681fffd498d8f12c489bee322d45dfdf1dd372a5e99fa2104c4b82a0c8c1f636fa057d6af53e29c3b232a4b5808759ba4e6b75a58e77322acf78e038a4f93f8f27432abb0deacca30d89d4bc91f9548c699f2ba7f96d74000001bc00000090f1f30b1b3dea88a07f9a0d1e1460a44f2b108b8abb26e585667a903e76f611e4948bc961565171240a0597707a8794c3420ee472d183a524f15ce18d74e6bb7d5f6cf2760f947b5d09c1f50e7f2da577037302b7bc609c1a4695e05a5de05edb1897eba85ac8a1fd7dfc65a62ea5e9162caa7d34f0291a203141e491107bc25ce569aafd1efa5bae2888eae628942556000000907d03856941a006bf1f744b79788b7a0b10b5cae5bf12607544a0cf92d2893db19c3db72a259e653e30e350c80fe1e3c75f0cacf10be1cc93ccc8ee4929f4e13ac333a65c8de2dd8e977b7b65f31a6c38231fdc667d127e71a70dfb8b367549b088fca435214f93e14702a5c66b3ed55f09a1a72e07643cfe14404cf368a89052c537242bae76d558a4c8d3e9df5d0a220000009036b041e9620bd12e9df593848a0a04053bdd55cb2db4ce8cf01fd8c76d893241e2900b56bf981a650eaafe652c08e677ead0d6e9d2c00ea65f830f458f18a2f20222fc7701fdc7e1575f01d78a6f654f21f23148cd71e58956dd66263dcbec384d76fddcb46d7666ad05f078776df83a1c1335155258e399211a697582e753ffac410e0ae79647174e62b01609a5f8fd000001bc00000090cf68f9df45aac4e7f963f64a78793d1528e164bbeb92a5d20e1b1a057902a906760dab6160d43511bb6fcefdd10bd9bf7262d121240c6fd13b55cda7c41f9a96acd8b39325a4b45d892fec8b707194b3266c85a95edd0aeb9e54cdc8f96fe8307b70b0c69b1b6a2221f6718f05c8dc2128ff75437af4ea76e2229be1d6b4c2d90488c1399ff687909a53fe61ad2a6b460000009098ffb40f8c4edf5e8215483c482b55d32228948e988e2447a773a5c98edc009d6b19741770908a1d8cb32a5b21cf3d2b557d6e0a808398176f6ce2a60730eb992e794d57863359b7e0b5874a73e78cc40e0613e88d9014fb9076f12c387655f1127c2e66a94657bb07df8091ea93165b1b0a72d2d55a520004f56c6a780b92633a8dafe39e0fa16c3db586280df813a200000090f6873fe2138107349532a2fec977c59df9569c490f36d663b77973853261a18f8a759e64447e95008398f3ac3ff24b3de15fe53b059299e940bf9cf032dd748a74ca086559ed1da57191f92e2294bc55013fa4a82b64528c590f2dae6683ae4cf53b23efd2a5e758e03d8b31ece815b01974b5163801bbd93869933afe723c7b7e969659a83a30846e3e9487da54dde0000001bc000000905bdfa911b84b587f383d54c009677b2e7325b51c6630acb3002dc8675b67f3a0136323bc91f1d349a544ec4997315089c9c62b6aaeead058e2b05d20a5c0208148bc2702f2eb83cb3fe5e13e2d3bd56502114269970ed0c8e37210609aa10058b8e8d2b2581450390c69512908c95d4a08fa3134fc3e3924f3eed4924d18efcdf5b78b750425245115f379ef1a5cb6b8000000908786f914d1d57927e98c0b81839b4dd874ca2faba27ad7fea64ee53e9ea40336b77c8d0bb664bd50fbc772879cd50bebacc6884dc46bc956df2f0f6427e7a9e61f8c65bf240bc009e1590bc5a42966b9199fb47e1a1940e75b3fa788054ad501e6ee55df308778f20f005608edd6715a00f78529fe00f27b0dd6a331ad8eb421c6d1b4fa9c509d0d83b08b752dc1789e0000009098f1cc4efeb0223b0a9dc2519d7cd2129372286f8dff3f166ccc021bc108e16693843a031d69556329c8c92896e8b19280358d4737965acc74d2979b5977571493e9eeddf567671feca0903fcc71e88f210f93a807bee40f0a26dc79a326c68a81bf4b6c70078b70eeea437ed2eba1b9201ff4356e502ccb68e406e3c39bf0768165fa75195e523acc7e38dd74589a7d00000e00000001bc00000090cce9d87a1a3f39d3d328d1b9cdab679ff43102ba3266ac6651c893dc27b953d68e6642f5d907a7f9619643fc31733c0d42bdc7c5cb40fd7c640bf0cf8aa7dbe823547212442de4eca49cfd32d158f1751c50e6c2214b43a84a562b70ca69182c4cd5e23cf60596bd6b573742cad39ce6162c5f88172f144ca967ff265e10db46939134a34f51b9ac8cffa73f5f5b033400000090c8a8828e8ceefdd4d3240b7d98363f286f5a5b4d5005eae09e3a572dd7ed4909f76dc65675e4cc693a102a9b9ebac9b9daf50d9682132ecd2db484d14d835913d942e36d60759c55204b3f0d4d60370d0bef6cd6727ecee639f2774d4e8c2ba90021b1129591e9282ac01c9ea89136701fbd937e7fed39b2a66d1221d8bc9dd86e83b3fcce73544c237b6d26100f07c3000000906cbc0e36409a0d5a7860f484ae9432881250d1f07f5f490e358dc8280ad21de7d7880102c1ddc3c129e3d88857b04f0bf0ad962f1e0afc94e66637234e567fa8567774d74b8aba48536c89de4bbeb2091e8e5b05e99fba07aa4d3b06a58df8d17113ef48e320b39b58c0b5c1a88b31701c1210c03ffc54b4284c84ff319f649e20e4cacbf220a04afaa9e8d56e6b0533000001bc00000090a3a4c4cd9264e8adb53b1db7d5cff25e47f5d0cdf1572d9f4c9b8807dff3ae2ecab2bff9f2f8d039a956b789945a3a273d527a64661effb45b111ff286986402b6c7636a24d24938cf168d544fbe9a21278ea96d43d07535b77a0b743fe8933cb1e2c2ee72f576c8b3b0cb233118671b2df70659501dadc6310dbe7cd7b40855d4c2fd90415bb1b5ecbc7bbce3b2124a00000090cfa70b1a20378939334ce8635732c6710849073e6246d026a3bab1b77815cfeb9c21e4ef75668b8eb9c155134d19c35210dd54b7e161bf6db27868dc8b403aace16cd81a44f9f0e67b3aa4a5191f2a4d07ba853e5bdb2ba5e1105ebd92b5e78f5b33ec0096928673a96d47fb5ff4a94d2d5c03ad9ae04548b47ce472cd43c72820bbb574a28c41e46076a8ae7c32fced000000904fd16a18080b540a0205836c75d7bbb808c46cba1a56136a3ad4e4a0755a1d4170b13b70c65b2554b78ab68dec8c29129e977e75ab905086a65c48369da7542f625c0bc60b48dd11196a252626c787471eabe965ab5b3b6253451ad3ab8fb1d014642d949e00381375233f7f3ca42c6f202c037673938d7b2a444e8851fc6acc8c003f101461c3d6a69d2c8f13108895000001bc00000090186f6f09ae419a715dd70824fc8ae27bb97263d34452cdd819de11ff473e5c6c6eb39e5d23ca56be9b8ac3137475509bc5e6b66d956d3006bd8d6301ae994bd91759264dbbe99f86463073a32329308f2f2c4f47cee9fbc9c4eeb852a7cf59fdac80c11cf4797683af5b2d17178c7562138322cd7279397b66e0a70ccea7d3f972ba676eb9780fca53ba97ac00afd284000000908502ca2631a9ed3866618251aa67e6638979435f627bd143d416f7923608f47675ceacde229ecfa719edf0970862116ebbcdca48b65b41cb8933d9932757ceec21ea9edecbc2cb7071981f3583456b200b3502dca0b7abec81f86847ba29adc0ead534cbec6559ecfe23755eec3eb55018c5bc485c4da0ece2cb70a225e431a56b581da559fde1d54d4007889d0120f400000090da7dd9e98cd55538f1f524e3f807647719cddbf2ab303912a431ef953706f8d2300fe0ba8670e321b311fe42a39f32dd27083d4f3774cb71687f62dd05399e38f7bea8b6874b5111223353e515d484e126c01fd2a55fa17119c04749aad4d8513184fc7be79150b525075a6cb92999630c62a0a53d615e78a068e1e7b53081c0eeae206b4346c11cfbe062606ae066de000001bc000000904a7db38800f51e278093de082b9f7af9d9c03366a3fa38062f1871d2f72e6a3965cb25c30c869eec5239757da7c91ef7cab96ffcdfd7517b9eb74fe57ca61654b14388dbcda69a74a255a32db259a61110598e0e1cf5f027e539f080736c4da310c17050b8ca200088cee055fcae41f00d449e6ba7713c923fd78c816c87bd9bbfb103870a268a290bd92077a3cd95dd000000907a10299f4454d75b99fc1e996feb1403d7aad5bb4cd54286a09e5b48fa1bb40487a8947512475ffbac9498cf658e04a18b17592cd2078abfb5a51309b7b55bab91c7eb0797e8ac4ba984643002cdb24a09fe6d95c5dbf4c74e49dd645989ad685adacd6c3e73527181cf8a87421e0e2400b010858cb15981866a51fe0f0ad3790c7620c8cc09e2e14403009a630512d3000000900e324ebe3e1b3480b1bd5557ba407dd932b3433e2c4dc7ac50c1d6f11e11151e0594eba6b495fe92e70c4ac09f7bc2662b665962a2fff87a6313bfd1aa34466523720c771b0b7ee1c6de4a508984ef8e2c0d1bf2a4038c2c65c98e5d81b03e53bd5e3bf464c7502cb9dbebacf0f7d5041caabba854b65f3e8169c8678f279519a52f67f65ce9b3fd96cd57bdd911b7d1000001bc000000907b9211d9d748905a18a500eb6a6d6d1fb44cd87fd1c579fa7b3f2ae93ed67c4ef2c5f3090221bea2e2408f628379e2ab6841e4d573c7b0420b1d3da415cd15cbace56965f636050af3674fedf039bdb11c27a3900ad2c68dfa29dc96e5bc82cdab80bb39492a42111d27f1a3a2a80f37247ad11635dce04aa7e465e8c289906ae93e4b78acbdb83b8b8a63ea4aa27d8f00000090292512d8e7a449f67575e74127cc7a680e3561bff95c93e7ebf974d8c20ec23a13fe7a484537aae82ff1201ffee3ac73db8838dde0c843e0c9d528843a52c1e3f9d90427ea37a98e3e938898e9561b2d2423f204c10ad656cf160221081dbeb94a8b2ce0087c671d3b34c8a1e8dd0fa2094a5ac25ca6969e4eda160abcd6859ecc1b6f390d122d79113ef7e47cc5044900000090774384db97344aa33373b85fc5223d79385b630069f16683c497040cbf66e77b07490d72577ed5536547d7b6f9674591511f5b09e6ac88dfec761e7ec0211eb12fa4215f3645d60e9a846bee6be5e9530909469351cc8d33b081c4851c9ce9c021c7f5158767f80bae36615b21950194108a4389ad0ee603ac8865d4ad008568f5e6b823e79f6bc1b2e7eb7c66488ff6000001bc000000908e11951f7670aaefc054a27dc47323825b1cfa85f029306d29ad85c700fba8e18f151752fde95a490c62619b15067f66e0f8c96ec0da407a72607314877bee52c0a5a0c2fa5746b0d7b03ee9ca70507c128b1fd0a65a2b6fbfd87bb47f2da6c8b65376e3d4a25cad7eab946eeb3c463b1ae8d324739ba34749077c05c5d9246c65eab93c820bbf1887c31a0393ec3a5500000090b26243b1a62cb42e7847750990c2ef643f973b274378e21110ba922e1bf4de8fe7aec6f7f3d5229b4d711a505d4e569ef39c49844ec831a7db08c521e5f3050afe8110a40feadef8e0f7b3f5cdd8a06502d20883f0066bb7c3f5ffa522b7219e9c66eaecb97933213b0083f7f9d92e8b12b2765a4032554fedda5fe2635835f4d592f3b725852ff4015dc50dc089a9010000009019978bf34c085b4048d3bb215016ee70502114d7969f79550714b3776004eef96f42af2a275392364f4c44b07d65ce2200a654967ed504fee1ca30b3b24b429bd83a3f1ec155e6f3f550227fc568a4480eca115ecd27d94cf5e0340928946ec64db158dfec8a39dc47186afface68dac2aa91f4b412093409527d198cb62f1204a3516ce45ad0a325114adbe077c393e000001bc000000900fcb8f6b2a7edd9aca0dacd25918287fc58c9301234ccdbeea6e2c98efa1f4a081d99a19c81f9cf19c56317621fa5315409418b7261c797b458aac42af072cbcdcae95a2cdd9c256ebb355f05511e13b05654e468daf33e0c0ff921a4e5e98a83a3308a3a7e9df2569f6bb0869b9d6fa22b28708f4ff3eaaf7fb55dcb2baef83d046175f3d6b916bb5fb40c2ac55beae00000090b9cbf40833a7b278a00069ad6b1475dfe79d938950e4a79ced292beb450104066013e8380a643a9e11a41c86733b1b70c8bed1c8581cb6eb0d7c1b999c9da9b2651a6a1e986985c5713b252e8162043e1276ab664fd7f43e70a4fe4acd42fafed60d6cab69c49b16712bcadadfb0d22b12f145c5126cd1ff0eefbe5f8012adb565e190e86877b30053f34a9881af104d0000009045e78bd61ff3a6652036ae5e6c94584e4abfef252784e0c359aca3ee9ccde85fa8475edb4db2b588ce4d84d11d5e75edfc1fbff5e00bb1b947cd091eaca9cb62ae079f01f9bfb031a0419e46835cffe801802a1dda6fdc033195506f8501910acb44b98b5a5bd57c7281aae0c1f9d6c608b0483fd957398863e9d28d626fb1e35443d7e73caf2a4cadd9e934b6e237da000001bc000000901e07a96bd0419cb16bbb58afc41771dc1d21dac0147ab6d572567994b47198339f1e9224e733443eeaa653386b0694e0aff27562b8d9a9c28655c83e3f04d120efd11e3bb0d5491928ef382eea2427340a1d92e5f2a95315116aff23f783db3c776bce2b9d743a311b9db73696f456d402c7357569195471b065ffffd83a82334f24804ce5dfdd1be66c8d21714579620000009080dfcc8f7e455573b0f74ed0ecd7940c82734165110682467f4c4d5b5babf58bec1d23c69081d420397adecfee162fec22c88ebd33486a6aab4b30c9ed286bf7120f738e909db885b3261dd0c52d4bd31b8bf9bda64a5cbf1abd28db88b54bb2020d81f61ea868ddb41f002b5fecf72c2fee9dcc397605bde2d6491999305621a25cc501fd69caf4853945d87ad632db00000090a7fe1c9131a8009cbb5f8489995203ed56a673d999adc927668ccf9a1f21ebd2b7925d626dfab08f1ea375c139be0302f3dec1992e5545926cae1802c8a3b274f871296490e6eda05694ab7e5711c2c41c67654ca899137262ba90100be34e70cfede7874b240747f52149523c9c43ae09f5b7d45898d8cf3f13ec6edc79f324229d6bc8b6bad960251a774691154b5500000e00000001bc0000009050bddb89806c6d371adae059837278d20302ed4034421923ea862538112e31c6388dddd755f9ec9c076258dc83b84f5c8c683f1a83c7ae04d1723f094f751ad7adab8471c39681f6e5750e41dd37c0d929eb37b28ac642bfca4a5eda6ac1da2bc8a0297b9c0ae62b91f229d54eb21ab20ce76da753ad2b6206798cd64ece1ef23ec7bd050f07f24443c600f39b233ede0000009018cac018070a49a2e3f210338aeb63bc956831c022f19196e684c576455938ce88fc96b0639dd026160467daf4cf174243b3cd38e7de7a2385a42408ac91974d49bd58a544e5644b4f215c0ca76341cb15cf8311882fb02fd13665d2a3de7ddefbbd402795ba9907e48e1711440497830cb16746b0a566214dcf6c313a5c7233565b4f58a97f1640fb055c8a88a0a1a200000090b0f011a48c51a5163271f275bfaa54dd92507db9814793495b43590ab83b4b9bf39091fdee8afa438010a09c747e6f90ba9a31be6e9fdfcd66694511e816c097e8c9288d762edd82233ac6adf3cab59d18f7d1b71e8cff0b9ae7ff0ddc9d9e905236e5ba77876319dc3fde6eb611497a052f07bfe5d634ce1226eb49d1b087531387e7a7f76310c3db56f4e36aab954c000001bc0000009038c6e9887e83979ac3592844e1f292b2d5fc6c7044d5cd697b25c1ae62871ebfded8c6ca7974175545af8337d6a0a250334732a96a6682ea353edfc703a6d18d9c08f4a5c82c48bd983f4f2803c29a41276c2bbc3d6a0bc1dc36e32981de4363352d7f37628ee4c89c2b7bb1126068d82bd301d72a01d7d40757d37207cf8ee5c3f0f838dae508d5710ca510e8e6e95f00000090fa390b3c91805e660e73455231c9c14aacc5d89dafe67a4a8102cfaa6d98a2e1448e5ac6e9e96ff4e6f7c68132cdbd24f0acf7eb757b09c9bd42e850709f3aab441deff33d47d1dec941533a8fb7548d14d209ec6cea7ba1abe32a872ebe0661c35450492fddaab8158fc122225aa87500dad62e0f054dc361382f6390320c194440980eb54e15c79ad74510ff5517b50000009042dbda4df1899ba1021fb0b4d8c7df52ea339e849393bc85e1235ce79e9f16842b3756848d62299374ec2797305c1df4bd8aab5078be5f15d45f29350bfe1e639d9d2daa7bb4f6665c3fcd61ea8d3303023c4434002fe0687b995d775d2b9d5c920d6ac9763819a7c446de39f3aee3930aa6326ade19b7ff95a97a075db0583480862671eef1d5702b70f253345209c5000001bc000000907767e6fa5e52d4a8cc42952b523b33150245f3ec7806210ac990fcf39c5148e73e04beab8076e804d28e8a10cb4957e534538f751e1145b170e09ffcf409ea9e1378c0f3fe7923f24568605007d194a40419e53487bd072cb5363fd01c1d81a4ca6fef8cc9368a3ca17536c16443d28a0784fc56d85cee15131d0c054507f19b2c456626dd316d10bcc4764fe5802e7b000000907c80f7661b245f02bd3e5b605cdda50576e764ad374c12662d9893df3326634775b52b89a6488f3fa79100deab6eb5ff0444f32b1aa6759951b53e2b2b8cbac8b237dce13f3310e8a0ced3e021149ab8247911bcc390dee7bab5b0e8717eca05c149facbd4564554ccec881cccda04b301fc252967dee15cd0341a1c59b564224bdf98dd924625b394d7e61cf4a82178000000903de2a43bd8b8575aa7f5a73fd07bacfe1319b25cf3b58cff9b790bd460ca0d461181320458f35bf7def65f92e6a6c6ecb7ad47c590cca136cf0937fdfc049b8f77e77c609abb514a84b9be2f5f80097c2c1c6ac7340bb7c1cc4364a0f2306d2994b1fe09bb3a5bf22ba092d649a6e96f228e22d42b96235600d29c7f278f3129c0032c914df37df4033c31df3e4b8d1b000001bc000000907956f8c61a02c25812e8e3bd46ad37ad0b12bfa7155631a82a5e40574124e32ee4bb8447f2c7a642dab4fcf2b8b69fe7dc765e3746fcff466f8c86e61951b9b8c4d8c0543e6e2c2989c2a49bac0156f104a1562121d375ff3f800b4a36e7935962afd9c62d888774817e861ef353ad1a283ecc5bbb3b2a4e6c7b065620dffab7f2256039e7848d98620f7b6c3e9837100000009034c3b89d6064f9e51847c078742f955e2806343e19d8c4bb25135d5bf041a912b2de8fc2e7c6a5758969b88853a3031046698c379b1f169908ca1f993da6beeb27e23349820392a526efb286244ef5672494a4583e203976caa8f585ae175324a31f08115a1a895248203a323f2e8f6916301dc1f74ef24ac61bcbe4e224c2efddee19f87d221c314bddbda864a96c7e0000009037a6820a9758099dad8e3e32aa4b97f47ff62c8c193ccb519cc51265d2311e1d8b2330b094ec1c700b5e5a21437111f296ec6e16d34fe2f1a93219341e5b514f8fb5cabd840e5a88b58d4004065741f00c3551e0510d7ef3124fc69017952b70c265fa3514a92c278d0bd18ec88d008a2b90ff717be49fc26060fbb946dce6e1755861b46bc3e74462915dc878f79e19000001bc00000090ff8be2e57edec27485d3666dff0ee490962f2257eacf3638cc44a08333063526d42133196bdaff2c41ac73b8135e6ac5db29320af7149f8ce575930e8464dcc6610f93d26cbaab23618d052fb5a40b6d2a38d7106bc74563f889ba5353e4c5b2d1c7dc61ebea76d1460f352bf46d220e138b578aed2efccfc0287fecc1e2ca4edc9b656c59fe28d3f38f50e13c062ead00000090a81a22e099652a1b95eebab9167c1037f51757734664209dc166c564201bcb7eb8f2e23b1ba452500cc767c24ce993f48bda3a083216d6bbcfebe54167636513e0df3847bd292f4c2a4354f7ce1c32e10257789c196e2fd929c6a8fd916a86ec6df4286d2fb59215ee37eba102e2affe1329b912a4787c3f185b10f03d74cfd57f658bc4ec2de4a8566a8c0406c3901c00000090e9fbb5a34e89b20d7fbe560f945218d2166b624aee3a42fafb10bcb7dc9dbdeb58feb0d8cd51bb4fb1c77ce29eb556224b226fbe831b3432ff25e9e88ac5cdcac32239058ea46965483a0e9da48a022824383480c04a3c062dc801921c364a0ab0a46692654cd96bfef8c10f8c9d0d3e14934c1f33b543219b68f5d810c886314625b4c44dd85bda0dac8a14d932bb3a000001bc000000908470eb0b1f63032a6fec1fc5982285acf6676db3edb403f62780c2169876ccae974a1f1377148773daae76afaecc0c2d19dfc1f0a647ae3fdb632c88c2888332f4f8f8ae1b4731da08c8a94dc0e37a6505e0722d5111b362f15c3f3b637f52af2d0a3382726cc5b7a369de69429a27452eb2c07d46954ad6dec05c5d103b12a21fbb16b896b605178211986479777c7600000090d70fffde576fdc6dbe3a89182758b8254df6d4a0667154f6ef37b624fc1e82f7713971605390155e1f3a8f7bc0382ea1ea0cd2c66d51bea3dba5911918807f13a06224a2979cea0f5011c8ba4f4dabca082d87d7a9ccd3ac16714ca9381c2995b047a61fabe79f5437ad43c7e7c75d56061f8274a7f62f3fddcdd338fb39a1427308e72e5666fe1d2932763a9733b0b2000000903986f85ad1eebc1a7d14c6926d9476e474caff2ef2728a5d090ff9bd6c9a1e686f342c01656552c7740fad5512294afbd87532a709c934465fa53e6f63827c933ca8ad09c474bf3419f8336a483e38c513a8b1075e244814c3a5fb32d0c66399ea37e850e9789df63113cd76090343b71113f9e6c230b989c617aa38e741b25ea2ed75a0069a72188286b350e986c9c2000001bc000000906621f0b3d2c51329c50912430167717bdae7f1534dca7a9b63c0f16b53737640d18ac00e3231eca8d1fa712413b473d10795ba37c4acaf2f21f294ae611be7bfaba43a43a2949088cfdd5163e249774521e05fc2f65bbc60d43d95ac1a1671eff974307a54d6b7a87d050c92f7df112d0453c270451af89c462c9ebe5fe85f8e4d924ec6f6ff06a1f03c9f7b5dd2944e00000090178eb040c11f4ed2d2370a7843c5c5ca43250c0d6cff6b29d0b38ee2415322295aad0c2930ae600d35473ec4a0abd758d9aa01280b8b6f57fc00c0d88629b374743a5f2d37a96e56025ee60c6241782c02626d50cdf76651d1ce9ea774fdadb162ec67def5e30cded3a21d82600db29304a52079fd3ad18637b6171f21bff14f7e0fddb1266c78858ce863cc09e7ee2700000090d55f7d2c49bd970382e2749d0377210390e54b4fc00017a69a010e946e917fffafb211c46629ab22dfac113c5b8c2b21996e94f8254fc4b05d6e041bb55b022872e3243749f70706db3e43b42e4f7403175b9464d1821ba89eb5fcd98e6ef5bcbb6875f36833e6b250e8a0fd1f28eb6d1bd60458e36af25114af9bea7d3c655b3e4cfae23db5693635787f935c0686ce000001bc000000906db13c491fc66f1f2a0b0e987b08af5cf23edb15268ba7cf011568b2aaf47ec599c9a3a3ba79c5fff0a904d678f0aad02ca4f1d0cb0dc76c510161d0756fd27a20a0c3f417d0ac2ff4d8ec36fe14220204780853d3e671f1e69e66c0f8d9278c3fb5e60ce9fb8afad7202ca83e11209b27fa57bfab38c2bd342c1d5e8a3fd2c0bcf296450df7d50efe94f10e3a6c0da50000009031e13c8501de1867d9626afb8d730f170acbdb25c69473e2e338711f3af30d50ec3aad4ed0ea9346c05fb516068aa58ff98b9daf4c1f50b587d1d88a11f3d10f2e26aca82830974ad6c3d47c3d00714e059f17fda8cf86556c3d8c603b130faf6d84393e366e60bfc850ad8c806e39981140efb21b69ee915eddb092f6547b71ba594618f4ad8c56579604284ca0d23400000090cfdadb6b817b179cbbe5922525fc89af0973dfc73cae4006f0740f2bc814b1ffcd0956c526cc5d4f2ba7c1dc407a1546d002ed4ac30fe71761cdd39f01861b2908ca2b423b548fcab9832f6c561bc03d0b281b3bece1250be5005ec1eb757354719cc7ec761c6c7ae07f362ad90e80491e304007bb9b3a7dd58d00081dd5a2feca95043e85649db7ddab194b695b925d000033a000000ce400000128000000909f8f0e6ace9a2c85b0e1c6837bfe9bdfcfdf641a7a262f3864f4399e80cf08b40ac2cb0dcaebda977e10142fd70904fba55dadc1ecc12bbcf26e01ec54e69e6ea74628f27dd9c70a3e1611d284f8c42110d69d794fa40fc49e2cc697a80a45abef25d0b021dfae3b78bfbd4dd670240c11c71cc314c33edeb103e2b459d6f9e0a4b3f601e3ce90e0bb15f2d1c502ef5300000090b23e3e3687dda79a91b4fb8f55e67e22ddf7f915ed61455d0236d61823b95d169acf2c10438b9740c06e90ceda5954b1aa3be810d0aa67cbae4e902db6e2b64080149f45874b7487712fc8d5cf83e9f50274f335bda58cfad871da2677178381cc39f7ed4ee2be03acafc87bf74a4d372d19ec1c8f8e5c6771637531be0e857da95da742b52b10eb3c34673b256d0e030000012800000090c47bdeb67eb0203b950f0bb40c35e23189b5f2eceda303f3e40b5b05a5520b8feb644a875c8c1eef0ceb59f518026b18d35e2fd4bf614a074fac8ebbc3c49bde2ce67be47ba476da92596d3f9d60e86520dcf569a71311b4c7f349b9a66992bd8ccd99a4050efe6bbbfd2a1f0c5c183a2d526c5a4750dce71adb548ce813695bfd372e81f33519c3450871229ef8559c000000906a65a1f67bd19b746d79217567e8efd957563a9d2dcd22ea23f8ceec026ea513e191173bfbc16aad3a58f32cb2fc5520ff5437e744f20c7b8621eab1b6829d11c2c9108f5014c7c7e420aaca18292f57237e45180bfe636e6d6173fdd29750ecd2b23365eb745103f4a46929ad14f42b1bd2567e4155b0a1a2163635cee2051154a753bc063f028b321b002967e0e8e50000012800000090702b6f54058ee8581d5c0afc9c8616c274525a0e1ce6bd7dec36f741ff75345c1b212e3d07339b0a236a0f527fceb6e94c558b7b7de1c569bf04c686eb501106e74d492bb2ccd127d11b8919b969c25b1b35ee58dab892cc0af648daac3135d66ea4db63884ab597c178d2abea58277b0b8855c1957b599272fdcfbdf4047a05ff7fb14bdc18b69f0c41de89630e9e10000000906f0524895f94a397e8635a3b6fbcb20f766bc941a622ce0af677b706f649fe9ec186ea93d4da5fe2ad547677d2ed84b18723f05863ec68198ae2d2d8da6e30e4d757c3b03f5ed2fcd0600c08c3f46f72179d0cba043376d1304ae9c1afd14709c437184a6e7c4ddbcbe7d4e472ee1cae02909c3e671a109db5ac78db6fa93c8fa0f2b13d46e50611d7c8108c13e10fbf000001280000009050940efa17ecd2980f13ae850b62c501c853f2eac9f3f69f82468ccfcf20cb814f93c2b6db4fb508c1009d472598eb86da535dd2734f8f8f068f38c870823434794ce4781f9d9f3670da1e33f2ee9e610ba15b16fbbad5a99ef4d523c8d32d30f198f30bd6308ecd4fbe56ab64f2340606c858a88e8e51230ae4146d78f604c68c36354419494acb49dbb61b2f673cc3000000901b3e3f99917a643a515f211da068d8e8c17adcbb6be9c948cf16d95781badee521b289b3f56bfa1ea7f8ba149e012ca1fc54ce9b6be5d4d82ec3f2428448c0cb9f4f2458d7954d7ceb9a1a125a1e7c0b185a70fbe114b9137a0f5266e205931eace0d4a4bbc869c3b6e6785b7ed1378d05573a1020f03f28f8d01b09ddab509d7a0f250c9a94741ca92c70d4d889b6df00000128000000905f840884679560a8905c7a07d3c122c19764b9bd701591dfcf77a449c08daec98b0bc24e90a98191db9b60bd305076b09054158c626dd5b46c112144bee2d3594e549d67079a4364355870e95a6a8c440f7a27c6af7ea0262baa847dc4ef9945a19fed51e1bd060a2ed5187f616512142f9af3cae6bd3fb3cd9dd1af5756f4a8271b855d7b0e076bec5ee719626fa3c30000009076cf1896fdaa5784ac4b27ef7c843fdb9760e734f764881010a773cb8d558287c6882d07fc05465ac9e876aa42e6f162761151fc6ed48efe6ad5abbc1039898b4c655e0c0f62a963e75d1cedfa3485f92c7ec52539c534aac73cc4fbbbc9836c2e4f08002f7af1f8711af75b2cca23cb1929ef5578b257c43e9a78a1cd8cc8269f4371f34e9064b1fbba1ce2da689ac80000012800000090b08c78f040430df1a5a9f08442755337542415f5bfe2e9ecb1a94ef00c7a0d346d037df629667cf31e438e0e855cc7ac71d288798161948b53ebacf234660922e532195cc7e8a9926d5ed129bd97217a1b170eeb161ecdfa24c5aeae58ee9ec4347026f0507e75589d0088ca004c1231019e491eb908ccf83ddcbadf9be446b8ec5fa5ffb287bc85f8bb1e13beb66617000000903442e435ccbca2080536d45d8dbf4ca789802d596d672a72fc96f805f8fb86b40b31f4dcb94e4568ae28f6bdf097ceaccfe82b06d73b3292c2388327df70ba6270323d5e58c6ede284f0bbe6620a3ca219ecaeec17d9f49a9ceb34d46f833a8f00c0201d8377c914433e1489e48221e1225a97ce45f4721e35310a8cce1608943d9fa0e0c9fa937c3b62954358248b660000012800000090c8323e56ecab702ed7bc4a60606ba2e436b6ad8be22e985a1dddf86ce32a7c9aab444816441188aefac034d780909b74849d1470bf19ba1a3b870bff9020220cc97b43cbb0c36b6188dd0eae6e6f8676169a225a5f8559408cabae0c613e75424671f1897fc4cca34569e2fe02d85c672e9759b17a2aafdc7206590f8b63812ef8a1805db588e277c6cfb57005ca193700000090b404f05067f41cfa67274ee57679ee2ae910bd04cd0e643571cec23141c2ddb9fdb3b36250ac22c3967cc2ce8551d76cba516512fe5319c10948159bb0211a73505392cb28b68c8ca3368765ab98d01d1ce8fa71d5098c339ae26741b35812380a6cede0b215e3251edd4229e77d82a321a8a303f777832fe8a9ea3f4bb4f95ea62deb50bf1abaab822864587fc3b323000001280000009024db5023bca8979f11943482afda456f7b93e405844ca5eeb5937c73157a52f0e7f320eab961fbe481e96b5b8cdafc819cd8dab4331b6ad508b55f9df55338e4dd831a601780a032bd8807840c1b98ea13dd030f83696211e8e5ed737fff5f2b9e69fbcac36a83ca2edf94061b40bfa52bcdb72baea7a8a428a798de6d5a3c96051753be3b1c9802de503728f8d203f500000090742c7d963083725102b72c06708f1fe350327eb1c0ef106bd10e817750201e15bd80d8536d8529cfdc3e67bdbc96206a8c708455017ae4b556d637bf7335821d924194ebc0488cf6006021f9180ade2b016c8ae945bfc67fa805e4c364ccda6a741f8e8f28a543dcb9a06b1cd499d0c1187ecd4717414e389e5e007421b12934c7694c3d751ec01cee068c44db937ec7000001280000009036f4d4f139e83334efbea77c0e516da51139f1925bf9981d798509fd046ec775e2b4eed693249e82199ae189f3d82cf913bf64cdaea7fbd34b5a20f3faecec78bf3d2ba8505dd4cfa4a4e8d301abf2832d5d7ff1932e0ae2aea76c8983303b52c9936c584c5ecafe84b4866157b6c55f208d74c2528961e4cf4b4b95848290d88f9cddd1cea6d67b54fe39617a58413e0000009060fad0bb132545deb65c878b0ce8b544b52583b5cac55466a0f14722d476ce46fdbf3f564ee292ea64b977c381bd17707a6b06a5072de4bbd40b8f742d2d0385c9c7c2241300eed0a999b4ec744c71c209e75820c3c93add6e6cc5123660a0bfb4933732e8d23b7d3ca25cbab2720bcc14bd115eacf6349000956fe778f4048eb418dbaa5890582c959fefc7575467390000012800000090176107cf7e4a3c1eef79c8820f3a40a2dac02ce7e22b6c11c24aec8edfbdd27a078bb529c6e6e7fff3e8923a58568387e0894cddc199ab0f91858207c73bee7dc11b6c251d7a603ee309e6f15856d82f03fd317ca3d65f325b1d7b7f5f560fdd559d92879a59074f8d22b5f1eba9d1c62ca2cd29939327ac181bdeba04407d50ac9b35c8f254c66535e2c6d35889c597000000907d8d646fc5ed7dda9b44cd51bb81d328bc96920de63376b4ea6447dcb67026e9fade724aa488e8bb9c750c835842a3e258c0fa307e672de5f0fc7c0e9b79d58dd7e5509d19214bfb35bb9b35dab94a8409c11f52c7c0badb77ad61b7834db9bf796f79461f174ecaff7ca6f01786616d203a5df354d8de9eb83d717cc3a585e7fadae645444eb57f43fbb19c0720784e0000012800000090db74264f37d1e5ac48bc360fa3ac1f365840a11920381d26670e2e69bc05a4073e7bb65c58566f0b0b594669565e8e529ff5612959f8ddd367adc660a189f0f5323baeb160dae229aa936fd1cf3ea53f27c77f541cf85b2dfdb98d293cb2bff8d16bee86550778cd82acde4b9e00c4bd0ad4be05be20999e61af2948f4d24df761c8e426dcce96bef9ee99a03d6d61eb000000900cd0763aadf988899b32e651883acd7197a92968246d4df5fafd537c72c0ef83434deac8fdfc9f5b9f592768da76180f3b7ca701a607d2530ab1a7cbfce99c4f733459b5da62189a9a5f3cfbc26637c82fce574a08c60e3ced8f24eba946a2d450ae7193955645a41515e55a080f267a154eadaf1ec638141e563c16a6aa35455d3cfb164a49115425c69ca9eb8c953600000ce400000128000000903afb72cdeec2a47f1bf935ada706a6e1a4d6b576d4a94b508fa1dd08c697611b2d6449105f66efae08cdb3f7028234ce6ee5210f04f031103b9ba05afb40224093b5ae3e5938b0a114bc9005b43a3479287a976ff10d30dad9fac1babce35d8218441ab6fd35f20a7ced3cbf8c9a2257226134ae106787d34488ade600e2ffcb6a4547683da6bf66fece37d83364f31d00000090e55d01f0eaaaba67f08b09aa757650d9069d2785bb9e1e6188c9b9006a9db9a4b39f17c8847939bef971653bddd12d2327d64ddc255964faad3f9c304c227b458618b871295685b959f184ce4eb8aaa81c68ff418a89b0de0ce6130cd80568bee79390cb5916bf12c9503590109c0ff419a94015bf0e01a458cdbe44bc377902449c6a16eed79d779bf753ea5635d7d40000012800000090d02006c4eaae045115518940c9ee0cc26b58946c4f6d8d81e9ed0daed3e838377bd9ffba26d92307bd106f4e1074973bb26fe542b43afdb16f24af4496c40ff62806892de32b92a6bb2f85761c7da8512f9822ba5933f5771510f41f5214b17800e017c5fa858cfebfc62247a796a63f08d318cda4ed4be84efb24c8c2bca8687a50bbdac14f8e916f77f80ce430fb330000009029bd6bba2d30919b80e1d32fe38320ce270b13021452f9366600bcc5185a30f6d4c385f9cacd4daeabc1559a90c837fd82494be962c633da9650440c6c5595fa4e1ea09c5a38048662fe86f85d733dcf175526449d8728304fa159bd30acb3714d604ac6afdfe3bb4d685f2b66ad696e24156b3e683f38fa846effe4cf020094ed31592094147ed5154e106173b819eb000001280000009053b9e98ec02851eb21e60488888e73ee9f47549e199327aa34b1d1f90ca135338c79bf0844852a2eb7414f7974d883f741b18d058d9ce31d939303245e05c19492cbe1f784a8d110ede68175699dc0400ea7644e81350776075cda6c1661a6dba567950d4454fc2ec43c5fe2a0906cbb06ed12cddf328aceca03e3b4855f5bf7dd742e3c3d3117557227e874b3e8182300000090be2d24b8bc1ad75c0dc69849e53fec5259a4cb6c367597d829e1b7bff7dda63e77bf3d096585aa139d14797b5d8750a4ad2bd13684190bbbef0361863da876b87bd42665423a42e22fb3060dd9c73f900fe1b72ebc006d5207fb30006150188c6f0c6b14f59745367dca68862f61fd64143a1d6601e96d56ebd298f4b90b2df73215a6fe8397b194a19bdbd3778838c0000001280000009061b24e8ceb34e7544d129a9ef21d5153bc0b8ad1e3030cc9c284f53a895703cc495bb72ff7b1e273961b4dc9380f780f81eea3f598857b744cd330ac15e4487e76e19b83faae1486a8932c6fe388bbd104ebf68c70862af81f17867f97d9f5429f3004c878af466f41113a337ea8d42625b48ea1b6cb49526fc175e65dd0a869734216ed12ee7344981f3ee15ae509f8000000909c0fb44be97b4838d4daa152553b77460faacb7b06613398d7aef1db12ebb8eb5316e1b443d232f06478225ee82244c0f19ffda0b5cb4428ed328f713beeb4c677d11a7860c83456231e63c21233376d2942e81f463d4a7bfb1e05501bad2d78716f8dd45969b88054826ddf5a4ab41d1fe8eb57d44df5ff0817cd39b1023d3b1300b422d38594b1e8335068edeff0c90000012800000090f7fd108f548783bc9551d0d463a8bf7f94a1e6c8b60fdf451f3ccc606f8294981d3b5ce672df54868e27a0d8c74f348c5eb3030aac40cf3b1de346cceb7fd9494ce3bb35881972d7f3ff5182877dbe210e4d4d8bcb167849ba888a13e210639448d689ba5995a2cf6266d928056eb57c13fd22723df36937f86c0cf881791de7146c0ef65286cd69df8547c214332a6c00000090107981bb8f3aea1065b9cde7cce56d12eeb6f1975473b67b99b5d7905cf13310268fb70e8d77ae3c05f4d16504eaac521eb288596375ddb8bbe2b995b563ac45d14476c72141c4a547496c1db9ec803f0af37fc493bc765459ad57f11167ef07a56d7ae032cddfbef55d311e3c8c425c1d5f508ce6dd96b32f5541b5293772a56130dc086e6bbd22f1f14c33bee5977700000128000000904aea85ceeb0100ce9f1efe3220bb32db922cf977772d43c9dc1f19c87e7d98a43d2d4dd91461cbc408239b7129aa237d8f5706cb253427b511c55b8f8110d04c4f75627cd8f2aaae43666df85e688abb2b411b78b74abf27c22bd96d667c113d6ac58fd22b9c7de263650011fb996c991379f7ee71c2db13885787b6aef36f6554e2a482a11f00e6b2f972f7050ea52e000000905dc0a969a008fa8b4f1dec7acf6b73b70ee3e47f03fac413035557cab3728677dba8c647aef9ef6bd288376ce693f9dff555a7ba5d16a3c6ac032d6a3f07367a6b6f9aef79f274229b44b49e74c4d5a70ebb46c5b566d049f63a00cba0910d271c54a1fd2dc3ec64fa53c397fa015afe072642f0c50cb747fd7e48b670f7ba3d433a274106daccdf396ea36e89ad989d00000128000000904d612ab7845284ce62a5d70cfce81009b375cc463bc6b4ffaea4b945ac0ecc3e0a9761c0b79f273efe7be8638f5d1214c9ba7b811132a5956e5814925721c70c9dd4a72c8607a93228bae77a151bfd9528ee829fc60f20def2577aa5063478a969eb41ed43db4dc251d94580ea6d57ed0883dc36e6b90a9d8559bfad5c6bcb8249995f89b8c7d7ca876af23a63d5c33600000090d084b4dabbdbf002a2ad9e9b451d41e78ab165c3c7f702e19c8ff56742faefd0d8f7ab71bbf7046d1c6759c0ed5cef66049cf4f12682a01d197682d9feff8675c006e2e5b99c06e7f87ec28abd8701071acbea1eafda92c77cb9ef64e3f4c80ccdf4a2bbe98841fae72e8bff58785d6f2ebdf38676288029cf0430038dda9ee1e0691a4ff64145cbf081b44c35b3a58f0000012800000090fed672fa19c5a9fdac804a848f869fdfeb363115e5e26540892a271834e433203a0ce7667c3b203cc1818d7381bd9204c99cd8f22d7f1f48da5a079063be0a5c65a65a1f10641cc5a8dc6f0a73d4a4c21caea77de0d2fa800bda8b62236680f372fc9cefac781c55d095df26f7540c240fa8bc9c2733cb9329312ff6ec7e1a2b47403a75ad67ea7df93243f6410371b8000000902a3b422ea518dbe9d741c4df05062ed74e4f1a7c1cdaa251fd989bdf008dfdb9913b4a0aa120549e6481d925e522fbf312c7e71e437b6740541bd4042d6a43bb04caa03ac96783ee6668097107a6822f1a6220290af9e64a6a3daac8e49cd4a92e2e4281788433ff7751265efd25dc8b23168871c86c25ebaddda482171ae243097ad2442719b309e4bef5866d5257ac0000012800000090f6fb1a394b4fc4d8c67dff4c8a0f3cf317d8e1d8a544381c2e4f608b6881b61c279844d2b20be38aa65786e01b06598262c080ce23c3a4d43beb19c7e56f13b0034284e7e04ea4e7bc0581a1df91a2fc2b2eb63ded7e27db61178a4db2ebff23acec70e7bdeac1c5be55a225d28d794e00ccb5bbde557906d6e8d058a62e4a962ade0a495357064b12e13a6a656b19e4000000902998e811887c2a59fefe44a5ef8aee9b5bb61aac5fb000d6b8668f8543acff09c42a82122a23a92d53749b91f2d61b8290a2571d5f69c4d7011e434acc40d765eda4b06c27f2fdea490af3a30f219735073ba046894540f7ebb006fe2a56d87c722838a540d12f7fd6a83d91a55f94f925f6e6951e1f6dfeabaef20424777b6d163020f97bdbce40f95e4366362cd05100000128000000906cfce12e4210cbdde53e910b768b0091925a9035a1e9dca4e8773ccc6be5749368bb7f4eb080584382ea35acc4e2df39385648d4e04bd6dd4bd2715a2e58f646fde89d75d7dc2716afad281461ee7d372c002ff6ec7445af50544b2b651402a23be2cccc1dd2b9f0efa5720a918b9cac0fb4d2268b3ef217f461782f7295446e2d5af95f1535e557c2054ede0b95a58e00000090830257100c277e93f3c49f7ab082ad055cdc67b0141825003b9cd3d349bdd02ca5a0e8d02263be0c4869a6662de376f16b3f51587e3a0486e2abefa3e86be4090e7f70bd98e6b8e369f332ca3a555eba08acfab520870ac5e28daca60516f10f3cbbd7d5d7a9bc055c22d9a60dcd063b2088e784f4201a6da3a72a7109350e0e50afba596a2cde4abef655e196536d6500000128000000904bdfdedd1e441dfa9e136bc325e17eefd8533060f61d5b4eba53c4298b605b6c820887e77c1f2d80167a74380a324ab0891b385fe8e0d7db0355d21cd79e286cd92a1905fa35b5c2591ccb6189a7b25b2f643afcc58f0e60679134ac8e4e352a21abf33cc9ebcf6ede3f9024bd4b71d5189afbd5aa0970977159e383e05b5310d94d060043e1583f43b0d0c89313bfbf00000090cc7b3670a5bfa40d016465f019d7d2af8cd02ce946cb6043aec4904781a5f768a672661e4268fa54ce8f5dd8eb3b3deae505c62ff556edfb87bbba5e4d40dc2db8a5702a72980e4f2e6879eec88b2eb519068b54d138aa1b9878212212a23995c47780b94b4f323f449523755607d9f91739abb31df8ef2f415c1799776d60c8baff3f44fb4a919b773a8487a1f97ec400000ce40000012800000090246a0d106a08ec9b5c24de43750ef0a453554bfb753dc1bd1b44d76c83c910dc9709febd669d7f4708221c6566ad4f3b752ae618d5b63fe50aea4cc7c8027e2604120a79b2712f6a3edb322ecccccc8e0ded9fa60da1014d4339819cea3f507d8e0388cef979d889c1bc43f9f8b27be00820c059595c41a9b7ec63ebf035467a5eb02d9dd6770592c3e6e6b5b59ff90000000090248d83c678092b420119b2023a8823eef838ae6eddb4ac214eb2f385c755ae3cfd292f480c7495d98c1a97581ffc4ec910de7e1cee8a7c9fb0c79a2f0cb3ec60a2aefffe3f108ae87c9e920826700d7127b5d29d9538a7c7803d052198053d0dbe60eacd686d97d02c9f91e558c218a22ca07defec009d42f301e9be442e4cab8de3d6806f2a2defa3d029a9d1e7a03b0000012800000090c947d1f7d0e8fba004eea5a277d746bf38ed5ea75219a9a00d7bd60061f3c8c96ee19187f2074c4434357275ab8df7f3be32404b5462f58878abb847e81944076bfdf875d8259ae9f5bdda689669cffa2f32f2b4242e723d1434ce950109f634baeba2e1ae441a1f170ee8001241d43607e29f21ce598cc9ace7c9fcb293ee98cd771c06a90452485bf2960e778b03c2000000901271d45b7a0e31ed8ba6c1f4e5765322949e4271eaedc6e8744c7b50dd392f98e4784b69d1e36236dd904180d44f664ad0cf9e2e7fc013b9317d095d7daeef6a622ed3f74f06a8ceb6864d4d40b7377102609e650a29204bb2631d787371559b68c131e61333a9583e8b11c64fa181b7114a5889c5dce28a03b894901ca664de01ca0b3187012a9ee30aa500274bfd8c0000012800000090080eee5c08e5b2165858bf7941e34b1c0d717f86d45527b00f6cc5e4b650c331c39d029aaa40138104ea682d224432d15211421a42f71fbb8003b4235b83ff02ca7049f3809cd47737fb94a2a94d54f226600b5187f1ce2f5394c078cf06670a3249e0738e9d170e952ca174bc49690b0069e888bcebb11f591024e564bdb1fb4f4bad91fb2dadc7bec3d18445b43d370000009055e5f35e8be8a12b1379458b114b88fd50ab46f2f773bbda0d97734713ef5e9a606c28a7e8b69ff1cbafa0ea3e281d0c80a2f2b3f6646712ba95dc6041f1fe157fe42fd03022b10511ab55f998390f5b1a417cc74fd030c667aed93164d9087c351cc11f46db56298d8dea943ba920070ef0aa228df6701eebcfa9485c12c79ea07ae7cd1c49ad151ba529a8ea2dcb1f0000012800000090b656cce2d7cf095027f969dd662bc35a7fbf7ff4f4a36f26c8f444b429e7ea1f32ebbc8b61d294bb0ce01f0aa8a79638afbe11bf7aaf3a0860b1179a7446a4601b415dbc49fef8f2cff00052f63d2a7b24bb6746427061652664d449c145012f9c77a29891a54e27d9f89cad7c0a6f3d16e0757c54171d8bc38a56bf254985518ebe42b99a52302435cf36647d8178c500000090d216199db36837839fc6cc741651443e07e5ab902fdca004f0f728cdac1cc4e17000b64f52f8a972517e7b7446c609627fb04b84fc871b68b62b97d5092fe97519e19c5abad064a4fd6533c970cf8bd02c9a870fe6745678a04cb5fd108f93f7f2c420e138f8251803bf85d31edbc50d063660f9398011412e41b42cce9fd0edb964689b4b6fc0b016d7814c9fa0e1ee000001280000009082090320bcdeb7d28388dc67ed61d02475ce864818b0b5d232143a80315ce05dee400b69ad5fc343fd31c7490978667ed9da0b4863317365db5a1eee2aaeaa0721cd6997c7c3eeec2cd3838ead39c8b51e2c9980e5c46143bde338449b6a1bd9c9572b96ac78ec9dd87f59f5cf57b1c90a52db29968774929c18149634aa73a210ea1be4007ec9b9274674a037202fe80000009030bdb825638927614a043a9034162d728cd43c745725fe8c19fc6d50de76e35472267d56e50d6a55d880cfec6342622ded9ed869f75a0c1487d9f9a382fddb13ea1c635e627834235148e634e3f6f1100141e873786b317c74f39ce868708d31cff93b38fbdb2cd20143eca47bd75d53241211448ce1906df7ef556aa9ea4eac40f38f11739df9f5c499605bead183900000012800000090f813f828646067dc51d5242353d807ee5c1aa9c66ed5d7d331c5d0c01de93981885db387722aa025e33b87470d710ebb973889a6809b975a22da8a56907bf80a84d15918cac48b2794e1822941153e4a1440d4db50c931e1ad04e1bbeab9c6ee6e182b4d835485d207cedd64ca443245055847fe127bf5394e1fe8a06707b4fe6c019fe62d4d9b94e56b5d8b6c8dc96a000000905c2449a18e5907e3a3200004082d61f84dc6275702245ac02221e2e9fa7fddbafb9c0c03c33e3a522adb8937b44dc1cfe493c26fd7580d60b981351db198a234dc71b540c2ac7eca5e44130645f0d3ac0205554d5e9f6edd547c5dd999daeff9fbc4fe2f4955a70be1eabcb4d16032e828287e03a8208340deb34ddbd01988ea922f711004ee1ff58d2a80032862a7c800000128000000901094845c5de05e951ad7c565191ca696bebb4b6026bc685765a29fb744acb881d46aa3659618446e392dd104a79f63b78ba6992cb410152ad853e4835cb55fcc765725d5fbdd197e8dd0bebe245a16112642d7fc22957e79f0252e469112b4e5be5dd94c16b0cd03e223ba84c92612b32f29dd1fa08abf0210ae7541fb07518f09b73219800c026a31d1de82806a717d00000090f25784fb68a28671a138a2689a2e27d36ff4b57d6789d7ec9600f50258d2f1d78a8e6f87e600f18c38dd9e2db1ef1fecdab806e69252201bf753848fd642ce0199e4cabbdc6b807103110b79060467dc1d928ecb52987f9594ee3d645e5bc384597fc02bebe8baa1b788619a91011611219cc2d755c7ad29e2b796caee1e48298e1ae075a4906e3cac4aa00fd7c6d37e0000012800000090232a0ab85a65971d9e129564be4959738fbd010e4620bc56d4c6a0cef0df48ea2916d699bfcf86c31ad798df1cf683dc447fcf3f776921569c940f49434bd5c5726b884987da77fc4e5bd2feadede3491d65766b3b5e95867650d9895558f7a6605e54f7b5fadbd155790e4e0f24a61c131f6644777601fd58c0ec242d9d964b3659244cdd9d0734ccc1cd02e2dc0cd70000009000e85396676fe85ae00b6a67c58a775a8e015dbba543d97b62849fd736be0a5ee691edb3386a0d2da107d33c0b6e20aaf0ebc5317953b33d0b1fa5d4dc0aa4e37497ae1ff07f85091f53e2e2c1a4a91912f3a31920458b51becc95d1b36e182988466ef6650fbb25a68f6e41ffe87c8d06fdfda92175001f9449ee523bbe716ed67386b7a65dc2281201dc0f52e79d84000001280000009046eb6f5858b6deb25997802d2470fc937ca6a0db4ec8b4b9f54033e77b0530b1fb827d1b901a45e99ae05235c325eb594e8ae2fcc865713fb826e451fa32072510ba33ea4ea74dd1a418c1fd6623b1882f867d690e3c0e22454afab564d44b876ebb1dc99ee27513ba0d681126875cd2083925d5f64dc05a14f6836d752eb8ee2724d4c45cc4ef6b5dff05966a946bfd0000009089295e34b6554ade8a37880e22cb11e97362668e30b2d266fdc00a06d91cc1c81f1a60714a1eb8e362900d31e59b4874f872d6baf1d057acf9712992eca98651ac3cabd3c68b8480e5a76049fefb122203f473002787777af3bd17162395067a9294669f469176bd8261113591575ea9194fedd044a208a299a74884a04c159189c5584324e0e28c0ed1f934f52083fb00000128000000903b1f75e86603f88b00bc7fcb389a0808f12ee410eb4ea5927614284aa5eff96ce07347df10d30654116e33cf57ec6f616b0d60a7ed480940b78c9bd174f823354c2c6977aaebf30932a359bb3593b8921080a3c03b4b9cd2e136130f101384edae29998621687f204fdcd5d0c5aba84d1348b19326b9878dc77421ad2fd4ec3317bfd7bc9fc0bfaef3ea2d62ded6f7d80000009071cea3ae8023a06bae36072dc5bd97b0579720667a7de4fc06a77c71c8f22fd764d14f7185fe823324e1549513b0c33ba990278a50eef3926f4192fe56d5f4a20a81b3192ea1fa4f5d411f94976ecdbf26fa3c8c2f2ee479ea55e9f45021749e35f514e87b37353ed481023f7e7c801e14fe40a872d25cf710dfd4cb5bd31a7f7fc5b462a5effa3d25bf544a26b50bf70000012800000090550c59f8f001f40751d8d8f83d41b3096ecf6539613399c810c05ea476e5c7f195c496c0590c6482641f0d4001babf649e3c761d216f978c6e279af75d24a0da1cfe90c67caa65b7639e7a82b48e53940c8ed9b0c03f1eca4fb55db4c930c770f029d49a2df26a008e78aa93a35833570ed3c91162ee1d25a96ed37ab571817fafa9c255f21cc8444eb20cac55e0cbc70000009032816c593e8f09426b459417186dc07b9cdfbfa0e7672418b3c63354af60bbdf627fe8e337eebb661f2163173c956523b37df946ad27e4354ed74fc199f40291a7e621b8ce9b5ebb3cf73b45022458160ebf2a3ebe228d431c8938f176fbc32e7f80ca5bff06dcff0d4c1a62e53fd9142812e0a40487e437190f29ae3bae7bf25ebd750c802e6bec8cbbd4b2b60c5e6500000ce40000012800000090cb8101b645c45719b837537f288db2a972242cd3b13945677a520b119b69c1ce9b0cdd31db1ed5af20c58576578b0023ee31cb95c131ee7a51c2ba75defb8f2f925af553133e3f867cf9e5f7c05d5dff0607731d4be02945695497b306deffbd102f7d24cafa87311ce23f557700dcf12cfa609937d2036dd835eb3acee695282f0aa384b7a710abf261c02db6267e0b00000090993f529a09a0517b513d11e6c7d35ae7daea3d9ef96bab7f86182f31abd5fd250a79773e373ecfaed4860234f7ba4581d2eae5882bd731faa19cc6ddc1440f062223294cdc8bd5876a84aca2021e56d0080888d3097e2d6ee2e65c3891b4c62a083308e2b969577fff780fb53c6895a50ca75c4e8e647ac512cde4c9a329960f9d82579529a57a7e0fba3b6c45554b9e0000012800000090c397f20811539f67aa0d9deb333219706d06272749d0ed917bbf52d7d3f1c1828ea1f7982c66e5aaf0b19accc338ec1f0e562c3576ade7ef3e568043e82868f417d22f07a7d4487af14566bc11f10b6a2d0767a2efa94f65d2e2f15db519b52e4d6ad1a96535692bb980b1a0689e2a2321b59c58bb53bfdc0843ce3896a4f36848e0c00a31f3061db854e56ed52aa4b0000000909ebd9573cf974839b5fb0c1a18cd9a565b914ebb383bdd20c73e72a5cb61cfe24ffdb2f71f0d63659b226c9e08f52c23178f18ff0ef81cabe90cc186f9bda9ecdeeef16287313edf4044df7a01fe31c52e1186400dade877de4d00ea6a1b3d2bcfc80220c2ba0f4daded50b5ffeeaac502b7a117fa66d1e46d35c81ca6f4f02933f7bc117648f1212afb6abec99684bd0000012800000090c0e4f6a168e67a0a4f1b0c413a3d02d9751f9febfc9ef4c129386d347ac2828227aed3dc4bbe71247b120e6678676dd8da58102054ee86013cc91f63f4f7add06ac0ae21f75b0939f56d21c8ee079d9f1b09e101295844e7941390e82e4fe23ce5d3f3cb7ee36af753fd549568b8f44e10a3e3341bd516e5ee23abbaf49a9d6a524542bfa891390b79538b307f60c9dd000000908dad9c1e96ee3ced387c2109956a2318f201b2eb51ecd81fee5cc5e16528604afff0916b93c29d298a73cb15adf80a37e539c0e73c13c99060e386785c02de3e03c4a95cf093d2df68e015faaf8beafa1d3d2ad54c1c0dc2fe1220d5e0b58987c14678bb2f6e7e76ef31152d83c961b51f2b841ca071188f2b2b49100a86dd7add0695373e1c3249683b8c2e7b9d09f10000012800000090258db38122111767a6f06767568b2e6256a1c76ba7f99bd399dd90defb9c5cb8a69a331d423515fd6e659c774424095e541dd11504090b9d3821e8039e9b511d0980c4ba6867f8c9494ab945d33d95771c8b29ba520b178f9ce2451e66ca3e510b90fdbdcf2be432f2999909975056861c4b8371741e94728718acfa10fc8bf7568bfba3732fd5fbc52d298fe6be0e92000000906bdf0de137b90d7eed4184fd8fe20aaea35bf9a196cbf9d0fbb4cc396ef24edc4b7200309da70a4e8d1bdbb018f0be98060aa1c7865cc1d2a50e986fae7ba2e510da189ce588ce3eb7c7fac7b9eca1ce2fa9e270894ab1f11c354eed4c70a53893828ae8967fafd1a0ab075afb4342ee0937b02097e238a8a3ab1a5063f0afdb01097c473e4d97d946a3386e067ec4c30000012800000090042c964916bc0cc2975bcbee7b91882633cb36fde8f2e3ced567590076c1e398bd291a2175afe0c483c77d3b93d7090d172bd210c1cd6fcc32b05c48adf810ecaa0299547b96411e5decb69b8154f67a258025cac1d980bfdeaa7003a61586769f66c36e2b27118bfab8819dec6c4a4b00318e674a4622ffb5296d93eef492b52866f74370dd4250d1f8457496a337c600000090b2f68730bfe2c8f0216b58fad1442fb289b8499b95a628c9d83c2d71f222c374101d7a40b459832ef3f396cc4df82b9c436324863f8d4e3a2ebd90d7c88050efdc445745b66f843f2e049c0f8c5f221d2d12df30584882656ff9d6f0efdb29464c87765e44befd7954c672fd4db509bf1ac277f551f5016b51e928ee78fac040bb5f39595f629e87cc40d44fd08c5aa700000128000000900e6ff27e9b1d0ac0be632384adb77793486e64d4d451b359aefa3ecc2f770c53e2bc64852b5efcb0185b8ca6f40e581890c55be4f3c0ba0efd7132544d03f3893fbc5da47e18b3e70271ea2d097039122ab6bbf91b9b3a49701a263e022a02e41a4b12ad55aad42fd4ca280fa88217bb07a897709ee27fcd185cc89617ab003d05727127240091d79f2ded1cadcff23600000090eb243c5a7917e3784d38145f679655b0f598aa913c3585e61523aaba948c59f7500afd3183f8e94dde153aedd2c1efdb0290213aa269d96e40b2e6768a9e9ff804a0da5b3cc6f204bd21b3ed1507f00e0203bd184252c84fccf825b8fe971c75e7c4d7464dd732ccca507038c2a2f800085733ec3b3021387c272405f3ae8a5ff35208a6dd816961ea9b60443e1e72cb0000012800000090000089c0bd91d471aa672d2e71f2b3e95efe7cc2247703f3e68c5341ade330bd2b72cb4d1c453c53e2bfd83a249b4369c796e3ded3ca80c653acd3952935922e8c8e3874477a69194ee84c0ff450e20f05f0f170bedb95b2db6e875248ddb3efaee20d102c9d7f626825fb084b9c02760dffab112427fd2bb4636ef37faa46c0d297db5109d1735caa709e9c11243fbd00000090cd7175b8b999340d3a6a19f314667ebb76111fc1995b92520ec1b2425dd7eec6c6925ce79a38049e728bcf1a7517c76b8f512682dc85233cc675ba2d08fe63a939820be928249d8267ff87e941b1d8ef1ffd90af3769864bce3fa7bf9abaaee175990da6a99f9ffce39188b09054932004577df22545471462a0445004c184e82960acfa0de04ca814e5a59e8d7853d8000001280000009027c57885ad44e86bc050adc16a9f431b8bcd136858797069b2ac1dc57e4bc07f8dfb1b0437a8b04f517ea77e11ff95868a697f4a647d605fca1d24efaf5f2070ed997bb7eb4b394a50ffd46bdb225431064c39026f41d45dc7689a9f766339b36f348817f822b9bade7f63cfc352f1830a6a40c1fca91d694ea2bf01e6c8c96b18e212bae9f1cc726cbcdc5fe42b9997000000909a73ecf61fb7a16bd0da5901fee1878055e506aadcbd399eac68a328c496aa89da4034c0ccd2f41cf9f210bceafb936bef1867d150b6c4eef3a6216f838f46c246be3b5cc9b6917651f0665ce97ec75e0f88f6763f37402d26bc6dd967ea561ebfdf539784f87b34260514f6bea4fe4615f0f38a93420c5a1b7468301b96944f03d14c26da162c1d74518fb5f687471e0000012800000090037411a3e4d6d8fce24c6b20eb2685da8153c648c49b901ea4e198e410c2f4ab8b4f6da6c3001db34c631a0eba034a2a73f7bc07f9b5bb3f0c1cd35b6f830bdde23e56540f2926d1428c92421f512df02d938fb1bf669cb7e3f2f67092ffe9c9235151de0f7780c884c275b87ab16c7c04fbd3ca6e59256f424817a5aa6af4db3dc7cfeccbd2e33a674aaed3c00679b600000090b63e8bcc12b7202e6adf92d08b0ceff3fb5f2aeb3641914f2007f01be6e8d0531717e813359ea9d87f334e4dcd6d9d2a9f469cb3ffe7b39bf3f516371d94d5cd0684b459e90ef0ea7e135cfdc09a459806ebcd20b37d2449effb46e1891920e9552219420926fe5b19e24c84eb5b489702a9b68a3f386683ebb68a80fbf86bda5f9eaf551a05e44bdcb62857b2a2596d0000012800000090be02f8ca31f53bbb98951c594b4d63e86144597afce010fa052abe4ce22ea616e5ebeee1592f72b790e861aa288e5e65e3d4e1de590d600e5fe8e97b2a944523fea6d4877982c820a8382bf211bdab670d212dfd578eea5598603aa2184d3d19631b7afddbf64a7d7d42da50957af2200cfd85cc575e688cfac8a7bf79d13425a8b8118cebbb7450ce71a5f32dd57c7600000090506fbaace8089afb104d6f51761c4b160f7fbe12ea416075884c7051942c26a7a5623325f5ee9b61e978bb6bdb0fb2247e1db58409ed666d92272131d0907441fde90741079630c7979d5c26cecca78a0e9311d2ab08ef98c21d6c368ace80671d4b53355506c328bffa5e50343b7b521f302e47e478b4cd9d6c378dd1d805301e1a212a76dec996b242c73d121275600000012800000090858cb772b6218e3b500c5ec852ec41fa01759de6d92fec4072a5a110de67577417858f16483e60864a6bfeec08ac33f895cd2925d9a32b5592599a6a960b88a9037dec9d267dc8b6c7cf3d14a6eed1e61923dce2ebe3796339f5a12c60b1da8b59ffbea3ff915359fc23a18f1f4967c701c040dd0e12cf5c9847b9acfb42fba71a589cc1cd10069130cd77de09e8f77000000090d3d771170fda563baec8662676daf70c323b048e3b5aea56cacb8e6e05eeab197e7ea3a84783d7048e4b302208cd2677d4fae6517098a2ad889e3675debb168d12bed274ca336a0787c2f0ce0755e66d1c19e641008d906a75f4cfe0412da1c25c4c6eebd8f8acba536deff6a87c52790f0d3c3df3ba9e411bdf469d86c008caa58d2076ab6c34c60b72f9bc03c3d4c7", - "timestamp": 1704899127 + "publicInputsHash": "0x280997cb13c04842e88c31fb0d4db23d591c48aea40d9a5aa2e18fd4c72a0358" } } \ No newline at end of file diff --git a/yarn-project/archiver/src/archiver/archiver.test.ts b/yarn-project/archiver/src/archiver/archiver.test.ts index d873da2de83..c20e2f5bcef 100644 --- a/yarn-project/archiver/src/archiver/archiver.test.ts +++ b/yarn-project/archiver/src/archiver/archiver.test.ts @@ -269,7 +269,7 @@ describe('Archiver', () => { function makeL2BlockProcessedEvent(l1BlockNum: bigint, l2BlockNum: bigint) { return { blockNumber: l1BlockNum, - args: { blockNum: l2BlockNum }, + args: { blockNumber: l2BlockNum }, transactionHash: `0x${l2BlockNum}`, } as Log; } @@ -349,8 +349,10 @@ function makeL1ToL2MessageCancelledEvents(l1BlockNum: bigint, entryKeys: string[ * @returns A fake tx with calldata that corresponds to calling process in the Rollup contract. */ function makeRollupTx(l2Block: L2Block) { + const header = toHex(l2Block.header.toBuffer()); + const archive = toHex(l2Block.archive.root.toBuffer()); + const body = toHex(l2Block.bodyToBuffer()); const proof = `0x`; - const block = toHex(l2Block.toBufferWithLogs()); - const input = encodeFunctionData({ abi: RollupAbi, functionName: 'process', args: [proof, block] }); + const input = encodeFunctionData({ abi: RollupAbi, functionName: 'process', args: [header, archive, body, proof] }); return { input } as Transaction; } diff --git a/yarn-project/archiver/src/archiver/config.ts b/yarn-project/archiver/src/archiver/config.ts index 669827c685a..6ec2e2fa994 100644 --- a/yarn-project/archiver/src/archiver/config.ts +++ b/yarn-project/archiver/src/archiver/config.ts @@ -73,7 +73,6 @@ export function getConfigEnvVars(): ArchiverConfig { contractDeploymentEmitterAddress: CONTRACT_DEPLOYMENT_EMITTER_ADDRESS ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS) : EthAddress.ZERO, - decoderHelperAddress: EthAddress.ZERO, }; return { rpcUrl: ETHEREUM_HOST || 'http://127.0.0.1:8545/', diff --git a/yarn-project/archiver/src/archiver/eth_log_handlers.ts b/yarn-project/archiver/src/archiver/eth_log_handlers.ts index 52133e86d17..8ebf5d65433 100644 --- a/yarn-project/archiver/src/archiver/eth_log_handlers.ts +++ b/yarn-project/archiver/src/archiver/eth_log_handlers.ts @@ -10,7 +10,7 @@ import { import { AztecAddress } from '@aztec/foundation/aztec-address'; import { EthAddress } from '@aztec/foundation/eth-address'; import { Fr, Point } from '@aztec/foundation/fields'; -import { BufferReader } from '@aztec/foundation/serialize'; +import { BufferReader, numToUInt32BE } from '@aztec/foundation/serialize'; import { ContractDeploymentEmitterAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts'; import { Hex, Log, PublicClient, decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem'; @@ -71,12 +71,12 @@ export async function processBlockLogs( ): Promise { const retrievedBlocks: L2Block[] = []; for (const log of logs) { - const blockNum = log.args.blockNum; + const blockNum = log.args.blockNumber; if (blockNum !== expectedL2BlockNumber) { throw new Error('Block number mismatch. Expected: ' + expectedL2BlockNumber + ' but got: ' + blockNum + '.'); } // TODO: Fetch blocks from calldata in parallel - const newBlock = await getBlockFromCallData(publicClient, log.transactionHash!, log.args.blockNum); + const newBlock = await getBlockFromCallData(publicClient, log.transactionHash!, log.args.blockNumber); newBlock.setL1BlockNumber(log.blockNumber!); retrievedBlocks.push(newBlock); expectedL2BlockNumber++; @@ -107,8 +107,14 @@ async function getBlockFromCallData( if (functionName !== 'process') { throw new Error(`Unexpected method called ${functionName}`); } - const [, l2BlockHex] = args! as [Hex, Hex]; - const block = L2Block.fromBufferWithLogs(Buffer.from(hexToBytes(l2BlockHex))); + const [headerHex, archiveRootHex, bodyHex] = args! as [Hex, Hex, Hex, Hex]; + const blockBuffer = Buffer.concat([ + Buffer.from(hexToBytes(headerHex)), + Buffer.from(hexToBytes(archiveRootHex)), // L2Block.archive.root + numToUInt32BE(Number(l2BlockNum)), // L2Block.archive.nextAvailableLeafIndex + Buffer.from(hexToBytes(bodyHex)), + ]); + const block = L2Block.fromBufferWithLogs(blockBuffer); if (BigInt(block.number) !== l2BlockNum) { throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${block.number}`); } diff --git a/yarn-project/aztec.js/src/contract/contract.test.ts b/yarn-project/aztec.js/src/contract/contract.test.ts index 14bdbe71f29..8f05d08a139 100644 --- a/yarn-project/aztec.js/src/contract/contract.test.ts +++ b/yarn-project/aztec.js/src/contract/contract.test.ts @@ -26,7 +26,6 @@ describe('Contract Class', () => { inboxAddress: EthAddress.random(), outboxAddress: EthAddress.random(), contractDeploymentEmitterAddress: EthAddress.random(), - decoderHelperAddress: EthAddress.random(), }; const mockNodeInfo: NodeInfo = { nodeVersion: 'vx.x.x', diff --git a/yarn-project/circuit-types/src/l2_block.ts b/yarn-project/circuit-types/src/l2_block.ts index 2a8efb85a3d..baa87985282 100644 --- a/yarn-project/circuit-types/src/l2_block.ts +++ b/yarn-project/circuit-types/src/l2_block.ts @@ -1,6 +1,5 @@ import { AppendOnlyTreeSnapshot, - GlobalVariables, Header, MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_CONTRACTS_PER_TX, @@ -8,10 +7,7 @@ import { MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, - NUM_BYTES_PER_SHA256, - PartialStateReference, STRING_ENCODING, - StateReference, } from '@aztec/circuits.js'; import { makeAppendOnlyTreeSnapshot, makeGlobalVariables, makeHeader } from '@aztec/circuits.js/factories'; import { keccak, sha256 } from '@aztec/foundation/crypto'; @@ -264,19 +260,7 @@ export class L2Block { */ toBuffer() { return serializeToBuffer( - this.header.globalVariables, - // TODO(#3868) - AppendOnlyTreeSnapshot.empty(), // this.startNoteHashTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startNullifierTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startContractTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startPublicDataTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startL1ToL2MessageTreeSnapshot, - this.header.lastArchive, - this.header.state.partial.noteHashTree, - this.header.state.partial.nullifierTree, - this.header.state.partial.contractTree, - this.header.state.partial.publicDataTree, - this.header.state.l1ToL2MessageTree, + this.header, this.archive, this.newCommitments.length, this.newCommitments, @@ -309,6 +293,32 @@ export class L2Block { return serializeToBuffer(this.toBuffer(), this.newEncryptedLogs, this.newUnencryptedLogs); } + bodyToBuffer(): Buffer { + if (this.newEncryptedLogs === undefined || this.newUnencryptedLogs === undefined) { + throw new Error( + `newEncryptedLogs and newUnencryptedLogs must be defined when encoding L2BlockData (block ${this.header.globalVariables.blockNumber})`, + ); + } + + return serializeToBuffer( + this.newCommitments.length, + this.newCommitments, + this.newNullifiers.length, + this.newNullifiers, + this.newPublicDataWrites.length, + this.newPublicDataWrites, + this.newL2ToL1Msgs.length, + this.newL2ToL1Msgs, + this.newContracts.length, + this.newContracts, + this.newContractData, + this.newL1ToL2Messages.length, + this.newL1ToL2Messages, + this.newEncryptedLogs, + this.newUnencryptedLogs, + ); + } + /** * Serializes a block without logs to a string. * @remarks This is used when the block is being served via JSON-RPC because the logs are expected to be served @@ -327,20 +337,8 @@ export class L2Block { */ static fromBuffer(buf: Buffer | BufferReader, blockHash?: Buffer) { const reader = BufferReader.asReader(buf); - const globalVariables = reader.readObject(GlobalVariables); - // TODO(#3938): update the encoding here - reader.readObject(AppendOnlyTreeSnapshot); // startNoteHashTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startNullifierTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startContractTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startPublicDataTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startL1ToL2MessageTreeSnapshot - const startArchiveSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endNoteHashTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endNullifierTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endContractTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endPublicDataTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endL1ToL2MessageTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endArchiveSnapshot = reader.readObject(AppendOnlyTreeSnapshot); + const header = reader.readObject(Header); + const archive = reader.readObject(AppendOnlyTreeSnapshot); const newCommitments = reader.readVector(Fr); const newNullifiers = reader.readVector(Fr); const newPublicDataWrites = reader.readVector(PublicDataWrite); @@ -350,19 +348,9 @@ export class L2Block { // TODO(sean): could an optimization of this be that it is encoded such that zeros are assumed const newL1ToL2Messages = reader.readVector(Fr); - const partial = new PartialStateReference( - endNoteHashTreeSnapshot, - endNullifierTreeSnapshot, - endContractTreeSnapshot, - endPublicDataTreeSnapshot, - ); - const state = new StateReference(endL1ToL2MessageTreeSnapshot, partial); - // TODO(#3938): populate bodyHash - const header = new Header(startArchiveSnapshot, Buffer.alloc(NUM_BYTES_PER_SHA256), state, globalVariables); - return L2Block.fromFields( { - archive: endArchiveSnapshot, + archive, header, newCommitments, newNullifiers, diff --git a/yarn-project/circuits.js/src/structs/header.ts b/yarn-project/circuits.js/src/structs/header.ts index 12aebcf39af..6c70655e81d 100644 --- a/yarn-project/circuits.js/src/structs/header.ts +++ b/yarn-project/circuits.js/src/structs/header.ts @@ -25,16 +25,16 @@ export class Header { toBuffer() { // Note: The order here must match the order in the HeaderDecoder solidity library. - return serializeToBuffer(this.lastArchive, this.bodyHash, this.state, this.globalVariables); + return serializeToBuffer(this.globalVariables, this.state, this.lastArchive, this.bodyHash); } static fromBuffer(buffer: Buffer | BufferReader): Header { const reader = BufferReader.asReader(buffer); - return new Header( - reader.readObject(AppendOnlyTreeSnapshot), - reader.readBytes(NUM_BYTES_PER_SHA256), - reader.readObject(StateReference), - reader.readObject(GlobalVariables), - ); + // TODO(#4045): unify ordering here with ordering in constructor. + const globalVariables = reader.readObject(GlobalVariables); + const state = reader.readObject(StateReference); + const lastArchive = reader.readObject(AppendOnlyTreeSnapshot); + const bodyHash = reader.readBytes(NUM_BYTES_PER_SHA256); + return new Header(lastArchive, bodyHash, state, globalVariables); } } diff --git a/yarn-project/end-to-end/src/fixtures/utils.ts b/yarn-project/end-to-end/src/fixtures/utils.ts index 9121ca0e114..eb79f56f9a9 100644 --- a/yarn-project/end-to-end/src/fixtures/utils.ts +++ b/yarn-project/end-to-end/src/fixtures/utils.ts @@ -22,8 +22,6 @@ import { import { ContractDeploymentEmitterAbi, ContractDeploymentEmitterBytecode, - DecoderHelperAbi, - DecoderHelperBytecode, InboxAbi, InboxBytecode, OutboxAbi, @@ -71,7 +69,6 @@ export const setupL1Contracts = async ( l1RpcUrl: string, account: HDAccount | PrivateKeyAccount, logger: DebugLogger, - deployDecoderHelper = false, ) => { const l1Artifacts: L1ContractArtifactsForDeployment = { contractDeploymentEmitter: { @@ -95,12 +92,6 @@ export const setupL1Contracts = async ( contractBytecode: RollupBytecode, }, }; - if (deployDecoderHelper) { - l1Artifacts.decoderHelper = { - contractAbi: DecoderHelperAbi, - contractBytecode: DecoderHelperBytecode, - }; - } return await deployL1Contracts(l1RpcUrl, account, localAnvil, logger, l1Artifacts); }; diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index a4f2156ad33..df7f9416369 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -28,7 +28,7 @@ import { } from '@aztec/circuits.js/factories'; import { createEthereumChain } from '@aztec/ethereum'; import { makeTuple, range } from '@aztec/foundation/array'; -import { DecoderHelperAbi, InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; +import { InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; import { EmptyRollupProver, L1Publisher, @@ -79,7 +79,6 @@ describe('L1Publisher integration', () => { let rollupAddress: Address; let inboxAddress: Address; let outboxAddress: Address; - let decoderHelperAddress: Address; let rollup: GetContractReturnType>; let inbox: GetContractReturnType< @@ -88,7 +87,6 @@ describe('L1Publisher integration', () => { WalletClient >; let outbox: GetContractReturnType>; - let decoderHelper: GetContractReturnType>; let publisher: L1Publisher; let l2Proof: Buffer; @@ -110,13 +108,12 @@ describe('L1Publisher integration', () => { l1ContractAddresses, walletClient, publicClient: publicClient_, - } = await setupL1Contracts(config.rpcUrl, deployerAccount, logger, true); + } = await setupL1Contracts(config.rpcUrl, deployerAccount, logger); publicClient = publicClient_; rollupAddress = getAddress(l1ContractAddresses.rollupAddress.toString()); inboxAddress = getAddress(l1ContractAddresses.inboxAddress.toString()); outboxAddress = getAddress(l1ContractAddresses.outboxAddress.toString()); - decoderHelperAddress = getAddress(l1ContractAddresses.decoderHelperAddress.toString()); // Set up contract instances rollup = getContract({ @@ -135,11 +132,6 @@ describe('L1Publisher integration', () => { abi: OutboxAbi, publicClient, }); - decoderHelper = getContract({ - address: decoderHelperAddress!, - abi: DecoderHelperAbi, - publicClient, - }); builderDb = await MerkleTrees.new(levelup((memdown as any)())).then(t => t.asLatest()); const vks = getVerificationKeys(); @@ -253,6 +245,7 @@ describe('L1Publisher integration', () => { } // Path relative to the package.json in the end-to-end folder const path = `../../l1-contracts/test/fixtures/${fileName}.json`; + const jsonObject = { populate: { l1ToL2Content: l1ToL2Content.map(c => `0x${c.toBuffer().toString('hex').padStart(64, '0')}`), @@ -264,14 +257,54 @@ describe('L1Publisher integration', () => { l2ToL1Messages: block.newL2ToL1Msgs.map(m => `0x${m.toBuffer().toString('hex').padStart(64, '0')}`), }, block: { - blockNumber: block.number, - startStateHash: `0x${block.getStartStateHash().toString('hex').padStart(64, '0')}`, - endStateHash: `0x${block.getEndStateHash().toString('hex').padStart(64, '0')}`, - publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, + // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values bellow. + // This should not be a problem for testing as long as the values are not larger than u32. + archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}`, + body: `0x${block.bodyToBuffer().toString('hex')}`, calldataHash: `0x${block.getCalldataHash().toString('hex').padStart(64, '0')}`, + decodedHeader: { + bodyHash: `0x${block.header.bodyHash.toString('hex').padStart(64, '0')}`, + globalVariables: { + blockNumber: block.number, + chainId: Number(block.header.globalVariables.chainId.toBigInt()), + timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), + version: Number(block.header.globalVariables.version.toBigInt()), + }, + lastArchive: { + nextAvailableLeafIndex: block.header.lastArchive.nextAvailableLeafIndex, + root: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + stateReference: { + l1ToL2MessageTree: { + nextAvailableLeafIndex: block.header.state.l1ToL2MessageTree.nextAvailableLeafIndex, + root: `0x${block.header.state.l1ToL2MessageTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + partialStateReference: { + contractTree: { + nextAvailableLeafIndex: block.header.state.partial.contractTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.contractTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + noteHashTree: { + nextAvailableLeafIndex: block.header.state.partial.noteHashTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.noteHashTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + nullifierTree: { + nextAvailableLeafIndex: block.header.state.partial.nullifierTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.nullifierTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + publicDataTree: { + nextAvailableLeafIndex: block.header.state.partial.publicDataTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.publicDataTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, + }, + }, + }, + }, + header: `0x${block.header.toBuffer().toString('hex')}`, l1ToL2MessagesHash: `0x${block.getL1ToL2MessagesHash().toString('hex').padStart(64, '0')}`, - body: `0x${block.toBufferWithLogs().toString('hex')}`, - timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), // The json formatting in forge is a bit brittle, so we convert to a number here. This should not be a problem for testing as longs as the timestamp is not larger than u32. + publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, }, }; @@ -280,8 +313,8 @@ describe('L1Publisher integration', () => { }; it(`Build ${numberOfConsecutiveBlocks} blocks of 4 bloated txs building on each other`, async () => { - const stateInRollup_ = await rollup.read.rollupStateHash(); - expect(hexStringToBuffer(stateInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); + const archiveInRollup_ = await rollup.read.archive(); + expect(hexStringToBuffer(archiveInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); const blockNumber = await publicClient.getBlockNumber(); // random recipient address, just kept consistent for easy testing ts/sol. @@ -362,7 +395,7 @@ describe('L1Publisher integration', () => { fromBlock: blockNumber + 1n, }); expect(logs).toHaveLength(i + 1); - expect(logs[i].args.blockNum).toEqual(BigInt(i + 1)); + expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); const ethTx = await publicClient.getTransaction({ hash: logs[i].transactionHash!, @@ -371,23 +404,15 @@ describe('L1Publisher integration', () => { const expectedData = encodeFunctionData({ abi: RollupAbi, functionName: 'process', - args: [`0x${l2Proof.toString('hex')}`, `0x${block.toBufferWithLogs().toString('hex')}`], + args: [ + `0x${block.header.toBuffer().toString('hex')}`, + `0x${block.archive.root.toBuffer().toString('hex')}`, + `0x${block.bodyToBuffer().toString('hex')}`, + `0x${l2Proof.toString('hex')}`, + ], }); expect(ethTx.input).toEqual(expectedData); - const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; - const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); - const decodedRes = await decoderHelper.read.decode(decoderArgs); - const stateInRollup = await rollup.read.rollupStateHash(); - - expect(block.number).toEqual(Number(decodedRes[0])); - expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); - expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); - expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); - // check that values have been consumed from the inbox for (let j = 0; j < l1ToL2Messages.length; j++) { if (l1ToL2Messages[j].isZero()) { @@ -403,8 +428,8 @@ describe('L1Publisher integration', () => { }, 360_000); it(`Build ${numberOfConsecutiveBlocks} blocks of 4 empty txs building on each other`, async () => { - const stateInRollup_ = await rollup.read.rollupStateHash(); - expect(hexStringToBuffer(stateInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); + const archiveInRollup_ = await rollup.read.archive(); + expect(hexStringToBuffer(archiveInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); const blockNumber = await publicClient.getBlockNumber(); @@ -438,7 +463,7 @@ describe('L1Publisher integration', () => { fromBlock: blockNumber + 1n, }); expect(logs).toHaveLength(i + 1); - expect(logs[i].args.blockNum).toEqual(BigInt(i + 1)); + expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); const ethTx = await publicClient.getTransaction({ hash: logs[i].transactionHash!, @@ -447,22 +472,14 @@ describe('L1Publisher integration', () => { const expectedData = encodeFunctionData({ abi: RollupAbi, functionName: 'process', - args: [`0x${l2Proof.toString('hex')}`, `0x${block.toBufferWithLogs().toString('hex')}`], + args: [ + `0x${block.header.toBuffer().toString('hex')}`, + `0x${block.archive.root.toBuffer().toString('hex')}`, + `0x${block.bodyToBuffer().toString('hex')}`, + `0x${l2Proof.toString('hex')}`, + ], }); expect(ethTx.input).toEqual(expectedData); - - const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; - const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); - const decodedRes = await decoderHelper.read.decode(decoderArgs); - const stateInRollup = await rollup.read.rollupStateHash(); - - expect(block.number).toEqual(Number(decodedRes[0])); - expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); - expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); - expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); } }, 60_000); }); diff --git a/yarn-project/ethereum/src/deploy_l1_contracts.ts b/yarn-project/ethereum/src/deploy_l1_contracts.ts index 9682cc4e18b..319243b3c12 100644 --- a/yarn-project/ethereum/src/deploy_l1_contracts.ts +++ b/yarn-project/ethereum/src/deploy_l1_contracts.ts @@ -60,10 +60,6 @@ export interface L1ContractArtifactsForDeployment { * Contract deployment emitter artifacts */ contractDeploymentEmitter: ContractArtifacts; - /** - * Decoder contract artifacts - */ - decoderHelper?: ContractArtifacts; /** * Inbox contract artifacts */ @@ -165,24 +161,12 @@ export const deployL1Contracts = async ( ); logger(`Deployed contract deployment emitter at ${contractDeploymentEmitterAddress}`); - let decoderHelperAddress: EthAddress | undefined; - if (contractsToDeploy.decoderHelper) { - decoderHelperAddress = await deployL1Contract( - walletClient, - publicClient, - contractsToDeploy.decoderHelper.contractAbi, - contractsToDeploy.decoderHelper.contractBytecode, - ); - logger(`Deployed DecoderHelper at ${decoderHelperAddress}`); - } - const l1Contracts: L1ContractAddresses = { rollupAddress, registryAddress, inboxAddress, outboxAddress, contractDeploymentEmitterAddress, - decoderHelperAddress: decoderHelperAddress ?? EthAddress.ZERO, }; return { diff --git a/yarn-project/ethereum/src/l1_contract_addresses.ts b/yarn-project/ethereum/src/l1_contract_addresses.ts index a5021698775..19fdc4a4e0b 100644 --- a/yarn-project/ethereum/src/l1_contract_addresses.ts +++ b/yarn-project/ethereum/src/l1_contract_addresses.ts @@ -24,8 +24,4 @@ export interface L1ContractAddresses { * Data Emitter Address. */ contractDeploymentEmitterAddress: EthAddress; - /** - * Decoder Helper Address. - */ - decoderHelperAddress: EthAddress; } diff --git a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh index 37a07c35e17..eae121bdcd3 100755 --- a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh +++ b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh @@ -10,7 +10,6 @@ target_dir=./generated # - a .{CONTRACT_NAME}Abi.ts containing the contract ABI. CONTRACTS=( - "l1-contracts:DecoderHelper" "l1-contracts:Registry" "l1-contracts:Inbox" "l1-contracts:Outbox" diff --git a/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts b/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts index aa5801a715b..b365c03f3ad 100644 --- a/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts +++ b/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts @@ -30,7 +30,6 @@ async function createPXEService(): Promise { inboxAddress: EthAddress.random(), outboxAddress: EthAddress.random(), contractDeploymentEmitterAddress: EthAddress.random(), - decoderHelperAddress: EthAddress.random(), }; node.getL1ContractAddresses.mockResolvedValue(mockedContracts); diff --git a/yarn-project/sequencer-client/src/config.ts b/yarn-project/sequencer-client/src/config.ts index 370e9f13702..bccbe1e6231 100644 --- a/yarn-project/sequencer-client/src/config.ts +++ b/yarn-project/sequencer-client/src/config.ts @@ -58,7 +58,6 @@ export function getConfigEnvVars(): SequencerClientConfig { contractDeploymentEmitterAddress: CONTRACT_DEPLOYMENT_EMITTER_ADDRESS ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS) : EthAddress.ZERO, - decoderHelperAddress: EthAddress.ZERO, }; return { diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts index 123203a59dd..3ca39d7dd67 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts @@ -10,21 +10,28 @@ describe('L1Publisher', () => { let txHash: string; let txReceipt: MinimalTransactionReceipt; let l2Block: L2Block; - let l2Inputs: Buffer; - let l2Proof: Buffer; + + let header: Buffer; + let archive: Buffer; + let body: Buffer; + let proof: Buffer; + let publisher: L1Publisher; beforeEach(() => { l2Block = L2Block.random(42); - l2Inputs = l2Block.toBufferWithLogs(); - l2Proof = Buffer.alloc(0); + + header = l2Block.header.toBuffer(); + archive = l2Block.archive.root.toBuffer(); + body = l2Block.bodyToBuffer(); + proof = Buffer.alloc(0); txSender = mock(); txHash = `0x${Buffer.from('txHash').toString('hex')}`; // random tx hash txReceipt = { transactionHash: txHash, status: true } as MinimalTransactionReceipt; txSender.sendProcessTx.mockResolvedValueOnce(txHash); txSender.getTransactionReceipt.mockResolvedValueOnce(txReceipt); - txSender.getCurrentStateHash.mockResolvedValue(l2Block.getStartStateHash()); + txSender.getCurrentArchive.mockResolvedValue(l2Block.header.lastArchive.root.toBuffer()); publisher = new L1Publisher(txSender, { l1BlockPublishRetryIntervalMS: 1 }); }); @@ -33,17 +40,16 @@ describe('L1Publisher', () => { const result = await publisher.processL2Block(l2Block); expect(result).toEqual(true); - expect(txSender.sendProcessTx).toHaveBeenCalledWith({ proof: l2Proof, inputs: l2Inputs }); + expect(txSender.sendProcessTx).toHaveBeenCalledWith({ header, archive, body, proof }); expect(txSender.getTransactionReceipt).toHaveBeenCalledWith(txHash); }); - // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. - // it('does not publish if start hash is different to expected', async () => { - // txSender.getCurrentStateHash.mockResolvedValueOnce(L2Block.random(43).getStartStateHash()); - // const result = await publisher.processL2Block(l2Block); - // expect(result).toBe(false); - // expect(txSender.sendProcessTx).not.toHaveBeenCalled(); - // }); + it('does not publish if last archive root is different to expected', async () => { + txSender.getCurrentArchive.mockResolvedValueOnce(L2Block.random(43).archive.root.toBuffer()); + const result = await publisher.processL2Block(l2Block); + expect(result).toBe(false); + expect(txSender.sendProcessTx).not.toHaveBeenCalled(); + }); it('does not retry if sending a tx fails', async () => { txSender.sendProcessTx.mockReset().mockRejectedValueOnce(new Error()).mockResolvedValueOnce(txHash); diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts index d30b32de766..2210aa32b6f 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts @@ -75,24 +75,24 @@ export interface L1PublisherTxSender { getTransactionStats(txHash: string): Promise; /** - * Returns the current state hash. - * @returns The current state hash of the rollup contract. + * Returns the current archive root. + * @returns The current archive root of the rollup contract. */ - getCurrentStateHash(): Promise; + getCurrentArchive(): Promise; } /** - * Encoded block data and proof ready to be pushed to the L1 contract. + * Encoded block and proof ready to be pushed to the L1 contract. */ export type L1ProcessArgs = { - /** - * Root rollup proof for an L1 block. - */ + /** The L2 block header. */ + header: Buffer; + /** A root of the archive tree after the L2 block is applied. */ + archive: Buffer; + /** L2 block body. */ + body: Buffer; + /** Root rollup proof of the L2 block. */ proof: Buffer; - /** - * Serialized L2Block data. - */ - inputs: Buffer; }; /** @@ -124,22 +124,25 @@ export class L1Publisher implements L2BlockReceiver { } /** - * Processes incoming L2 block data by publishing it to the L1 rollup contract. - * @param l2BlockData - L2 block data to publish. + * Publishes L2 block on L1. + * @param block - L2 block to publish. * @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise. */ - public async processL2Block(l2BlockData: L2Block): Promise { - const proof = Buffer.alloc(0); - const txData = { proof, inputs: l2BlockData.toBufferWithLogs() }; - const startStateHash = l2BlockData.getStartStateHash(); + public async processL2Block(block: L2Block): Promise { + const txData = { + header: block.header.toBuffer(), + archive: block.archive.root.toBuffer(), + body: block.bodyToBuffer(), + proof: Buffer.alloc(0), + }; + const lastArchive = block.header.lastArchive.root.toBuffer(); while (!this.interrupted) { // TODO: Remove this block number check, it's here because we don't currently have proper genesis state on the contract - // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. - // if (l2BlockData.number != 1 && !(await this.checkStartStateHash(startStateHash))) { - // this.log(`Detected different state hash prior to publishing rollup, aborting publish...`); - // break; - // } + if (block.number != 1 && !(await this.checkLastArchiveHash(lastArchive))) { + this.log(`Detected different last archive prior to publishing a block, aborting publish...`); + break; + } const txHash = await this.sendProcessTx(txData); if (!txHash) { @@ -157,7 +160,7 @@ export class L1Publisher implements L2BlockReceiver { const stats: L1PublishStats = { ...pick(receipt, 'gasPrice', 'gasUsed', 'transactionHash'), ...pick(tx!, 'calldataGas', 'calldataSize'), - ...l2BlockData.getStats(), + ...block.getStats(), eventName: 'rollup-published-to-l1', }; this.log.info(`Published L2 block to L1 rollup contract`, stats); @@ -165,7 +168,7 @@ export class L1Publisher implements L2BlockReceiver { } // Check if someone else incremented the block number - if (!(await this.checkStartStateHash(startStateHash))) { + if (!(await this.checkLastArchiveHash(lastArchive))) { this.log('Publish failed. Detected different state hash.'); break; } @@ -238,16 +241,16 @@ export class L1Publisher implements L2BlockReceiver { } /** - * Verifies that the given value of start state hash equals that on the rollup contract - * @param startStateHash - The start state hash of the block we wish to publish. + * Verifies that the given value of last archive in a block header equals current archive of the rollup contract + * @param lastArchive - The last archive of the block we wish to publish. * @returns Boolean indicating if the hashes are equal. */ - private async checkStartStateHash(startStateHash: Buffer): Promise { - const fromChain = await this.txSender.getCurrentStateHash(); - const areSame = startStateHash.equals(fromChain); + private async checkLastArchiveHash(lastArchive: Buffer): Promise { + const fromChain = await this.txSender.getCurrentArchive(); + const areSame = lastArchive.equals(fromChain); if (!areSame) { - this.log(`CONTRACT STATE HASH: ${fromChain.toString('hex')}`); - this.log(`NEW BLOCK STATE HASH: ${startStateHash.toString('hex')}`); + this.log(`CONTRACT ARCHIVE: ${fromChain.toString('hex')}`); + this.log(`NEW BLOCK LAST ARCHIVE: ${lastArchive.toString('hex')}`); } return areSame; } diff --git a/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts b/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts index 89a3037ec32..8d5118df410 100644 --- a/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts +++ b/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts @@ -75,9 +75,9 @@ export class ViemTxSender implements L1PublisherTxSender { }); } - async getCurrentStateHash(): Promise { - const stateHash = await this.rollupContract.read.rollupStateHash(); - return Buffer.from(stateHash.replace('0x', ''), 'hex'); + async getCurrentArchive(): Promise { + const archive = await this.rollupContract.read.archive(); + return Buffer.from(archive.replace('0x', ''), 'hex'); } async getTransactionStats(txHash: string): Promise { @@ -122,7 +122,12 @@ export class ViemTxSender implements L1PublisherTxSender { * @returns The hash of the mined tx. */ async sendProcessTx(encodedData: ProcessTxArgs): Promise { - const args = [`0x${encodedData.proof.toString('hex')}`, `0x${encodedData.inputs.toString('hex')}`] as const; + const args = [ + `0x${encodedData.header.toString('hex')}`, + `0x${encodedData.archive.toString('hex')}`, + `0x${encodedData.body.toString('hex')}`, + `0x${encodedData.proof.toString('hex')}`, + ] as const; const gas = await this.rollupContract.estimateGas.process(args, { account: this.account,