From 1e5a2a13017fcf8af633e8d7d874373663da1e69 Mon Sep 17 00:00:00 2001 From: merge-script Date: Tue, 19 May 2026 19:36:09 +0100 Subject: [PATCH 01/12] Merge bitcoin/bitcoin#33856: kernel: Refactor process_block_header to return btck_BlockValidationState 88d9bc5aa4f9e054487e8cfa60a1f12c5d508237 kernel: Return btck_BlockValidationState from process_block_header API (yuvicc) Pull request description: This PR refactors `btck_chainstate_manager_process_block_header` to return `btck_BlockValidationState` by value instead of using out-parameters or boolean returns. ACKs for top commit: optout21: ACK 88d9bc5aa4f9e054487e8cfa60a1f12c5d508237 stickies-v: ACK 88d9bc5aa4f9e054487e8cfa60a1f12c5d508237 w0xlt: reACK 88d9bc5aa4f9e054487e8cfa60a1f12c5d508237 hodlinator: re-ACK 88d9bc5aa4f9e054487e8cfa60a1f12c5d508237 Tree-SHA512: f86b6e85aedafd78ae250930cbe34dc666c14d800e43cf8582d49aecb97faab801eff8dcc0250082ceebc3e8d32949839e030cf9f0023b56b23c8f7b7a741e49 (cherry picked from commit 489da5df60f797a13e162e8e6ab89c0a7d9f5b2f) --- src/kernel/bitcoinkernel.cpp | 13 +++++++------ src/kernel/bitcoinkernel.h | 8 +++----- src/kernel/bitcoinkernel_wrapper.h | 9 ++++++--- src/test/kernel/test_kernel.cpp | 5 ++--- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/kernel/bitcoinkernel.cpp b/src/kernel/bitcoinkernel.cpp index 9ec51351c439..b174795c31fa 100644 --- a/src/kernel/bitcoinkernel.cpp +++ b/src/kernel/bitcoinkernel.cpp @@ -1338,19 +1338,20 @@ int btck_chainstate_manager_process_block( return result ? 0 : -1; } -int btck_chainstate_manager_process_block_header( +btck_BlockValidationState* btck_chainstate_manager_process_block_header( btck_ChainstateManager* chainstate_manager, - const btck_BlockHeader* header, - btck_BlockValidationState* state) + const btck_BlockHeader* header) { try { auto& chainman = btck_ChainstateManager::get(chainstate_manager).m_chainman; - auto result = chainman->ProcessNewBlockHeaders({&btck_BlockHeader::get(header), 1}, /*min_pow_checked=*/true, btck_BlockValidationState::get(state), /*ppindex=*/nullptr); - return result ? 0 : -1; + auto state = btck_BlockValidationState::create(); + bool result{chainman->ProcessNewBlockHeaders({&btck_BlockHeader::get(header), 1}, /*min_pow_checked=*/true, btck_BlockValidationState::get(state))}; + assert(result == btck_BlockValidationState::get(state).IsValid()); + return state; } catch (const std::exception& e) { LogError("Failed to process block header: %s", e.what()); - return -1; + return nullptr; } } diff --git a/src/kernel/bitcoinkernel.h b/src/kernel/bitcoinkernel.h index 577c4c0a329a..d91a4a633bc9 100644 --- a/src/kernel/bitcoinkernel.h +++ b/src/kernel/bitcoinkernel.h @@ -1243,13 +1243,11 @@ BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT bt * * @param[in] chainstate_manager Non-null. * @param[in] header Non-null btck_BlockHeader to be validated. - * @param[out] block_validation_state The result of the btck_BlockHeader validation. - * @return 0 if btck_BlockHeader processing completed successfully, non-zero on error. + * @return The btck_BlockValidationState containing validation result, or null on error. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_process_block_header( +BITCOINKERNEL_API btck_BlockValidationState* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_process_block_header( btck_ChainstateManager* chainstate_manager, - const btck_BlockHeader* header, - btck_BlockValidationState* block_validation_state) BITCOINKERNEL_ARG_NONNULL(1, 2, 3); + const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1, 2); /** * @brief Triggers the start of a reindex if the wipe options were previously diff --git a/src/kernel/bitcoinkernel_wrapper.h b/src/kernel/bitcoinkernel_wrapper.h index 3b3f5009fd59..ff7899d1d69a 100644 --- a/src/kernel/bitcoinkernel_wrapper.h +++ b/src/kernel/bitcoinkernel_wrapper.h @@ -1005,7 +1005,9 @@ class BlockValidationState : public HandleProcessBlockHeader(header, state)); + BlockValidationState state = chainman->ProcessBlockHeader(header); BOOST_CHECK(state.GetValidationMode() == ValidationMode::VALID); + BOOST_CHECK(state.GetBlockValidationResult() == BlockValidationResult::UNSET); BlockTreeEntry entry{*chainman->GetBlockTreeEntry(header.Hash())}; BOOST_CHECK(!chainman->GetChain().Contains(entry)); BlockTreeEntry best_entry{chainman->GetBestEntry()}; From 64b6aa72dbde3dc73b6a877782771759e4538ece Mon Sep 17 00:00:00 2001 From: merge-script Date: Wed, 20 May 2026 09:46:58 +0200 Subject: [PATCH 02/12] Merge bitcoin/bitcoin#35189: kernel: document validation state outputs as overwritten in-place 0358c26d427a21c147c96b91e6d4f2261cb3ac46 kernel: document overwritten validation state outputs (w0xlt) Pull request description: This PR updates the public kernel API documentation for validation-state output parameters that are still caller-provided: - `btck_transaction_check` - `btck_block_check` Both wrappers reset the supplied validation state on entry before running validation, so callers should treat the state as overwritten in-place rather than preserving prior contents. ACKs for top commit: yuvicc: re-ACK 0358c26d427a21c147c96b91e6d4f2261cb3ac46 sedited: ACK 0358c26d427a21c147c96b91e6d4f2261cb3ac46 Tree-SHA512: f0097c38449c09c6c614a1fb6e5fe09bc84e5dae57c0cb57540419fd6c3f40c06ce8b41e12ab2eff27f4b18d053d32aba2c4a7551a037be93d618b1734922f37 (cherry picked from commit 239424064b24d17ffb76c1fc61e4be349e14f204) --- src/kernel/bitcoinkernel.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/kernel/bitcoinkernel.h b/src/kernel/bitcoinkernel.h index d91a4a633bc9..1540f20ee229 100644 --- a/src/kernel/bitcoinkernel.h +++ b/src/kernel/bitcoinkernel.h @@ -675,10 +675,9 @@ BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transac * * @param[in] tx Non-null, the transaction to validate. * @param[out] validation_state Non-null, previously created with - * btck_tx_validation_state_create. Reset on - * entry (any prior contents are overwritten) - * and updated in-place with the validation - * result before this function returns. + * btck_tx_validation_state_create. + * Overwritten in-place with the validation + * result. * @return 1 if valid, 0 if invalid. * @note Only btck_TxValidationResult_UNSET and * btck_TxValidationResult_CONSENSUS are @@ -1383,9 +1382,10 @@ typedef uint32_t btck_BlockCheckFlags; * optional POW and merkle-root checks. Use * btck_BlockCheckFlags_BASE to run only the base * checks. - * @param[in,out] validation_state Non-null, previously created with - * btck_block_validation_state_create and updated - * in-place with the validation result. + * @param[out] validation_state Non-null, previously created with + * btck_block_validation_state_create. + * Overwritten in-place with the validation + * result. * @return 1 if the btck_Block passed the checks, 0 otherwise. */ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_check( From fff2620ad7770200b63512c2106771af4944ca5f Mon Sep 17 00:00:00 2001 From: merge-script Date: Wed, 20 May 2026 11:30:36 +0200 Subject: [PATCH 03/12] Merge bitcoin/bitcoin#34537: crypto: fix incorrect variable names in SHA-256 ARM intrinsics 86718e4589682529932050dc08998fbb7bd86cef scripted-diff: rename ABEF_SAVE/CDGH_SAVE to ABCD_SAVE/EFGH_SAVE in SHA-256 ARM intrinsics (jrakibi) Pull request description: ARM SHA256 intrinsics take state in natural order: ABCD + EFGH (hash_abcd/hash_efgh). [Documented here](https://developer.arm.com/architectures/instruction-sets/intrinsics/#f:@navigationhierarchiesinstructiongroup=[Cryptography,SHA256]) The code already uses that layout, only the `ABEF_SAVE`/`CDGH_SAVE` names were wrong. Rename to `ABCD_SAVE`/`EFGH_SAVE`. No logic change. Fix in original C code (Jeffrey): https://github.com/noloader/SHA-Intrinsics/pull/14 ACKs for top commit: l0rinc: ACK 86718e4589682529932050dc08998fbb7bd86cef sedited: ACK 86718e4589682529932050dc08998fbb7bd86cef Tree-SHA512: 81c430343f5ee7c9f8d775aa88affb1e3ac60b5df07eac6072d2ba7b53d28c9bb62ea72eee4bc410309f6d38a8abcbb6e27be43dd57d1112b4311e83b58540cf (cherry picked from commit a7df1bd7ca2f8a8515625813c394682394a2990a) --- src/crypto/sha256_arm_shani.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/crypto/sha256_arm_shani.cpp b/src/crypto/sha256_arm_shani.cpp index 2eaa66558a13..d22900300de7 100644 --- a/src/crypto/sha256_arm_shani.cpp +++ b/src/crypto/sha256_arm_shani.cpp @@ -40,7 +40,7 @@ alignas(uint32x4_t) static constexpr std::array K = namespace sha256_arm_shani { void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks) { - uint32x4_t STATE0, STATE1, ABEF_SAVE, CDGH_SAVE; + uint32x4_t STATE0, STATE1, ABCD_SAVE, EFGH_SAVE; uint32x4_t MSG0, MSG1, MSG2, MSG3; uint32x4_t TMP0, TMP2; @@ -51,8 +51,8 @@ void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks) while (blocks--) { // Save state - ABEF_SAVE = STATE0; - CDGH_SAVE = STATE1; + ABCD_SAVE = STATE0; + EFGH_SAVE = STATE1; // Load and convert input chunk to Big Endian MSG0 = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(chunk + 0))); @@ -186,8 +186,8 @@ void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks) STATE1 = vsha256h2q_u32(STATE1, TMP2, TMP0); // Update state - STATE0 = vaddq_u32(STATE0, ABEF_SAVE); - STATE1 = vaddq_u32(STATE1, CDGH_SAVE); + STATE0 = vaddq_u32(STATE0, ABCD_SAVE); + STATE1 = vaddq_u32(STATE1, EFGH_SAVE); } // Save final state @@ -235,7 +235,7 @@ void Transform_2way(unsigned char* output, const unsigned char* input) /* Padding processed in the 3rd transform (byteswapped). */ alignas(uint32x4_t) static constexpr std::array FINAL = {0x80000000, 0, 0, 0, 0, 0, 0, 0x100}; - uint32x4_t STATE0A, STATE0B, STATE1A, STATE1B, ABEF_SAVEA, ABEF_SAVEB, CDGH_SAVEA, CDGH_SAVEB; + uint32x4_t STATE0A, STATE0B, STATE1A, STATE1B, ABCD_SAVEA, ABCD_SAVEB, EFGH_SAVEA, EFGH_SAVEB; uint32x4_t MSG0A, MSG0B, MSG1A, MSG1B, MSG2A, MSG2B, MSG3A, MSG3B; uint32x4_t TMP0A, TMP0B, TMP2A, TMP2B, TMP; @@ -488,10 +488,10 @@ void Transform_2way(unsigned char* output, const unsigned char* input) STATE1B = vaddq_u32(STATE1B, TMP); // Transform 2: Save state - ABEF_SAVEA = STATE0A; - ABEF_SAVEB = STATE0B; - CDGH_SAVEA = STATE1A; - CDGH_SAVEB = STATE1B; + ABCD_SAVEA = STATE0A; + ABCD_SAVEB = STATE0B; + EFGH_SAVEA = STATE1A; + EFGH_SAVEB = STATE1B; // Transform 2: Rounds 1-4 TMP = vld1q_u32(&MIDS[0]); @@ -638,10 +638,10 @@ void Transform_2way(unsigned char* output, const unsigned char* input) STATE1B = vsha256h2q_u32(STATE1B, TMP2B, TMP); // Transform 2: Update state - STATE0A = vaddq_u32(STATE0A, ABEF_SAVEA); - STATE0B = vaddq_u32(STATE0B, ABEF_SAVEB); - STATE1A = vaddq_u32(STATE1A, CDGH_SAVEA); - STATE1B = vaddq_u32(STATE1B, CDGH_SAVEB); + STATE0A = vaddq_u32(STATE0A, ABCD_SAVEA); + STATE0B = vaddq_u32(STATE0B, ABCD_SAVEB); + STATE1A = vaddq_u32(STATE1A, EFGH_SAVEA); + STATE1B = vaddq_u32(STATE1B, EFGH_SAVEB); // Transform 3: Pad previous output MSG0A = STATE0A; From d45fd5d0b1f690c94e1168ce2c3fa4855012070e Mon Sep 17 00:00:00 2001 From: merge-script Date: Wed, 20 May 2026 13:17:41 +0100 Subject: [PATCH 04/12] Merge bitcoin/bitcoin#35328: test: restore assertion that tx contains exactly 2500 sigops ae73b69b5272ce69a409eeae9bf77222b23260a7 test: restore assertion that tx contains exactly 2500 sigops (ismaelsadeeq) Pull request description: darosior wrote https://github.com/bitcoin/bitcoin/pull/29060#discussion_r3267762329: _This is useful documentation, plus useful in making sure the comment above the check does not become stale or incorrect._ Hence reverted. ACKs for top commit: l0rinc: code review ACK ae73b69b5272ce69a409eeae9bf77222b23260a7 sedited: ACK ae73b69b5272ce69a409eeae9bf77222b23260a7 willcl-ark: ACK ae73b69b5272ce69a409eeae9bf77222b23260a7 Tree-SHA512: 2c76e9b66e367613c1232b65b1c18f2d0c1068acdf712ca0937dae465e637b024df95d6479f26cc5d04e5767e711eb5b3f3a329207af75ee64c7bfc8bc9173f6 (cherry picked from commit 21edcc47e23909a8fa75dba52edfa8c7d6ad76af) --- src/test/transaction_tests.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index a8a596f5ad2a..a5b123ed4659 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -1089,6 +1089,7 @@ BOOST_AUTO_TEST_CASE(max_standard_legacy_sigops) AddCoins(coins, CTransaction(tx_create_p2pk), 0, false); // The transaction now contains exactly 2500 sigops, the check should pass. + BOOST_CHECK_EQUAL(p2sh_inputs_count * MAX_P2SH_SIGOPS + p2pk_inputs_count * 1, MAX_TX_LEGACY_SIGOPS); BOOST_CHECK(::ValidateInputsStandardness(CTransaction(tx_max_sigops), coins).IsValid()); // Now, add some Segwit inputs. We add one for each defined Segwit output type. The limit From a071854ae655d4f1afad1ba3d13cb1208a1b5a00 Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 21 May 2026 10:06:14 +0200 Subject: [PATCH 05/12] Merge bitcoin/bitcoin#35304: kernel: doc: document wipe lifecycle and best entry nullability 6189335f6bf732a535ee3bd49271bd4457271a56 kernel: doc: document wipe lifecycle and best entry nullability (csjones) Pull request description: Document on `btck_chainstate_manager_options_set_wipe_dbs` that a wipe must be followed by `btck_chainstate_manager_import_blocks` before the chainstate manager is used for anything else, as the existing kernel tests already do (specifically the `chainman_reindex*` kernel tests). Note in the `@return` of `btck_chainstate_manager_get_best_entry` that it can return null when no block headers have been loaded. Background: I've been working on a bindings project using the libbitcoinkernel and tripped on a SIGSEGV calling the entry accessors on the null pointer returned by `get_best_entry` after a `(true, true)` wipe (#35293). The C++ wrapper handles this via `btck::check<>`, but bindings generated from the C header don't see the wrapper. Adding a nullability documentation hint helps generators produce the correct signature, and the `@note` on `set_wipe_dbs` documents the lifecycle that avoids the null in the first place. Docs-only change; no tests ran. ACKs for top commit: sedited: ACK 6189335f6bf732a535ee3bd49271bd4457271a56 alexanderwiederin: ACK 6189335f6bf732a535ee3bd49271bd4457271a56 Tree-SHA512: 319d9704c9857c8eb12e8726d16710d8b5777404f8ecf50d832a5e5b0a9b9f0d8321074ecb8b985e5b03a6eb7119cc4eb73f36d096dc0149a73de7d6a74de4cb (cherry picked from commit c6dbf3158b4c513ed824c7edb10e743efe4240ea) --- src/kernel/bitcoinkernel.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kernel/bitcoinkernel.h b/src/kernel/bitcoinkernel.h index 1540f20ee229..ab08cca2c069 100644 --- a/src/kernel/bitcoinkernel.h +++ b/src/kernel/bitcoinkernel.h @@ -1178,6 +1178,8 @@ BITCOINKERNEL_API void btck_chainstate_manager_options_set_worker_threads_num( * @param[in] wipe_block_tree_db Set wipe block tree db. Should only be 1 if wipe_chainstate_db is 1 too. * @param[in] wipe_chainstate_db Set wipe chainstate db. * @return 0 if the set was successful, non-zero if the set failed. + * @note When a wipe is set, the caller must invoke @ref btck_chainstate_manager_import_blocks + * on the resulting chainstate manager before using it for anything else. */ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_options_set_wipe_dbs( btck_ChainstateManagerOptions* chainstate_manager_options, @@ -1232,7 +1234,7 @@ BITCOINKERNEL_API btck_ChainstateManager* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * known cumulative proof of work. * * @param[in] chainstate_manager Non-null. - * @return The btck_BlockTreeEntry. + * @return The btck_BlockTreeEntry, or null if no block headers have been loaded. */ BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_best_entry( const btck_ChainstateManager* chainstate_manager) BITCOINKERNEL_ARG_NONNULL(1); From 225461c46df00f20f8acd549d78b51f5134b05bb Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 21 May 2026 10:30:54 +0100 Subject: [PATCH 06/12] Merge bitcoin/bitcoin#35338: qa: regenerate hardcoded regtest chain for kernel lib unit tests 98f706c698ae77fc91cd46ba2c3750b125d95016 qa: regenerate hardcoded regtest chain for kernel lib unit tests (Antoine Poinsot) Pull request description: The kernel library uses a harcoded regtest block chain in the unit tests. This chain was generated prior to #32155 and its coinbase transactions are not BIP 54 compatible. This PR updates the hardcoded chain to be BIP 54 compatible and contain more transactions. It was generated based on the chain from the `wallet_migration.py` functional test as it contains coins for a wide variety of output types (though it may be useful to add more transactions *spending* from these output types). Some trivial hardcoded values in the unit test had to be updated to match the new chain. ACKs for top commit: alexanderwiederin: ACK 98f706c698ae77fc91cd46ba2c3750b125d95016 sedited: ACK 98f706c698ae77fc91cd46ba2c3750b125d95016 Tree-SHA512: df3370f17e158b36a072877d13f0ee68987fd4002f870e7590e2a24e865e474459b2682ccbdad54934acc452296560c73378597370767f4a557375c594d3c105 (cherry picked from commit 8ee5622455cf2e5bb41ea1a4c9b22e0f5bd4d95b) --- src/test/kernel/block_data.h | 412 ++++++++++++++++---------------- src/test/kernel/test_kernel.cpp | 8 +- 2 files changed, 210 insertions(+), 210 deletions(-) diff --git a/src/test/kernel/block_data.h b/src/test/kernel/block_data.h index f4d693c03837..c033c27635f4 100644 --- a/src/test/kernel/block_data.h +++ b/src/test/kernel/block_data.h @@ -7,211 +7,211 @@ #include #include inline constexpr std::array REGTEST_BLOCK_DATA { -"0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f295badc0bdd9a2bc0955d12f337491eae4c87ba4660078c0156310284d47c6ff9a242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a629da61ccd6c9de14dd22d4dcf06ac4b98828801fb58275af1ed2c89e361b79677daedb5fc7781c5907a88133cd461b4865e9a4881fecfb362304ad1806acf3a7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020621716dbbd2d4109ecf95e3ad14f2e205cc2dc52e286e127009b8941d255495a16bb39e1ed66dcf600fd7eabd1b8ee77ec894a77c2eac0dcc3ef2a4400707f56a7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204b272fa0400818325978161031fed250a9d9713471c9b99be3d10e2350bfd632ccf33dfd714ce243a48150fcf6281ac3563de5418112606ee2cc09632f1ea406a8242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000200e99bd4968d4c5e58887c3a6f1b5e3830eed6aed635a1d7275b0361d9d69c24394c11b2414977058cb5ff828a13c1e28b342bb947c47f8b1fc1c8886c6355e03a8242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000206fe9a1ea5c1b6cb5f0a2139cb187ed8c3477378f92838999f107f912de0bf92b4d7385d0a84e58f7f8d8d58e6aecff0928b0c8fc13009ab0faae02650f9726eca8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207dd73a995a00c5babb1d3084216e607775a03b985ae25926daad86307b04235713e113fa98f8656fa83b8f91124a8f988ab826138358cbc3a9be9216be0194d8a8242d66ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204f6b4fdd4e99aa10a724cbeddefe323f0042f4a3f6e3bd057fd4bd7a5b3ded6f710365157ed17e65cdfd6e4a0ee0c73cfb582cb14dbb879db7465682fedb6868a9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205b86722a8356305226f236b66d49447b771236d91a768cf9bc0773addfcd1a3e203d91dd647210a031046cfccd099edba94b5cb0203ab1e7c208158c1c04d7eea9242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020bc72fce0ab3196fd3b49be9cf4669700f9aa66cf257f046dcef175bb78a079219f52575cd5c0c93b5b37cf9377230c0f4dd62069fcc6ddab1a0cf35ec1c440eea9242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f9e09a49780b8e3ae1b5e0da63887e81528cede0a052fc0ce7e7fe44ad09ee4b676a90f97480ef4e447335f1b9376c944381fb06d69b778a47248e5760dedf62a9242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208bfac22a1b801218b55cbd1a36c86ba707d495b52d968fe24a89ef430c6f9c05419a2754a90f35ebf699288adfc71568252fedf46a2b731c2cc787d55e44e3dea9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020da91c8b0a3772de6a794c9bd40cf7c1f8b21fac91f99490e7d995d7d0bd52a4f69ad11d9c347c0bf88430b128b39f27b954ffcd48bc38501eba0a99dffb7969ba9242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203956d8b72a0b1c7c1d4368095f6c1db60573c50827830b648ad2d6741d41947c48e9d057ff732602042bb46933568292bd57e76761273b7af178baf926cebe60aa242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209c4249925fa49bddcd6f0917f8c6444d899d2d958c65e33da450e25687d46c4a8efcab0bcce7a6b22485598a2eb928092262c95f2ea233beab343044013269ddaa242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002057d9cf496a6ad859d1ea07872d5252a23bbb538bc7d1b08c8d9f0974a85e5e02b3db6b3f80920bbe3b22af1be2e9aaadcf80a154efaaffdbe490dfacb4d3a451aa242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff026000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b6fc1a61f7be52633d0a4b4c4c19f771f10bee3fc56588432391c5e97b776f738ad2ba58d06082ebd00d230f18adc6ff1b93a1d3174ae38a06182420b42fdc3faa242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d85d1bf880c7990a81b9e0267b68a228b48cb64845a580143e82bd663d0a0978185fd95f0baa50fb47a74aa8cef8c1399c293494b43012d63d964105bf0093fbaa242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002068ffadd19d0280c45ed8f0b7590dd75fed9c1009e0475d4668a40d2e143bab669b7092044a52f2177565d265abe12345db9fe2547dc3e3cb383b448da633b1b4aa242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002097dc68fc9d81183e84448af957c1465f569cac8fb65c074c845d64f19bd554104171f67fbd239999b74fdceee35ccc71fc59ef34ae332dfd14552a5d8acb54fcab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fa4af9a0fc0b0e9a0ea56ef4057a1a63e28af0df0899331bb075e539ec56ed679c4c2ad7a53ca7b1f3b7ef31bf7d585f1ad9511bdf22079b91b0037506b12489ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000202d10953dee9089d3920de4d1b7493724d70356df3c857c7d68ad4b2d806ffa4cc7871c5ea175f0eeed32fed65ad39aff543ff56da564b92513d293c81ed49110ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fb21d2eff50f7ca1bdd3cc0723ea65ee398360126353f003d6cb3ccdedb6280ac6f409e9aa8debfb95a59e6ecb9af657726d9ddcd0bd1f1ac24a8eafb9b94714ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205f4c345ddef72b4ef5058caeacc0700a66cc39ea3c1a2a18c317648cabf8dc402cc83f2d67a467a8717aa1879c41c5677f480ccbec5a8e8016f1f9ccd56aafc0ab242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020310433ad6123b7d5d9abb3bbac99aa342bbfd500226fb0716aff55f3699f353f95c43168d3378b7887a2d1a24743cf657c91539d417366f27be40cdc63a601d3ab242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020bfc0947de2b6ade4585380f94beeaeccef09260f0f1dbb8c7dabad11eb32c97e4b029e0f3109e37889b0eced5a40e1b9194df469883750646d0acb8145a4b287ac242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203b8193f8ff6a02b88cd464cffda63591cb1786b15b9e8258f60327f63993da034d96fa8c632da473f2abcd001184d1812709ed52e9c2585308b28743ab7508e1ac242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204f79cf2c133c2cc73bd1b961cf050c05151f0eddfcc3697285fb9a7a6ea1a755f6e0ae2538360972f3e0c31d87776219377f2c1652ed388e29dba79997119346ac242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d9c3964f9739a489aec83b9d91e0491348ddc3496aeaed7d36cc80b4d3df73455c30e26ad3209af4fb1594a0425254b96c1d9bef301b3e144f56019afef54fbeac242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b90e7f5b1147bc7acec7273f9a257dce321f9d6cf585f65155e6c59290e6247f65b6adb2f6b7d66e9302a37f0becd2cfc3db5eafdc280085b08a1d087f558109ac242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b22d487dd491c29e60fc3e8ba3dd959c5ff05848a2af269a009a683c1c22c5618eb631e42ba03c2e5b37d623a4c1c32771a7a3b603031767002f9c4c843f1cf9ac242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03011f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002034685fbc27dee9ddf76106dd351ecf20a89c536d020ae5b8164e53b1de2eef03a9c2bde79aea6556b7ff42c0db3ee63b15b19f036578a40be5e29a4e563dc949ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020969d6801100c0cff27957f003d5994bb6fc3e80537273412c2375cbc59edfb1462def50ab47b73e04189b9314b32f18b23c21363bbb1700bde5d6f2da8d7dac7ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002060121e480f5e68740e4ad5e35e43a9af8f3eb909dfe7a80b861af047f3cf2931c46fdbbf4a9811813d7ef66ca70a89a93f377aec9e42f8c7bd13d20dc42ef4e6ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209aa005700a68ccfdfc158c9be0d62b0ebd757634407c2480c905758f803cf95392df59ab811f3f6a5b3b2fd508b15029971cba8c76ab5aadd215baee41c1ad56ad242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002011d5aa6137f48aa4a2d029beed939afced99ef19ab01bf0aeab4d88b999cfa513daa30f857b99deb57009b0a2cf5d37180dae06571b8d97deb3877f4e4b488d1ad242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020596ceadcb769b05d2b7fca9dee997da1a32952c0601a787cb8e23f2d3311976fff761af1a0911827c1fee0c638f4675b54146a3f17ad65f3228b6328a59e572aad242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020cac001eb2c15d3867146858d9b620735c9943430c966ff7b43bad91e7f45b509420bac972f1288b190117f815de318c305b4882e7bc8e00c3806b456d7bc9706ae242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205ff85ba1a9bca61ebaa89e99126a41c976ce9024c9c6ea0c1d97fccb5ecbcd48e4ff003414a88179becf0daefd0565b6648da3fa8b1e9862fb7254d6cbc92b43ae242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d3e4f3325a799d70e469c418e7fce0f325c52be2ee1c190b84ff5b39d567dd2c4d34d12f298026a275ef66faf05c083d36200208e06ef39df4de88faaf51a8a0ae242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002005e0364263bb17cb112c7a6b49807abc56766ca9f33fce8e4d4e1a87d2497518814aa83fb0c65f975b273b20c3283dfd5d0d92e0d744627e70e816693704b452ae242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209de0116300caca1392ccb3afdbe22c0ba403795c7e68d29b0e032ac720d72b322160702e162edb0da7f535d46fc0e608879a1b6d8a3784f18332c7aa7bad2e9dae242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002035420343ac819c9d40e6e0bd55957637aed404fa2ed236f78b1d4b61fb277602e40ee1a3a4f5764d49f9b352a2e181ebe4ae767e0058d38fdebaf88e7da4e9e1ae242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ec89afed1c02ee80c9004de715b1a1394474a122b327770b000dcb7c29b7282f1ba36b2e0780bd43225698622c3c48a9ab99dec79445d3e7bc8d5ae8133576ebaf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d5d5ff8551565d2217e6f20d0eace67ce50337b42f7168bcac7e87d4156b2446cd3d8d5d7ff930c84a26e685b99c22c60e5a0bbe57001b01e9b4a2a696480a3baf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d9ec6348ab3f33d8bb73506326da559802ab477437422a00b3a1199b504bc55bf5425b45c0026fec9c3e2e16e800aa75a220a27848c373ace3c20a18a34fea52af242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c5e4baf7aa27a6d5147063ebccb77e381b0a16939d7982507701d3a3b3e88b1ea7660119cb01238504850c2528b3b371cd1f5895da5e620fc0a044836257bf64af242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03012f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002009254406ac2f1028ea8eb2693b2cdb1fea047cb349d7b270b91ead7af5014e04b71fdcf9152e76b76c1808877df7bb8e379536d46a289fbce9a99b201fd61868af242d66ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d17eb50ed977c27229578a938313b3d86679668181a4e01732cb52f95c116508f755809aaf681a5c0f7839f65813aa6fc171b2e5dcd87f35b13b49b5639016aeaf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020100d4bdda8d6187537d88e810ce2aadf581802775bb74a9acecb6958c75de5251f5b24d57fc19c7f73451a559f0758188af4ab7be72ecb22996be0225b0fb099b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c3333013d49f646c18537154844d37f81871444b3fce3a68f6e165d7095546115937b90ed72637588e4184942469a3ca1bf183fa65b9c2785b4592ea609c8b59b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002017e241077f8cd618734503d66c0ce828b7d1add601903160a3ae1531b8ea1e4ce69c66d64563657224548f7ecfd7ed3571fd5f6976205ec806d72f9aad95d352b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fa40c6e3a15a659ef582ad24f4a2c0a1c801978da4b573a528bfb0fb73c3cf121796631d479c9fa6f6bcc0c5c1f0cc91e10ebb56e3b6c2b867c0052d0924432cb0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b356e0e5bcd4f6454ed9e6f1adf91b466723b45963b02dcecf2e89c0d1045a24d453cc476a5662964ce6eecddb78efb40e1616223d4c7fd54f6ca84abdc87e02b0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ad91fd99ff639b89af585c3b8708062a48ad19660400d204ef099c2d66d1ca57b0349eb1a161d04fc8222cfbc02b8a1ab964abc5744f2cd726b8baaef1abcc4db0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020bacb69ed2f63b38dd103114bbc24dd9b609f8b6380f1f362a05c3f85f9e6cf102a391905e006fcba723d56c6a3eb27efa4396ede18f9c50e0be90dc1e928f163b1242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002024889501a0da6ffd4e6252fd87464b9eb54dbf7b1c759c2ad154152c3d7c5b2e8c3626fb538921b3f59786de9e6ca2487b3a1f5c80a3d9dd82c27a6b1a6eac5ab1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002090ea4ed8d0f7b230fd2efa6b5ffb07e5ee1efd59754e7900ff4e24f793c2d926f8481e6e63a795f646f1d06cacdd2d2ce7b176afa589337e869c55e864dfec56b1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002079f76972c386a45cbd62d5cd1f577e36b2d37895ea48ad4f25b2aa6c386e483404dfb68e4e8a1716e151c7028c8c0ea9e80e9871c3d7f2e1f22b3a3d719fb2a5b1242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203e5fb23077ce93fb1412feb53b3c6cedecfea12edf96aea02a2fdec683564750419ff40c0af3e1f9bd992edf37118f709abc770458bb5f73e64a9068dd6aa285b1242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201d517a82a9ae83660d8c57aeefb14b57efaf3b93b22b43735597bd216af66b161ef125e5eb8baa3ad71c6364e0b9fe078e29f1b39091c478abccc05944bf43fcb1242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201cf4a4d875525be85ed64be8200b4149ba224652f880f050f155e3dd0f6dcd2d170c26d30263760e6ad9aa8194f9ea6995755a57e0596010faac244c63315c3cb2242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fca7eee11cd55953e44151448a37793746c05ace49d1281bb6f27772ed638b2b67f5446d2067d394ab55d0e78e6503e0df4da7137a910a4c06690750156cef79b2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03013f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002011ad845546ac709706716ea309ea4b5dc058cd1be347db517f1ae8ae50c9361943aa4fa21fe9f64d97e0ed3d93894339eb6a84e834ad7e075033707b15a09b42b2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e78aa3452cf4007ade84710d761445534b0246b2c3b5b00cb88811e001b22e0671dc09c26fa4f6e119dcd72c5c20126f2365a75dfab9689aa1b67e4a95a19ad0b2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203fd33c4ecd968f1c4610e6f6f60e7c0f1af838752ba5366ed32510cb26b3043c14ad22a3591f48182ee74f23a1750f137b135cb9475fb201098f2bb4c2f1fdd9b2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d6a39793d31cbfd1af6b33552d9bc2d5e0815877419b6d860a6893b1ebb1c4212bedb144bd378fd4e5d3b8c0be92aae4e95d8ec8618c2fa5b1dd912d8c1d55e0b2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020afdcdd52d9eb6de8cd062fda1c9421479edad871ae7c27b99c48ee589e13431a104b8c78e72462da96c7f39aba43f890a86530d4fb56aee3d96c99c242d524c0b3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b63b5fbee3b85e33873d93dcbf1d566c9081d4a63c6eca84fc96bba1c862520b64934cd71d23a22f62b2496bea8c64f064c4931a6ef4b9384b4a5090b8e27612b3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201a2c83dba9834c76997b89f477b345a47a9600cbf30bedcf4b380a0a11bc8132b6f5e54d82ccd88e8bc1dc1124e42ec2f2b1d943572d7f719c55ea48d5805841b3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020567483e2c2f091af7cd71d03aafb7b85c5032516ed8318ad970e4db324853b344cec6bada693600b655cf4ffcaee0d2df35f7809ed9958da8345783b52a0d459b3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002034b16f266dee682239831dc610d03d10974d8ad400a41fead6be3d03b94acb7cfdf201cf64bc3631fb44b4618cb6720bc1512f6a43eb414c5b1158e0e8505528b3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002096977882289042f845b7bb3350a36f55a39cbe0eb0176a52b5c79ba1a1866d28fb87c6e6e90c3bf164a95415a90ca7e2c70742c5d0695a9ed8018c91f81af9d3b3242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e7e2590b376f0c6998588a75bf37f0fd0f314baf7e49bce637d3237a171b027cce5b0adb066fd5710c534c446ec42d5ab6ab1881de91f18895a1a73dc00b9490b4242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c1df8ae18a085032270a7955b95779b3dc188c2b11d91f35043d5799822bd00e768988e363807504cb4ff2bee0b38767250aeb8e2a783efa9128aed67f9f0330b4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207c4cdc374b98412c61cb0a9ffc15ea2bc2b6c957bd64f30e7da78797a514f014da8d366066fdc30df791b7be1c73f97d762a3d1f1bde06507a39ba65e2216740b4242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208ea0c30cd8e4285b6cecf7a013a9cb1fb5980cfa5361720094c3f46315ddea440201a7e278dc70cc188e58afae9a080f5e982254dc556f22f4f160cbfb2ce9b1b4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b49f1f2813fe4cf60b84013a7a66ee8069fef8fde1589f1bb7491a800ce16d1d94386bf1300a238e3522886fc1804232b1323bf39cd63543be53739e96a67058b4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b9c51fa82b5f3be2527b4f36642f998780ad7424acfddadc457082eb0c51af33d38e3e20e32a812798fb9c16d1ff5978bb6a9700efce13c171e6ca1e4c7c618cb4242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03014f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002050877e42ef334dbf296d7655f56d9597ddffa49c2649707819cd908916b316026e0e9f165fb96149dc1cc645ec651d2c487f34cc59b34abdaca55d0bb52448f0b5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002002eba642217e71e94334723645a3db397f8c83a8b7df5b4c7d12d566dd859014f6c8a924f88f3aaea0dbacb410d9a9d79ddb2b2d84ceee104539ed2663f6ff68b5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201e772bcb91c42f43cb65fa81cc72876b4fd20e59d54ceadb928d3a0d01829824638fdd743a87363f19441bd7d3af1193ec94ee31da28289bc1bfc37ce6292756b5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020cb684c4d09354f8d2173240f3e4080b11d814d8d64ab0b851d0dfca5b67c021264c0b4d218b63f9ef8febd0c822d0c609219687d9a1d6ac2c73f50501a4dd89cb5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b776bbe12a01c8d1d9e30a8e4d564074e939af2c88e559cd1bcd88f99943ca33cf0e756cf03b0b23d9b65053e309a7a54a26e4403cd3a3d3d31524a8af1500e3b5242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203d36bee9d695e4ec54b8442cb62ec3062cb056d95391fa73b69f4867e88c6b376984a42255079b96908aab4f4bc5175852f3d54001a493d4f7a9d09d4aff0ae3b5242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f912ba814881103501d49c3df38e24ff541f6bfc816d4f8bb6db1700edb6cb3db125a06204d5694baf2c13ccaa2f06941adc3ae7d7f2449212644cea8659cc6db6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208b911ff262dce74ee321bf09df07c39930d53a3a10fd83c74ee4ee6eae13a2355e47b7886c2839c9d582d49fdf356a5c298b3f7c879fe4467b01cf7f951620d8b6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002012e1e9a299907113c100c34cf54bfaf57a02c0767ee571d0b0d586957b867632b121f1d6fc22dcfa6fd87cc5ac11579cf7f81554536c4e326eadad0ece3cdaa0b6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f4ce3aa3f38aef3c886d517a63a16d47c4392600caa85ff656a0829380d03e32a1a1289f4216d88bb0514d5259b8f03dcd05fbad650bcfa59cb163ff5b698e8bb6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f590ec1e4d4e3ef13a520a71d67175cad4b9a279b0dcccfac471c658c995af0488752ae773a4154022507aed806c7ee50445a92211b02c10ff86070d353ac930b6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fb36f60f0a788d22d25ad7962333e107e142c1e797614555a25b3fabf2a57633ede3caa7569617ffa444d6d4bd3e2dba7e31085b1976f16d94c537c1d3462c0ab6242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020c4f5c492ba5ee620cbdeced3d2ddd6c6b3cd394bacb1a917774a19048e1ee64732e54ea8502d51b05bca7f981c5ac0f3918dd02dc178206f36957e6daf2a8121b7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020cf0e39e15de40d780ac3bb7eb658a2d93d3f6266fae114f919fc343d08374c096c4d12d3e956a95499d46bd5781b02561da3c74cdb7715f0e5c1b649197c7c86b7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ad64f0c519b59ead1dd2447eba48daccb1250ad83f9f1d2a4e687085d099181024529c67ba916443394c23138c7202970750c86f8edbc81e9903a75e509cbc41b7242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205a1116da770d72fbda72b39179312f45b3d3fb71e2492de5401715d81216ef0877e24b23c538570850108445173cfba3c5baa6ee6af16f807e7f56b772bb2933b7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03015f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205133fd567593e6d4abd3599c4aafd0231415165f82d29a0a1cf4c43e7fdddb68a371d48b5af5147d8cf8f4489d626985d6420f851bda7e70ccded3f95566ccd9b7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208d41770bb44ea7f13f2a4b679dd3af01ffe76ffae2b4c3e26cee308c1b76bd5333a5038cd81caf8e515c5f6cbed94ad8905bad2b17bdfd0327bb1cf41f306accb7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000202f33147ca2f755af1d9f2836059620db687b6d97cf85d832c22901aaaadaa42584b88b0732ce3d9f69ab206742b348ee96a6fbc63c288f14795a8221548cde6cb8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000209aba329a818d2eb01da985e497050eb3d381d104674eefeed2ea14f2531b8716668688a5f4545d86d00bdebb0a007cafc530603c1fbb6d6a9f069a1d5f109fd0b8242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002071c804f177410c9942f1df0bc891b9ae655082125488df7e5c79574c9ad5a83b8e7509e225f8970ecd5638f968934560a3b99f6a3ec03a5dca7a9db5331ca713b8242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020617c4698f1f9b2a52fe2182cec78f469324a711cecac03013aaad0089835a916f9126503be1001080102ab122a123a6ccdff5a94017c15a6f14012fbb8a8fd78b8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e54649f5adf59dfb18fd1370434cc76ef9a453762b17a435dafb580a19a5b868cb067747f9a355804335084c652f93548867e02050fbcec3c0ccb05657ce666ab8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002067232d9858897d86a155b92fb94b42353d765f0d2eaa095460a1ce297c3863051e31f463b5077ebdac1295d56461028fec70e8022896c54cd172a1fa685ddaefb8242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000202945795c2dd6b0c47c96d8ce65f0083cf20cd5760622b59ee895eff33b8d1a36ec51a1a1a99a971437b3d24f06190608cc2646842e3b3fda0b00df450f59ebb2b9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204a4dfd3ceab29299d0c607c812ab2626cc1a8416870f5acedb9b81bac3807271f400a1a56b15e990c516b29a50a9a3725ffa77ea1661fecd37cea2e74c8d2b9db9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020b3bfe4afe33b5e0bbe6f4368e2e2b88a2bae140c03c811e87ce5cca690e3e31406b87a9f1d8a9d7af6214f09167857f20c61c842d9f9231e5399e4336040fb04b9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a32a6b2a892b689df14f7c9c03410d3d3f93170e7e52fde74d044c1e26a1263168b9d32cd7aa7507c31758104cc2615250fd24f3b52cb887666ff6f0ec67e81cb9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208a6eba5ccecfd3497234d5a3e2613432219c17415974089a4bc57e2063a8ef05074c42c456bdf4c1c163f1c5f9449710ec4bdf2a235c8c77b8acb0ecdf13e9c5b9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002001acb70779eb9d2ea47e0f4d712f3c53ed5adce6a5648f3424f9fd45c3afe619e4f0e50d89b209a25fca681be53f69ea2be9a77f7f90dab1fedf189630913dc1b9242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d71e5b9e74a151b78b3a08b892fb6c42413e72678245b69fb336d05d2ce95e2e0a448aa97200b2d8ed8f31df63f6258c37cc4e57f10bf391513646f458830993ba242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020565de0257565202598c3f694bf1a7016d49a7c6ddeeb114476ec452fda62231928c5aa1ab310a7f56b5f2719f9329b2b4547a19b31a378b52d3583a961f1e961ba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03016f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000201b719fad536a1e8d485b159afa8042912824cd38e30bb6e084cb2d267531f578df5ae1d4bd3c57f48af225d738ad22c741af78b77c80b58ba589ed86c214602fba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f404df02ce88cd268ed66c9acb0d67468318534f1e27e77d97bd5b60390c9678a5b354db44b69a99df4a92e3c49cce01869df231013ddaaab5e3f1bc03d81294ba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017100ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020283fce509e2ef4684d5111303f968fe5b3964c6d87ebad2c0f2fd454548149054dbe5c69140bc662c90ede02f18a5558adc0047ff8eacba64aaea4e040ed867dba242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017200ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002093eb737cdd90ca5821280cd71e2bfbdef549c1e6ba380f03fdc1cccac4059b2560035e74a3f897390f93b6ed88250a1c2136ed516feb5a2a47fbed955e98bd47ba242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017300ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020011fc8df4a0c62a841431c4c45f5432ae969288b81af3c1dabc8ee1bc86ef050375c54b2ae535467d9179fd386ee6d9c4b33b16ea12f88f6256526da1636f191bb242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017400ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020885c040fa44740515fbe3102ea30fb4c2baa117e84fec25d9216b011ea36d271c62fc55485223a484f89ea0d4dacf68cc53fbc6af98bf3175338c5db05a4cfc0bb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017500ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020ef3fdac73d38f9446f5d2a1065dd9020c0269a44b5e35648f44e8b1b86d7c15c8eb10a613be613468b8db3c70fe2871fa67d6526a3b4f11e736922d8278a82c1bb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017600ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000206ee6d94eebdb0974650cae85c9d4cd035e07031e6918128e7dafb808fb9dc41284653ff9bf84237ad6a84cf6cf9817d3a361d805db6cd3daf7665e92ed00421bbb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017700ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a8c7d8435a99871c45680b464b02d8618b23ab0ac3dfeb93926e54ccc91528633dc26cc6c6895abe5dab4a6302cd192f40e9df8404ad4b1425ca7d6c2b5c9c18bb242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017800ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000208880a1808163e847db25da39ea5e8a505d7ce390a3b2dd363b0232ae19896c274ca90749f6d4974ea23a247402d638479a5eacdc3c15a050691acb3fefa44a7fbb242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017900ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207d58853ff94add55234809e82d5ed08b330ebbbb6f21587f0728e2a164531f735d9bac48f7069d5d36f8a6f39c41dce36c4faa1a0c6531802797bd8a32ae96afbc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017a00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000203574bd3a510891f0203282179050926b511c020ec1360153e1755b5847c596410acdfca82eec932a8b4d8487b0401ca67e281f007f5ee16a283bb5c848d051e6bc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017b00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000207e3269b3416c628d055c6f078959b491563acb9fa880e27dee1629579c0a5319ad12cb821d869154d368363e677329729794ad9ae554c1489fd7165feb2942d8bc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017c00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000206785e999e70d485458ad511b5d2f16bd66595597ffd0b637ec00443bf5facb03c969e25f87b232fc4d256c1e2366052fc7f6ec34924f2d1ce74a9f8391cf13ddbc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017d00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f381fa4bcbe9d7e2fd4d1732e3fe21f57d466dafd4bc847a1accaf549ed1ed2a9c6d6d16882a64c72ccca6a0f6ef5094950a2b2ac9de6839b9e4a8dc3f1f5a9ebc242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017e00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002015982b33b232e16e0639402194bfe59ca442fa5eee0908e17375a639e21976492753bcc20325ac44a5f486cd4c417dd469d165fd4edca4f6200845547dfadbdfbc242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03017f00ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020fdca1940e53d9d932dee8475fe4d22268ddf7c1f75792445fdb1d06c810f8232e7f4422c02d71850c1141da19d6f25f3cde4d98c43a718315b3ae49719b9db69bd242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402800000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d9ecf917131051e0e7b5e58c351d9720bd25eaba552d24bd8c82c6cd71526c0f8b6a35e7520982795e0048f2337b2575a7716cb4902835bf69e2e20fd0c8b8a0bd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402810000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e4ac0576eab0dadad615ce687cc92164368a8a024fd6cde8aa6b004d9e5e324d9d55711809456cbdd053aef9ecdaaa6b1ed01843fcd0180a7837593628ff6decbd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402820000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020e0ea9b2cfff8a497718a1ec66d7257d56214e17fce3bcaf7d7507e6a104e5768af3f25f467a26ab1bcd44c627a61dd7c6143af2847778f9854049cec23d73420bd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402830000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a6eb927d1f8a6361f4653f99495cc271c7e9e70f58daa8d54022978e2c59ee2f4f58274192e2e88ee248b835ab8ad410817369c07e1217bb4bcb2f1b17edbf2ebd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402840000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002051534f847263fcb38cc601f71f2db087f405314e4c9a0bf21bc14c20af62ee28dbf43502bdb7a355fda5697c33f6d0e1ea8a708a101862e690dac25310b766a5bd242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402850000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002039d1000f53fbc4dece3d9637e183ac36a38d67cd14ab9c79a30777b2722db65f6d0e0b35f1f52add619cc15086ca69e3070c2d1c1dc473315d23b1a6d86c82d2be242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402860000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020a594bd4cde746fc3598f9ec0862576190f71348a027f46261d1e04bc84f83e5ba43942886ee1ce5ef626ee17558c2a7a06a2c2d5d5fd3394ffddb331d232177ebe242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402870000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000204e2d5c0399ebc5c5322f88cd10141451ee5a57522b8ab36036d20d29e38cb31862674f09e5aee7956ee09e346e8b3edb1d818d08a0b24661e3bf5644a4281da9be242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402880000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002088900a6bf9bd6a461d065eeb99ad9dde564952cec1fe60e4bea6d8402861ad7d7b70bc1ad5e7635d58387e0be8dd25734aec644243460381ea1b033785ad9f12be242d66ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402890000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020528104150f16fb36a4e6bb8c4d6016d856e578cad9c56ac22f85c0f1fdda9c1c718dd079b4d6a3c606ae1e1d154383ed6f817ebe20e3b960f5eafe7700d682b8be242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028a0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000205effbbe5e95135f6e92840b4d82f67d28c8a5cce1d05484d17f173f2ce6af77621f128761961890dcf6bd1a80e5917a3638268db765fbb62f1fdd0fa16fef98bbe242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028b0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000002028148a9f61d6297295c1226f8768ba16023a99f09f4a954c5423f3cbdea45d2818f9b10a859c938977e0770c9ec1f4a7bc8ddd5967d7b6e16a2c47f86211c5d3bf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028c0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020f7ba22c801cc57274aec68c1a156c14d2b0e158aad723c51322ea6a3bd64605b136c0a30a4b8d8ae9fe01b8d919ecac7f402e2f80c1e8bc810c6ac0bd96079d9bf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028d0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020d3069ec8d092fe171fe9b79495e8e7f24db5a43e8e8305dc07f996d1b1ce656d6b79597cb0a1d85caed7164c876f3ec67519c1a7fd2a4965308e27268cdd6167bf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028e0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000020eef72272a0bb5ce0528e10c290245854e50c789001ac1609622e8f6488ace5373748c28419442c3e60383f1fc14e54d1c681c6681541a68c3e361fbc2fc523cdbf242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04028f0000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000306896592a3ea4dbf8c19e9998be4ffa03827943679a4204712120e3359fdad25c9614019ea5dd11c3d38422f8da66631fed6531ef5fcce927d81ea345b1fc679bbf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402900000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030523c6ef8cff479608a467a02bca097b2961679f3de0cdfc57228fd95f4c03401fd0ae1181844f2dc4b81fd0866f072a97bce11a7722a2a1fff557abd06a36151bf242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402910000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003012ac3be42309dd4fbfcc02f207b6d5956561a09aeb4d982a22202f052a96494fbdc972daa895af0e662ac30583a35a82f69f584d9ee665e7ae772e3c785577dcc0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402920000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000303a366155345aa1cef44a5812ce6b2ff9c116fc23110ea771b9217bf2bb75b243c9fc73b65ca6afeabad323d62e01d206811438b3813cf3d7d74f00aad7f696dcc0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402930000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030afc514228a275473b190113664494a28813aaeb666d75ca024d35a07e11f0b6150e67c4abbf2b31ed6be994ee951a5d85fe749604b48215b137542c77340fd5bc0242d66ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402940000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ca9cd2fea2556b65b16f8a3dc0df73f0aedfe3e9418c1da993e07a05b94b9b59ad94efec2ddbf4294b649020f9cb94354c589f52629aa96870e4e8f035f2e13ec0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402950000ffffffff0200f2052a010000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030782ca7554e8c8d7a68ec7c434ce41cf62317b392862f8d6359475d2f7636f02d5957028a93c2f78343a408b08780a1a1972734f3c638f413ab118e506057c176c0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402960000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030f3e0a0f98274250e5c5a56ada49bb294014c42f402f6a2a43b70d4fcd2a1047d78abb1f53c713cd9d7b882d90da4c5390a52c76100691cb934d70c268d0f6408c0242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402970000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030bf1e2925ae124de880bdeadbe4f1185e2efa1a260fdc035739edb6eccf765a3c559f1f38c185ec86dec065a565a5bfe3810aa5247fb101f32e19cb8935c61e31c1242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402980000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030f2b1ceae06ded56e1a1111960fdb03c65271cd43cc457e5f57ab3f42f23d721eb7bd2cf81b97147a112fbf47300df0a013fe558d0c2600aae71db8e39ec4a478c1242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402990000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030cbd7bfd6450022971e585d82c23d239822b4bd3da3906928ab19b9f44e5d1b42b7a7cea58cb4b63301e3bd15a9d5d58eeb7fba20a48323b0d9945cc683fe8874c1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029a0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000309e52161272efaede1503987717d6bfacd6594d2276683d4c099626e963455320bfebf0b2330ec760e02160572e43603f1e5e69d52af960792eb5a4ed4a9bc977c1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029b0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c103628b91423bf5db4c914aecdd3d4e2c48fb5cb91ebf0cd708ef88c88cc371f81cd2e6fedf8a37b690c5821a11c8d03ef27807a051f5889bc9564468bb30abc1242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029c0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000301f4dbf901f4f9d926be445a1f695ed3f9848d59b35c7c58832ee5ef494c20d12a3be96b275a338a754506c3065e5cb44f4fd811d2cfd2713cad39a9110666dc8c1242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029d0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030f928d5d5385bbc2dfb5d47dfa27398852d3c94c44f9aa7450c8f1831f6bb851b25cb218eeadded201e0c24ec3253d76c9b2b1e2db5882f6f3c14e7e846ee9756c2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029e0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000305200b0568130df45b7557865de1951b9ba362d3aabd8dc05dde24df270a5d749076caa6557eaa0957a4bd26fb095f2a24953f050435d76225ce8aac830704fe5c2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04029f0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000302412fe12a8b1840a603a75b37fdd993cb428cef5b80bbeb43f6f1708bcf27228d1ff6c324e38c591cdce25129abdf3aff8107b2977c6857cfa4156685ea4096ac2242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a00000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ed743e953e5b7dd2dbaa0cbb66a0522a82d95ba2ff25a106b0e0cea9467ac319fbc639f5973aeaf28baa746a9842cea53ba856f61cd3f8e15bc877c7d2e6bd54c2242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a10000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c0470068ec5c8b7147f38056f2b86123cd8dfd4e2a31847deed98e6146960d5b97a8de23543b199d5d41a213fa2e7207f13c6b41ee813ed7c4923e6f9d18aeffc2242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a20000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030bb7e921ba07b033b3016a59f0231fdb867055c80a9a64f32c071ff1606e59e4389769b2d99c13d9ecc4dee5a2b526a5f7ec8adcb57b93194b24bd0ae0302dfe0c2242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a30000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003026a1fc16d183319d97d94cd2a7d08e720680d1b85efa2a1f17ba2768b4d4a74b08f1ae61c9e69a6ca2c7bdab9bce0dd62fb7910ebf9afb4d0a75a2e5ca764978c3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a40000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030191d904eab263db4f41436d6fe042e19748d348bb607a55408f8666b2fef6f487b8a6baddc9abe0a4b2158dbb8cfa1bc8260f1efb1ea8d1aea5ccaaf96420ce7c3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a50000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000303192c014b9f2c858461675988e01a7dfe902408257ad8db9467ad5494b0f80327aac980821ff362fb59cca122ba25d35bc825e61f22c09fa6b64f51d89115c6ac3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a60000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030da309b9a623c525c5e01088abcabf0eae387a70631d69ddd2e2c1eaa366e7d08e1a0044ba616c9ceacc1f39c6e61b14bb43a87be69880f639f67b5a7812d6748c3242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a70000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c3fc841e455cb7ab8e83c1b45a9230692fc6bf54219e39cc32bbcfe264f21f195eacb3bbfc83ff7a0cec7c88c37e9da4472a4281967559a84ae1fe977c639465c3242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a80000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030cafc627aeb714f3e3cbef65c5b159aed545850b9da4ef99d7f0385da2e913f2bc5c17aab7d0a0bd0324bf7e9e2ef88c63641d620846ffb18cc8e0f925028451ec3242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402a90000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ef971a009d01509dd152bea0007051559a58c301e9c3dc63535b944a7dcc330eec01b322a6a7ba1396e610c9f4da69779499325463e128822dac6d80bb62b268c4242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402aa0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030297d2fbcc84a9fb61effcf30564b348f2a51cb186e0b1ffd5079e9c3bd1939563f314e6e6b92d1c73edb47b21f8008aa225c8d87f59391d1bfd1f4acdce6f56cc4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ab0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003022cfd9a1068f864ea0ca15f4b661085d383433208076ec04b6df4fcad5ce124bf648be1eb086be6bef7fd65911d9849acf56dd9cf24798e18054ab2088e27eabc4242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ac0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030972f66a342e8bd2e912aa28056a394e5bf005187001863d8167ea2c059164e2ea64d068a4a72431cd97fa126bddc9e3a6fc6262e131df47328156ba5ee2dc118c4242d66ffff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ad0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030890dfceb5d573e6afb97b8c945a19fd9b6601b992f80015762a528af6626f8411de57cbc0f26848ec7c4541a263b2314a1877dfaaf53a6a0ab03ab0abe4fcf40c4242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ae0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030e54b3b165ef52498f0d9af5774a688138978efe75480aa01ce606dec5876e217c1c051b9ef4f7c236a2d892bf98e108f1193f7c67e163d748a321c5ac1d9d554c4242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402af0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030b87cbce490f46d3723f498d44df05c6613d44322acab1740e05a1d54bc2e0f44388078387e078f1a0be7317c7fe04d743947c5f3f9e06072a7a8f01f013e4e63c5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b00000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003089c4d7eee1aaca1d091f31a4b465a16a450bc95f043a9214674f2564ae04086493e5c1d30bdf998345a6ccbd20201f78dee8972b439b228f02b590ae13b66f98c5242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b10000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ca6a1ebf54b1f62313cb32e7af2b6469135d8da9577123b62b334eb1ac8fb320367bcf29d785bfedb2cc1fa040c593783d35f7bcf6b70a9d98cedddfbaa61e8cc5242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b20000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000304fe071de37025d5868caf920761986ef0890a3891e053d5452b0852f01bc7a5b2dbe8a30d7a8285ff0e99e3b72237711fd0418d95a44600a4a5b78d8b5a6798cc5242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b30000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030642004a67b3c8fca45516672d59a145e74f3c02608b8da5998c27c8f2b05b43fb396262680ead34a6ba6f5ba19f617606b1701557179c21cfdb3e41f093e9343c5242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b40000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030dfdef61d552422cc6db6a31cb38c74efea160cdc926995461f47fd52faef3b22bbf9c570efdf15b90cd17669c4a8dc9525ee6242025979af18efa0be7d03edc5c5242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b50000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030614dfabfee3a6bc50d775748ac679472f0b1f708815fd172852baf66b7a64a410ecb1ad68cdd78f7240b80d015f922416560eca040398546a74c33106b27c791c6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b60000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030d1f6ca10190578f7f789b8785fac043da1a06ad81e4055822cf20abdac7bd64fc5874b1816bbcd03595404faaa17564297bb17ef68b81ff29533c67d1b5c5346c6242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b70000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030eb118fc656ccb168532745325675f577f370656ec34e3303864084d4cdc9714b37c8b3a9d2547935a60a2f082d5d666177305c98056991dcedabd6ce41a75e42c6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b80000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030881184d8fc0997d5e87cd069a1812ffbd938ffd2390885d15e408658e501da596adc753f17f3b1dd6817d1d593b6196e9696bfa90d179cd0d050dad2532d44adc6242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402b90000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000301aa44b363c58124b22d51178e70b86f976f8e94a5ffe9696715056e9b20e0c4914d14ac8da2625d3da070be3d2522164f9e3f34528526955d71565b5fa2a7bedc6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ba0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030d5c81f5d6b9188adc202327d5c2769f00e6aafdf01e6910c676e99434d1c413449ea0d2ef2775f6ae5f5673b9db020e44d417e01ad9a691e105f5c9ae2f709b8c6242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bb0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003055a4176e66b3e691ced84c0d7184d220a1fc7cf17832a2ed4892e801c713445463ebb3615a6113c2ddfd4e0f5b8fdcb2aae912569d3530f983f57950bbb9ca24c7242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bc0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003013a50d5e9a17079b1bcedfb6426bf7c103cdf7ac353d196882dfb0a0f7dcf26d48418e7eccf5663344566ac283e4af41c74f503dd42048e1a731c3ce73c87485c7242d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bd0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"000000303da965bc08fba52571473532c1ef4cb111e9344145fd7a6065c92d32c4e69079c88b8c63a7bd7ece3410226cda39d0fb5dc4e1b4cb560967f03e12d7f155aafac7242d66ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402be0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030c8cf32d32cbc1e5fcb6c2b75520618a43dc714a16706d3a48ec68f56e8cc593adc15d4d1680537df08abcf0ac08661fc7ecd0b9267f207d7085a954a6ce2da8cc7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402bf0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003004c981c749b4aca574fbeeba545cebc30f91e2b8df3ceb494646b0ecbf3ebb610afe1bfdd7ea9110220eb1f102ad69407d6c44026c4dd4bf9267d730c160d288c7242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c00000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030b0b058777dc496676cf990be016117d99fc5a93226d54b9b4f01bd08ef32736f707f2d27e9384ae46a08956185b5b080911b9eba89dfe48260276d09f910c3fcc7242d66ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c10000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ea8cd2974aa0ac6360b960e089a6623b7bdd4152439d05c63bfba1599b64017d4d4173c3e12668297d23cf91d3141ee01292580dfdd70a2e6fa30c4764008f37c8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c20000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ee8db336dc2ba9f85bad141b115d9ce729ef0cf4e274adbc88947f3533e7ca569e6e65dea6c09c9f5e3c8d098550588cda81f92dc5d7ec04fc9965d97dd1ac6bc8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c30000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030a06a5e0b84c8e72a07ff38dbfe03fb8e7ce1f14f3f2632d4e12f573e6c61c756a7e21a865926b8cde1305c83dfda2e7a01591dae642a4402d2d298406349f39bc8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c40000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ecceafaf947906cc86bbedb1b9556aba9efcf4f12a19141421c2cfa030d5a17ae1e25e046cf69c4fb9eeb1d07289f46f0cacdf1301619850a3d693935476e819c8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c50000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003097e27bf8d0148c851ad5c3409a222a741ddcbc5c71f97df87384c3d1e316e46e427060a13cd91b94eb4bb2317db64406657ab250784a67fc783c00a24f3b6fabc8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c60000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"0000003098fff5fab49555cda5da113c679f2da07cc7c5696067c53d84d7bcaa71a5cc351cae4b9e2fd5902a4e0712ee59fd918a3813554eaa3ab06e73c189ae6f22b995c8242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c70000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030a1a12a3a010a3f69123a30427ce886f3d4ca42f9fbf820ebf6b00c2089a0b30ec547103ae3dc470f3a8b999ed75068d150750ac0c549f092c51c9689cb1bc1d2c9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c80000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030da2688ef7d466cedea6d3737af58fa34de69d022b5d1dc7bc0aaa20112b40a64a99d65b68f1c7f04efc082a98e14576c01427515cbafc1f5c3d31f03ee3bd6a8c9242d66ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402c90000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030ce6cffae4dfd294aaea39faf38227c96dddbdb4886110e85a1210fdba385394c47701cf5bcc054e5735e889198512b4be2c715af77b490445b78841df7467cd76e252d66ffff7f200000000015020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ca0000ffffffff0204040395000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9edb28b5f3f52e0b50acdf4d68f04866607c565426ad9cf46532333e47e76c4e599012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101d453cc476a5662964ce6eecddb78efb40e1616223d4c7fd54f6ca84abdc87e020000000000fdffffff0273101024010000001600140b500a01c9926e36f8913967382fd767a48309a200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902463043021f1921216d69304c9f523fabd39e12f98dc0c2d9d4598c28494c92b065d25a570220121ae3ff0feb349b7f357bc6bc98163da82ca63f6ae51fcf791ff0c40a068ac701210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001018efcab0bcce7a6b22485598a2eb928092262c95f2ea233beab343044013269dd0000000000fdffffff02731010240100000016001462eb8d4bafe68555c2989cc1103e1066c9f276ef00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022001c31890216ab85af755b4a2f2be55901da8a86ff32bbb7b7c2d126ac284d5f10220440873615edf764d686a4220533b1018e2b062dd0035adfc47833925c6d2863201210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101e40ee1a3a4f5764d49f9b352a2e181ebe4ae767e0058d38fdebaf88e7da4e9e10000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf9731010240100000016001430fc806efee1bc097ab6d0a7a40edb4fa6c5f875024730440220373c65fc214f2119d55b1fa4005d849271248764bbfa39aa1aef8246f34cd9db0220536563302153be01f6ae6bf5e44833eb6a73938777d555e94ef7ed67b55b39c901210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101a7660119cb01238504850c2528b3b371cd1f5895da5e620fc0a044836257bf640000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014fbc2a67ea3ea1bb1e77a9f198492301cde68808102473044022072fd8ce1b7342ebe2bf42f0b90304260f55ca21c22630a19ad0ac8ede04d42cb02200f00c7e9093ae0c38cd8d5ca52c19bac139205c535959065b77a49eedbcb588601210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101f9126503be1001080102ab122a123a6ccdff5a94017c15a6f14012fbb8a8fd780000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014cf9382f4d7b111dc9a6079a7ec4093579eb1ec4c02473044022043ed9deecd32f4ba5eda9dd6c5b22ca3ddd62b5088ad98cd1243141b40f24a0a02207b7f01853b52f43a5c0adbb9a298f2ada4a7d1c50626a590fdf4b8b814fa8c2801210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101f8481e6e63a795f646f1d06cacdd2d2ce7b176afa589337e869c55e864dfec560000000000fdffffff0273101024010000001600143cc73ce98fa4d14a97d520508ea35321261335c200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402204783bb9fcb96defb632109c940467a4e1329141252d64337393e1423c021fbf902206346be30e066251f1e47d808889fab87f2cc4a0579c946b1f7e3180d4ff5207f01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010188752ae773a4154022507aed806c7ee50445a92211b02c10ff86070d353ac9300000000000fdffffff0273101024010000001600144599ebc57adaa82fce98d5f1f7bc4c5d0941229b00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402200b7dafde98de409ed4d17123a0d4c7d83f54cc80fa06286f2b0a8745b8e4591c022026e88d230997d26df64f424cbe615d4dce08346bff33b3b41c7e59b462a8695601210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010104dfb68e4e8a1716e151c7028c8c0ea9e80e9871c3d7f2e1f22b3a3d719fb2a50000000000fdffffff0273101024010000001600147c32dc8f23a36d63db4625642b8c3f357b001a3300e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022042aceecb3bfce5af639f229767add6cb2170d0bb6e347f4690f5c1780fa83f7a02204f216de36e53bdc083c9a589562eea188dc57b686b61dc7da41ef13ac57a4b5401210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101419ff40c0af3e1f9bd992edf37118f709abc770458bb5f73e64a9068dd6aa2850000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014d6b971b45081c0582490c9f25fda175d1b259daa024730440220766457d5e220650cc2096f88c98008653d60bcff5819afba7da73258b9f29af8022035a7a8114c9c9049ddec62c8cd8667c1a9c001eb3c0e876c4018d9ad1c870c8801210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101a371d48b5af5147d8cf8f4489d626985d6420f851bda7e70ccded3f95566ccd90000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf973101024010000001600148685fceae319337a6699ef31db3d4491cf92d8fe0247304402206aa124c919ed0b528d63586f6d99c5e3967009eb1d3e1f9afac8060d3512b16c02202d704a606700a63a54dfc9a6ba4b4b00a0cbb4d9c3e0ef8a489d1d4123302d9701210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101f755809aaf681a5c0f7839f65813aa6fc171b2e5dcd87f35b13b49b5639016ae0000000000fdffffff027310102401000000160014dc3e3243ec881764f7f035964d76d8357e79b42b00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402206443a6518c03098a0bbd70c55da424db5a88a1a8cd80ef62ac82abc9b602008f02202ffba095af191735ca4c21b4ef47452e64444a33c02d0b03eb5a46dce698812b01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010177e24b23c538570850108445173cfba3c5baa6ee6af16f807e7f56b772bb29330000000000fdffffff027310102401000000160014b14bdfa016b84feaf1b05bd95e20c0068132b3c700e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402202055189e7da96f886fd7c74a7b54b5c86ac43c6314d2fe632032cceb30a28d4902201561b8e26205aa1f511994e173d66faf0f9f7863a4e0871b0127f8995464c6a101210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc90000000200000000010132e54ea8502d51b05bca7f981c5ac0f3918dd02dc178206f36957e6daf2a81210000000000fdffffff027310102401000000160014003af378d78fa39853a9a1eb44f6eb9191e10e3500e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022009d2f74ba74478cb0448dae64c2556a201db593cecb3f8d3dc10e6de02c48c2702203cc1ca65ee946cc5f94124ea69e2d6e889023eb9420d5510758ef94d16a3b9d201210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001012a391905e006fcba723d56c6a3eb27efa4396ede18f9c50e0be90dc1e928f1630000000000fdffffff0273101024010000001600148426ebef3d7b6a7387631e039f5d476d85d8a69300e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022040b80710239e68e217586fb076c08feb4a561ec2fac44c64ea95fad5b20832480220266c364a85ec127063f75ccf5a8315beaf27b68fe22c253eb354577754bc230a01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001018c3626fb538921b3f59786de9e6ca2487b3a1f5c80a3d9dd82c27a6b1a6eac5a0000000000fdffffff027310102401000000160014e5b0f788e3292352bf385cdfe9236227d906feed00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022020ca43ccab85b1b847a25d4f51fd393bf4aa691b32e0fc80c91c3f893cb52b21022045de9177f9b686dc458411e5d1a8095e55c7251f55930f261c92c68374f5e9d401210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000020000000001014d96fa8c632da473f2abcd001184d1812709ed52e9c2585308b28743ab7508e10000000000fdffffff0273101024010000001600142e6ce8b48bafa38443ac0a9a049c915a84d07a1d00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022070429e86aea4db84db3c3eca4085efd777c36960bbd2f1be679db4f34a148ed3022068a0a3f902092661c0a5b42e7218b7719ec362b7dd48ad95b1c61c1072da858001210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101203d91dd647210a031046cfccd099edba94b5cb0203ab1e7c208158c1c04d7ee0000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf973101024010000001600142bb1130afbf9c9175db6e825ef21ff6ad967903a0247304402202f128ce7b6ee67bad85e4b1ff7bdc6dbd852dd0468073a0780d35e64e864ca9202203a50a4d0aabe6961696150e6dc2da7053c10a77b42b3dce93d1e168daa9a568d01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101676a90f97480ef4e447335f1b9376c944381fb06d69b778a47248e5760dedf620000000000fdffffff027310102401000000160014ff27069bfa436a03f277a53da9ebe738cb4058d500e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf902473044022030cfaa5207e6d0a690ed5a2101a067c7e4d1b31f694886b427065c5c971d95a40220646cf63956dcc399c243ff6a207adfd34d4f2e409cd2ec4a48c531e214370c9901210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101295badc0bdd9a2bc0955d12f337491eae4c87ba4660078c0156310284d47c6ff0000000000fdffffff027310102401000000160014c34c2b12f2c5c3e3a061c5be9885e97be3d182ff00e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90247304402201de1a3579f63eacae93d919f6e7c6f388e33fe5228f7468a94070eae3908f1500220630a001126baa496362702eb675c1aa2244c5d6af2f3aadaca41eb09ef55b84001210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc900000002000000000101668688a5f4545d86d00bdebb0a007cafc530603c1fbb6d6a9f069a1d5f109fd00000000000fdffffff0200e1f505000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf97310102401000000160014a060ce2638c54cb65570779a62bd3d80a549967802473044022050d6d5b49102fb93cbb24fb53cf8e19e831a24f71b0877c3050ba2250020e89502201d6f37b61d60d1a0af32b5191887c1c56320cfc0d5bd9c064634a4fec810782e01210300d999684bd123d72074bf26bfaca11775eb371029bf714a60bdd4e976b1cc8fc9000000", -"000000305e30a8502bdef4fae437335fd1e4cd0861689ba689d79397ec4e810ab28db2704c30745de8c0774b8f96087461dbd6efa19c1386bf15d1e7e305ebabd6c29cb177252d66ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402cb0000ffffffff0200f90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", -"00000030e274856b9c7452ea644c991d4f3de0498178315356c2492574117b3df2eecf1cb53ff53c08d6d3ec10c0a948b9dd2b4aae96743fc5d6bf2b1254e4407daaa3175c0f2e66ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402cc0000ffffffff028df90295000000001600141409745405c4e8310a875bcd602db6b9b3dc0cf90000000000000000266a24aa21a9ed2288e46fff34291c301c01e040e7bd468621d70a0078a11e422e616b70d51f4c012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101087b234e0a26aa3265faaa7f7e507fbb01dc61381ded2547fdbefec295186c490100000000fdffffff02e62e1a1e01000000160014b0350ef1d06b91d681e33655611f4fce8b1f95e700e1f5050000000016001490d429043a6a97e1bb6775f702b677e21388a6a502473044022058d8b08b6c1dcf2d1593f8e2df011654b04009290744df42a81e263c1462b5dc02203f345708fb68d7c2c60db765cabb5ef9ad76b15e89212c23b9afa2b2f16ea58f01210225363b30257a7d3a27c4b03d312bc0568a263503107ebbd54b8d24c023c3dc2000000000", -"0000003075d453e2fcdc9dd1dd0f1081b2e2fbd0400aae4b12412524a4ab6ced869e624a3b211101d7a99e85edd61cdd0a1ee167f2c5015e4296c692f50408c46b3156a356112e66ffff7f200000000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402cd0000ffffffff02a7fa029500000000160014eb82059311a807fc289d46a715ea4801608e56620000000000000000266a24aa21a9ed6152997cdf8a1f598b3b281f4c2371ff57f16adee387d2c6f9a1223294abbb860120000000000000000000000000000000000000000000000000000000000000000000000000020000000001010c8276e58415e63f76b5b9aee5dc13e36d2d86c5e6e96b668d9b029368ada71a0000000000fdffffff02594d241801000000160014657419c1c115140663bc9a3e5473704ae22aadeb00e1f50500000000160014cd0ba01721f6481d58acffb9c2c0558adacd9a81024730440220207cb42a792db108f61ab019695c2b5d19d6270046bd85497461c722753ca5f002206f83b571077cb6a683015ecd348eeb09536a6e61675a4062ee2775bc13ff4f6a012103fa84a8e735ee9ed2c56121406c3ab2a4b8c598a1d64ebf7ae8edaaaab8292638cc000000020000000001012c9e15682c8ee78bb37dfda591eafba313354b44dc36a96632623f43429a247e0000000000fdffffff02e62e1a1e01000000160014c975d60bc9d9edf51989e717ebe09cf140a3b19d00e1f505000000001600144c8af96210bc0e193e9b7d40353223485015e2b702473044022023a5dfb9afcb738ee1aca7c2b6893ced1cdf58bd8655b96c157fdea4a498be2702205a3bd361d9d2dc475ccac069f0775ea9dc6cdb630876a6cb79c67b28d550fb53012103fad0c0cdc5e4738ac2dc0d5f300a9d8fd095e1f2bb13291e6daa7cb6691b2780cc0000000200000000010113f36acf4eb116cd89b8709317d87c5a2daf00e5d6cf33c9eb0d9e3d290729ca0100000000fdffffff02e62e1a1e0100000016001479c3e84333847639f90325fd9a86de8dd40256a000e1f50500000000160014d149c03af86d5aa21213db620763ee7534c54ff60247304402201fd84faf54030f6e5df5b8b71f49b4e69dcc6856cd3ccd657f11481bf1a4fc8f022042d5b475f48d2e25a6ee206d7c8441493712d9d262d472c1df2c5b7c7fe9ffb1012102d0a810093c36ca0e815079ae76992d1bf5cf60573bec8b73572b20c89ebc9b45c1000000", -"0000003055171be9b7f62e719a3d44daa56cf3a8903f66327b6854d57c6d6678d7b4e728c7c67566833f9b6109cb1a5eb50b811d1ae97a1f20c3912eb7d1c5fff72450092ac53866ffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0402ce0000ffffffff02e8f9029500000000160014eb82059311a807fc289d46a715ea4801608e56620000000000000000266a24aa21a9edcb93aa8dfe2d28219d42caec8a367df5b1e1e4a1e2002bfdf439d83ca53dc08c012000000000000000000000000000000000000000000000000000000000000000000000000002000000000102bbbd77f0d8c5cbc2ccc39f0501828ad4ac3a6a933393876cae5a7e49bd5341230100000000fdffffff94e299c837e0e00644b9123d80c052159443907f663e746be7fe1e6c32c3ee9b0100000000fdffffff0218e0f50500000000225120d7bf24e13daf4d6ce0ac7a34ecefb4122f070a1561e8659d4071c52edb7c1cb300e1f505000000002251207ef15780916ae0f29a0bd34e48e1a0e817e7731b82f3009cfa89c87602cf1b2b02473044022014680d9a963868b03d25f84bd81af87e127f9d7990166dad5e1dd71be8797e3402205f79713b4faaff7184fb25d0976a37970f8d6b23f95d4041180a35aa291fc8dc012102a9dfaeeebad1f7ebca371a6f02e63a8b0de287c1b0608edc259c60583a03496e0247304402201f09ecdb89f311c3ad8b6d89a040a5796f83c9db2597962969392a3d9a5be46d022052243418a89831ca0e5ddd7ae575d787178126d8495f890414ab8b4d2a1b19d80121035368c752d3ee31d9570180a1ba285659af106f9430811ec58e3b86cf26c208f100000000", +"0000002006226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f35b99ed4e2e165de2ad77f1bba48049358c9bb740445f3c83ebdb3e83aa5bca8d6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025100feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", +"0000002059c5550bee5edf11b04842e21938c9dad844f26610c526e209bc7aa4b05a237f9cf876c62dbbe036af4ea4a7363cd4ca1c14c8572095cba3b76a87daa1303ed8d7100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025200feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000001000000", +"00000020efa863f0283f4d1e45a162a3932aa144d3a9176f21d004f917f8b57d8ce4f64f354352df0f2a5d635ca7d3a52064f9c95f070d2c13c0a6c087acba03dfeeae66d7100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025300feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000002000000", +"000000202d3de63cf5a2b19f06fbb412d7d581d7b8968b65774177391bfb4489ed77043e7bd00ba57498a2dfcf4e3f0d7ef7f279b254fc422133f300a49aed3c8ed7717fd8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025400feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000003000000", +"00000020baedb67d1ff5ad32f79365fa1ca466e5039cc70198c655b439d44ffa24050966234318f09e4db9319ab61d8afc24cf0df33ae9080ce9163f77f7b342bc8bcb6cd8100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025500feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000004000000", +"00000020053eec9d08bb197fe56c4f01bb5d530b66bc3436f13a976ee81698253039431c775c375f240fcd10dea3b6b2111e5e1372c612b4c2ad0ff22d6716ecdf9318bdd8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025600feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000005000000", +"00000020dbecc235b8d4e8833030d1d3a182a1fc7beda8e0f4575cc086eec1ad6d9fb7382e5d24f14a927f0f5fff33387c5c4bb2cfa5a8d206036aa8c5c8d6bb79f6350cd8100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025700feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000006000000", +"000000205082c18fa4bdd033e7dabaeccf9f25e0c0805a9bad3bfbd6366438bc9498b33185619ba1f7fb3f5b6d382d1cae958669c6cc8e433e3aba365a191f8405912a2ad9100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025800feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000007000000", +"0000002058e3e957d355907e76bed6bb0ef706e538590b405d72b4d72b8451736e227b1baa2fa14a3e3bb0e5641b0a9fb8450eb3de5800d4af14dfb51699a11fb57c583bd9100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025900feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000008000000", +"000000204b5fcc372bab66fe73601a57ce49bb9d376ee3af0c9b7b8578f2a85b3e675610a7a03842e35012c96d80ed5c38a7ea1fd896aaf759a10e70b728b19b25565d0ed9100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025a00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000009000000", +"000000209a3c198e1ae0a577423d144ec15ce84d8ceecb5d349e28d7b87a09cdb3a4a05ead780fea9fe30cc83303f6f7f7ad90eac0a303c7c8303238ab3e458bf667fb8bd9100e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025b00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000a000000", +"000000207dcf7d20194b6b1eb2bc060bb7c51f68f196ddea6baf76a0dd08f349b27aa342dbd56ba114e8f185fe712e21c8291190d02dd4326756f01d6bc9bc2a1c80fdb5d9100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025c00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000b000000", +"000000205b61792a106aaae1f97c051c0103742301f6f2a2765c0c233eaf3f5a4991387d958d190ebd4cddfbc8c4a044c5a4fe4a54d706c60cc74e16cdeffff586adbc45d9100e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025d00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000c000000", +"0000002086416e9e947b6b1f1ef66c3e8f508895703c75b9350d154de6108316221eb768b8618128d74c66e9a531448b8c4e8dfdebf7a555f183f7ef3834e27b32522809da100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025e00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000d000000", +"000000200568a0143a3d69b0c3eed35049f0b99759b21a0056f1cbaa952aaff81335fd6d3ea8ecfc436c7983679a96f17db811a27da51e78c76f503b4d1966b5d07a3793da100e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff025f00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000e000000", +"0000002083303f93223e35a9a63dc1c4ce9bf8a8bf855650c344c2ab26f415683895307f0964bbe9fb5eb9007a8b06c362bd4b872d3a6036855617d68852af47f3cb11b4da100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff026000feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000000f000000", +"00000020daa42ebd14f6cc1d52d95c9425abf3b459e7e322ac2524a24e90f6bc6a301022202b383ff3349133f45172cec3dbb0955245c0ee223f15f3c1fc515f504fed29da100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020111feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000010000000", +"000000205c42fed7abff056134b02d2d8542f82d55f2c83f4acedbe4ef7090200c712854cd0f57e3459b3552bd04bd40efd4b59f0a62842e6a5ead95e9403ab80a801f46da100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020112feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000011000000", +"00000020406229ed13dcd19a3b4b51c82d955bfb62b6a5468e8426c7f52b0c33d6292c00f88cea73c895d7f926f031b4b5972b600a52bfd233906381ed48a80d063ea94fda100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020113feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000012000000", +"000000201a32a0aca641ec559a1f5ef91409421ef5282860080a0fc08f3e35c7471bec6521018853d8f3525de02022e9720181e80dfb1894deda0aaa705870dd6fc43eb9db100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020114feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000013000000", +"00000020cf6a4cbc3222c89105c2bcd207288eb98893ba06df846bf46d523cbdd2a38644fc87a92bca4cf8659482e711acb36aaf9cea95e051d543d4316d33e359516440db100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020115feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000014000000", +"000000207265e11adfa95ffd445c59412fd255b79e4eb6710841d81ca827faf36e48c3458cba02c1001cd972d722104d26f50e7a68c6dccbb88d08b972ca09510461e8fedb100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020116feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000015000000", +"00000020d328b5d1d2682fb93debba31b4bd82586c79867191cda9d5705d8701ab341754a48c6b85fa94b15d6af9883d5f84bc5bba220afd18990df067e2bd30983829f7db100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020117feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000016000000", +"000000205c7f4cf1d34ce4b0466f196780a538eb797495738bcda00e902dbcd8b16911117ab12f4b9993023a7e5e25747a3085430cf7a9d1f909157da8dbd826610bd80cdb100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020118feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000017000000", +"00000020b72af8505376c70dc765fd19fcdb7a910895edb81474b5292926b016f621a0540404f062a9e7bd54a91a3719e217940b0bf0b010d58a79bd010a02b4c22e33bddb100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020119feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000018000000", +"00000020ac427c363962f4d5dc00f9965ffe23ca5f6db6e983464bd2699eaf213e18b50bac7b2f37a1b174564e145df2b6ec753439445c9290e135e12f974c79926717a8dc100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000019000000", +"000000203bb631aa6b67c5fa135caf9fc086cef71cc6ea38589f45a1aec750f691bcb24c1940ba94d0af1a8e6d3b956fb9fe8bc2a7e148178903ac0fc15262b04d805a58dc100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001a000000", +"00000020c7a81492959e78ffd064abb576131f1ced7630d3f8c0afe7e818294f8b2d394e11d8a658612ae7465434d6f79c4508f3fce6efb6a7eebbd568d11f9ab76eb0e9dc100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001b000000", +"0000002007acd9eecd85186948ddcc0b8283e2dd425b5feae4899b5236d21a0527a04076bd3d4ed60ab1e24b49c863d156b25871ca60c6e7fb5ed95798ab8255edbc55dedc100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001c000000", +"00000020aba02971419abe248b1d632457f329f9f20bcf44a30b897ad5dde2c09d8efc177c8f26fd7b1a81b4ebc373b9ae15cd3d78f83669e40c82359c9004bb464c3ecedc100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001d000000", +"000000201d70ddbcfb753a78ca242c2de83fa39c3e082743f8d8be615d9835877807840719adaeeb28cb2169f601e0b85573f32b98d169c21ed9110c1bab1f20519948aedc100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02011ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001e000000", +"00000020e7b97ce31a31f00a8a374755264c28d81827a345e195d822dd0b22ea2e1b587ae63699cffdd1e4f8a0de09477d3a7da93db7b261f86d49d0f2d53c5d1fbf4e49dd100e6affff7f200600000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020120feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000001f000000", +"00000020ce8ee47716db5c5cf13fd0e14eeb099420440a7f24d495c7cbfe828af821252d812942b26b60cafad526bcf6430e4c90a38c4d6a8be3d10faf62368fdae13844dd100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020121feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000020000000", +"00000020e8281e66c7a90944f66442af95364999600726b716a053341c9356af7bdfa356d5ca4cea3e5d1a0ec513e24baca1addde8e55894290751d1114451cdab1c26d8dd100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020122feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000021000000", +"0000002065e115e89a2228e1dbd8b00a8af001070e2ea9ff5b6ae3de4f69ea2d806f7044995968981f61f703131c43e583309ee8be070a5de50a236caf64d1b1dbeecbcddd100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020123feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000022000000", +"00000020b30ae385a60ec12bbffbb03822af9cd4f83e550f75270de3c020ad6114edc205c174991475dd066c3980c2cb55d123cfd9a3d9a3c4826e5766840c37b394993bdd100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020124feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000023000000", +"0000002054398be35132d9fc50f833d93d0f35ed6f904c5b81b6c09a2731fb2cf39173290ade0fe44064f85879602d2b9a6e50e3ef4b16db80c142f6f128377002637363dd100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020125feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000024000000", +"00000020e5f61b069282e40d1c5d18939d93f2a32bb4c75a552c09b6254e0ff9981b6636579eb0770933601c6d19924244dfcb9e83c49bc96aaf616b61d678c50cd84f6cde100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020126feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000025000000", +"000000209aff311033f89a6055f70643add76e1e02b019b51f0f189605d0d40cabedc6429cc3ad3b2c1d3af15ac6126471dc7de4feb702b1f1046feeeec44d5b927b8443de100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020127feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000026000000", +"00000020434e5b7cbe3c2001b533f2af690441a08fabe80070ed6b927a2a8948058d6852a8c0cb2cdad87b80f572ecc214cf78f19f5a8312bc5df37ce2fcf7e296b18d84de100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020128feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000027000000", +"00000020e6f7c7405590041020539b16227171fea3c11c3914358d3e96a3a1b22490bc3e2f4d46a405e6d9753323badb285037342c364aaeabd8d69faa04a4c69f3b4b7cde100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020129feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000028000000", +"00000020190aaae9669d182dc492d6e21a08922038c3189867897b522a497beb16569b26dfb0d0291b88a147edf2fd6e686ff55be2543d3a81d3e5e5b4a2f0fb47043de0de100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000029000000", +"0000002009470e46ec0ccbac254bf28ba56ee0ade41ad6ceeacea07155a431fd3f1f4d77f36a5069059df6fb793a9f9e3aea963dad2c9adea23622983c0f0d8509061e0fde100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002a000000", +"00000020864b28210ea6a72048407b2d3894e6215b411901de08b1a78cc6016dfdb9963311f945b13b178b683b7e4e4b9bbd7061ee0902510746f68097573fd4801f6f45df100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002b000000", +"00000020c7e083abcd9d3d6794ca7b04ea1760f9163c75ed7531c54931f328fc88f38111ec8a3042e2a635672e7af06947e7cab9c0f85c3cf3b46671e5a2b93970d5f10edf100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002c000000", +"000000200e4a69bf3761c51d3199d605f9feeba424a7316a030919d568ec09e19f16874b44e6630da3df8769aabd383670e70919fdddcc9d58bb746036985bed91307230df100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002d000000", +"0000002030dca078673da4dd19b86a4ca96b1b3d34d457887e3480672e88d9a799fe2417027c6aee4536994d178632e7fe56ea0e89154978a25baf50128d0c1caba9ff1ddf100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02012ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002e000000", +"0000002088313980f335a2419cbb3f5433bc25e0c8dd5e9e490290f5fa1670385582596c0bd7bd7dfa6c013203667009dd051cf8cc62110c8ce569f74f349aa3da64329adf100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020130feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000002f000000", +"0000002076ce3c401c2b018c03e5bc7b2c5d9bda6cb3faf9d24235818d891bfa6796112406f921f22c01239ca2ecc3d8f82c3ea610f51e39f82478c13008ba3d5952d5e9df100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020131feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000030000000", +"00000020f061f150df8cc56e38742413b7326b8f2c8e4905604f62ffa06ac2acaf62ce1dcdbd85e688c53c0856df641eb141c4fb601ddc9586e57f1b8d321b43c4b8adb2e0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020132feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000031000000", +"000000200829983349e6660a34905eb05c4fe0d713b3433dcfaf12d25a7b69a3f68d4a15b95cbbd895c756aae0fc9faa7c93ed168c8e86376cefcfff19e8a264004a04a7e0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020133feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000032000000", +"00000020e1b029dd93c27820159848fc6a97fa78003e2d1e9c4231ca11ecbcc7ff18e6295c78c2d5a54f3a4c08fd41d2c3fff167ca3bccc1f627ae32100408292adf0c6de0100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020134feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000033000000", +"000000207e1b79cb6b346dca5857089587ee999ff5b4ba767f13adb89e5543dc26c4954711a79c876d36fc17093bf8e8b29fa9709205fb2cfbf8a35f20ec3736ed1362ace0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020135feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000034000000", +"0000002048348836a585cb7e08db894059293fc7a7190aa2681d5708a118c4d43571482e6532886119847c3e687d0bc6e2937050fc87406f3b73e12b7c894340649af4f3e0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020136feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000035000000", +"000000202b39c41139c07ecfa05b42464dd418092d7b1b9507c4c3c1b55baf1a141aae16b9e05212e4200d98520c44c9912fbd27cb761fefec945e1188b4c53fd5e2f30ae0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020137feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000036000000", +"00000020cffa4752fbb0b15685cfe71d458de32bd34a2fbc607445f121a30f912de7b524db5586a99d77110e35dcfdd35fb92bfddb241fc122475df13d43dad14fdcd17de1100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020138feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000037000000", +"00000020baf6391a7006e46901397025a338cddafc0cc188da5a484d8bc246605be1852d422557c29899d2c49f846ce9c90bad3a646ff78b851051c6826425a5ee3ebf4be1100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020139feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000038000000", +"000000207255a9768884fbabc8368c8a8893910056a1049b3635fc2d9c7ef63278f5ca4904bd3e33a53bb1fdf8b3e88a6fa21b24e85f8e52fc6164367a09610fb72de94de1100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000039000000", +"0000002088fc3f785f79f67da21fb4b3aa9f1118370cafac5f073ed3774f206bdae8e358195097eab4ce22d6c0ee34d5402482d0f8c6bda57db1bd7befea50bd8537a7f7e1100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003a000000", +"000000202aba74f63578052603efcfed12cb6cbcbbd1b3b12409da9f66d1bc2fdc16872c77c6e905f61fbdf68a203f8a69ffd0f6478775e1aa39c06e95483a759d962331e1100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003b000000", +"00000020dd2d40317eed9fa18216937111b0e8dcbc4e6afcd21024cdc2f78860d7b0bc400f0cf9c0c12137cf512778e03228e784d0cdadce76a1b3fc618d943f1e77fc5ae1100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003c000000", +"00000020e66c4067eeb1fe28f1969b74431ed9de92b41d8672e8b6ef95f69eec8d6597627e344167e50fd8197024535d912ed7b7854b1392db54cd144448ae08a4fafb98e2100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003d000000", +"000000205811fb5821a15350f97123e3dabe38eeec927e869879cb934d5f7d6df78afd556657405d7b92de24027547499fbc0e954f6cf1fe23b71c481b5ffd817c86b09ae2100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02013ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003e000000", +"00000020ef500848ce71d3f68cc2fd57fd76d8e95a03a83b91d90dab2ad78d60152e9b25807c0293ffb90021de477db9251392b535c971607059a14c16821ab0f83cf590e2100e6affff7f200700000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020140feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000003f000000", +"000000206880e98945c54770f6d433d25e19a94c60ae313d06fc6856547c551a96b940430ee052c67fdee894d8e4a332385cab2dfd824281548b97d48c19395d6e5d453de2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020141feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000040000000", +"00000020b43fd67eb462115448fbda3ac601581659655b1fd3b4da92dacd2ed64b03e760354a64768006b19f41492fa9453465b672e516c4cea6fe36a766561e287ef449e2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020142feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000041000000", +"00000020da060b8a7c0e13e768a3ed1d048c51ce932eacb4347fdca1dfc229d483e0297ee9686773dcfa84cd28f333a89ce5971b93d47b3eaf58ac10cba7d45809661cf7e2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020143feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000042000000", +"000000209960297b31a17c50c7ecbf9f31aed36d806527925a87c87abd19d9d2e8940167c50dcaed206a63a5110ae6167ff27215e460be5b694ed4dd6d311907ef0fb96ee3100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020144feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000043000000", +"00000020e830f4a7932838176183c2d285b0ac04dd8786c04981fd97b277c9154cee02752dc69a3ae0f435909e955e45f5de830580e1aaa84530dfe5c49d19da03f892ece3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020145feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000044000000", +"000000203cf239fcd668ed98a80847536e8866c0b0b33075eb572c8133fd426226d0624b0e39899913270434f6f0ae54902f4ec8ad2980d2795bf561ea2f13f6357b6e63e3100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020146feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000045000000", +"00000020988b41510caf76251f9c1fd0b5f750fbde345d6c75f3ce061fd8f539db79ab26327189bc089b1a91e27e62f29ac48d70c715d2cd66553f171a79b87251ad92abe3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020147feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000046000000", +"0000002045ee95e3ea08924291bc45dc3e3f162fa29579801916b53f3ef8465a340c8c7fb90ce6bf12519d00ff89d29a0ee918c6d7378286957bb5e657f2fe5c47e29751e3100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020148feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000047000000", +"00000020c2e894b8ba7887f8f67afd678aeabd72d2b9c858fecbd395f01c143eaf877b72131e25df1f18e2dd4c7f37c9f6d03c78e316e3f230df2cd2312ec7c4fe99ed42e3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020149feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000048000000", +"00000020631ed5c8a34fdf8dd6327c3c9fd09989829ef34ceb3b354fb984cea449b3c226ca10019304c18ffca33bb006571018e71365891ccbc77c63575eb5f824dd1ae1e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000049000000", +"0000002025e4939f6c37aad1bf0c9b65c0718af6409a1bbc1b49280ec17accd9ad3b290a5cfa848ef60f60e6336cd2a184d565cf2418fae8dc017e25d36f835167a35f4de4100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004a000000", +"00000020ddbdad4b2a83adb0f9d23e8cb89710c8510c5cdced61d76c40519525a67d367ea222c873717fb466e0cd11489601b789de0311bc15095c49117feb5946881216e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004b000000", +"00000020875f91e3176b04b28dc56d2863a129ee614668498aa543aee11f07b26a78d11b68c088d3e3bc40fef5dad3581846943054f61b10fe5f9ace45f2481d637d17d9e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004c000000", +"000000207d3dfa2e15f184aab640af2f30c52279e42436bf56277e51444bef30652c6161dede8a680ed95795bd96c54ed739a3f3de226d53df498adcdff958448adce116e4100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004d000000", +"0000002096afe81e0795d4b2f4b31523b87199e482e772a7effac245c0a5d181300dd83d794d022c6b81c787354ad7c55a7dfee1e40b562cdb5049f7fd8322bb80ceca14e4100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02014ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004e000000", +"000000201628cdc6c17d5938957b720d5ce48a0546c01da76330092cb9d2a57ba52cb03003359f8d7abcd4de923dbb88f7861c8c6712b678472a85d41efa4e68c99a2b1ee5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020150feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000004f000000", +"0000002064cfa910f0a958260f2ab1bd3cf452bd8f06717c37d290300079cd6cab3de55759cf309b92a0b12013b734e29f544ec010361ac8c80fb86493f0bb964ba48633e5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020151feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000050000000", +"00000020916d1ab763f059e4f29baadf4456dc69c09157a4c573acd73aa6493ce8bfb517039b7c495c149ac044e0158eb1431d9a3186a050dd37fd84a200e8de8b7f82a7e5100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020152feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000051000000", +"00000020e80148c77afd45c184fbe0db3e3ef01c6d4ca5fea68bf2254554de0ce07fd5627fbd5b2867d6077d9651532c7ed8f23c801e23ff2085c529c6241be979569c60e5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020153feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000052000000", +"00000020886215346fd0e98b8ec36776f1c419cc074a65ac3a7ddec1a9050debe4500f08cb822d2332494210d31950933766012fdcb3e1bd7a9baed75487b8d53ddea780e5100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020154feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000053000000", +"00000020c4ce7ea6e078c50e080342bb2e79995076b2c841937770d12f4e811045a8f11f5f58b060d3f8fe39f611919278ad0ee235479f0c92ce1aaa18eaffaf46ff8fd1e5100e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020155feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000054000000", +"0000002030b27e0213a8d7e7718011ed6683d3e80f3403dc8a05d8fc6b7458fa436d4d3159a6f63e0126cff2cd9778ffd1d8d85727c97dc32b6760ddd60503e87cda027ee6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020156feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000055000000", +"000000203056961edc0ffcbb22cf24c9fbf7e2af5983163092b5baf3bcad2eb04586be5fc45ca7e6400528fcd40ccb818cbf29b087b9f53eaab8a25bb3c6c8d4272eabc8e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020157feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000056000000", +"000000202a89aa271a521e93d95b504f644a1759e40832df334d88aa8989336293b5f8246cf3b99828e68a9b53ab8a03e5fb728e2e040e69fb4e73796d69419740926cd4e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020158feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000057000000", +"0000002028a029cf60a91d7457159014b6cab0d02b8d5a971a19b69890856d6067115424fad43781e0321c24d099635a44d4cd71ea74bf4a9b9f8a804b2fd9b64d8d2fe1e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020159feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000058000000", +"000000201b24e895584978ebfadf26ee56ce8258c1e66d18e30b3fd6a92227f88cabe20c49df97653a283afec27b9f65df02c50a6788d59e63b20047e7435c1720dbf302e6100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015afeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000059000000", +"000000206126b35c06aeabcfd88db845f3cd8a6d937affe16e0a9c0b7599437a3e1a521e14fa0d24555acbdd2851849841f2ec33d840d257da8f1af7f9fed5c14199ce3fe6100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015bfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005a000000", +"00000020b2d2ae00e96855edea8c4b6d2a771463971d2aee81f541de73ff60735ef79512306b01f7623c13d113d6ea7746f3bf8e70a599b9e32389cef73571260bc73f10e7100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015cfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005b000000", +"0000002000f06a2f5506b888d434607d8e86a4ce94087c37cbcb39d5b8f2e664aee53872df2f9dde920bf18a81dab14a9e51a922398b21bfb64811a8e655c1372dfdcb8fe7100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005c000000", +"0000002038f59314db676cf5d46363b06305eb0d1a3d4d8ff3d52e9c4ecf38adbc63b2489b9ff9e41c17a3b327b932f3475e7bbdb2b586156237e81c68784315cfaf0c79e7100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005d000000", +"000000208a9ddebae9174c0fa496f667f03e90177d3f65b7cebf26dd83d5fe5ef5139151122d7dd215db6283325daaa3976f4504b37271c55b3cddd8b11f822ff016aa2be7100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02015ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005e000000", +"00000020cbd2d475eb9eca4a918b79ad504a0bfe1b03dc362afde08a8f731ad58118cf264b0748e0ce18d5b4ef9443375bf84d12c95a8615d748702f0fc42bd3fb490120e7100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020160feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000005f000000", +"000000207277488c249cb9ed6d8609129495a4468642f7488e44e09b5c613f849d220752eb4516f1b30df956a8722eee1ea9c0f109df8dc8e7c3fc78f58941f4bd0027dae7100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020161feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000060000000", +"000000202b43e6f5bffa26099dd092ac68d989538ff1cd1edc15ca09901c6e3ec0ea060b5249edb75e74b6196e5ffd64a801a33db919158405fc415dfef7989e077e0988e8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020162feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000061000000", +"00000020e6b87fd2a983dfcba7c6d23fc3b0de5c1bae0c3179d97205b706c2ceb7abf4331b526c2b3325de32114ae439c62dddc4859bea00db338b21f329371942e6702ce8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020163feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000062000000", +"0000002031686388d7c89ff891e72798b1bf32e14b855bf32389d5eec1605a8ada449a2c5bc5eb9665ddf63511ba8fd5095f0c1b44f3dc5bc47ad6509c21b8ec319ea93fe8100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020164feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000063000000", +"00000020ecc5aea17dd30470ef919193b68f86bfcf26fa9d8227171693f54fb845a432530218051bd6c697290706006f1e7250a12e375e0ca21fe2899914c10e9012e069e8100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020165feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000064000000", +"00000020d4cc34986f77c72a934d056ace82b8af987ac20057fdcdadd975c688a84f1814022e80f2e10fbe7ba661e4cd8d18a412dc9ddf7a21c655c8813ec4e8fcdb1b39e8100e6affff7f20000000000b020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020166feffffff024066062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed2f864cd5375883182e0e6a59198c1993f82d146f56bb8c0dded7f6f36888917c0120000000000000000000000000000000000000000000000000000000000000000065000000020000000135b99ed4e2e165de2ad77f1bba48049358c9bb740445f3c83ebdb3e83aa5bca8000000006a473044022065979a33424a28269bbb5a58977a5ccb0120351e10f051763b7eb78ee59bb2c402203f006b8c7aa0654fc2cf62a43092a5f43126100a4ab7352894cde17d75963fba01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff02e4ff0f2401000000160014d82b204b3ab58963cc5a5a1629e76f67399003d400e1f50500000000160014f266c9e8347f3454e683945524cde58e147baa5e6500000002000000000101c6a498ef37cf0274907d6745c16c60565de843116c28fe17f7513461b89967870000000000fdffffff02e0131a1e010000001600142bb83a509f36fe04a6193015e67f42e95617640a00e1f50500000000160014ffef8d288d8f7ccaeebc12ca4d09ce28ae579b1f0247304402206c9ee6765212e8b9d48a567eb0c8ff0f38ed8853704db1033a0786f8f446ff490220507e76064f4747f6bbe6ba1d51aa8db193a37d35fc56a33445d2a4ba52b0a99001210376e741c8fbb37f852c27d1d6ccfe2ace8b54cdf2daa4721436d6707b012310da65000000020000000001019131dc43dcd9f58edbe4da8e74b87b30ced7d0a9278618b4e5821c647e89dd6c0000000000fdffffff02dc272418010000001600142e804ce3c99facccff6fb9fceab8424ea9f5729300e1f5050000000016001442c6de968c59a99b66369ec03c281ab6dfe4c2f202473044022059d52e1a77e8ad43367376021bdda7dbaa51d9d5e406367d5287e612c176368502203e0bf43ac17099ddbce0fd40ea74b8d033898b6171095c6e52b5d2869733369b012102e390006c172a80b1f6e7cbda657fd49020048523377610bcfca0476ac5fa90583e0000000200000000010132dc23bf17aee9dd2530bbc453d71c25a03c9fb819f02c7bdb224a86e89223030000000000fdffffff0200e1f50500000000160014ebc20f4bd4e18911f9d6c4f2c25f4af0b776e4b8d83b2e1201000000160014fba25c902febd09fa03877a6a47a7fa0e1ddb31a0247304402204457f04b4c6f44a44967ac1fbb369853ffdefa869911d4d45843fd6495e4f376022059037f3974f9a0ab1750049dad1a276211d4f93b26a3ea40b6c644711ee71e1c012103609f5ba261399ac32a87eb70e7fe01c5cdfa3567732a03a27160f11ff74073746500000002000000000101e28ed3fb61a1003c3f25fcb8bafd642b46938b3af118d0fa5243a66c2d6e14010100000000fdffffff0200e1f50500000000160014d7bdf4e934ef8fbbd5e8b97cc4f8772620734cdcd44f380c010000001600146ce40018cbc5fb901d6856a53b8c0e306f8aa1200247304402205a4bd770400aa6c43565d4883947368b6b7a7e6528d7289a70b20f4628d9bc8502202ae92a6f1ca3ecc36d92b299b15d5117b63a01171b25e62096e817364f0cb331012102f475591cb338f8b62df7179d7b86f0a2fc618fd8ae0ed0d3271be4d9594ebbc13b00000002000000000101e1c762655156e6a697ff0dd0d12205ecf46ebfcfd868f0490ced1a640a0267f80100000000fdffffff0200e1f505000000001600146ab595980124bbd405d93d8b014296fdc6701abbd063420601000000160014f5b1cb87a2f12b2913ec3ab36ce68e38e16f90ee024730440220568628cc61044c59c1e4caceacf21921e95562eabeee378b28719794c622d86a02207e9d4ed399c43a585f23b8fcd7c7e66f12a33177cc103fd5cf5664d00037ad380121037047cd9df445b7893be6a7fdc5916b9fb6dd67a43022bdade66324b040d3d83d650000000200000000010152c83ecc3c7c7f3fe8ae4eaead7fb8e8705a4446183974782aacd23bedab44480100000000fdffffff02cc774c0001000000160014f59ddf89afd7f388e1fa92ee61d6b339b99b4cd700e1f50500000000160014c5019d07b869a737a925f9f238c2f520f2958b04024730440220755df1969fa7fd3d10c048a3667df5f7b4aec67dab8a11cd00831ba9eeeff4c702204d0154f06b043b90e51fa89e83c18da500403cc1b249628391c9f53f10baddcb0121020363ec07d35a75df13b090324b237456d9f7d3de45c9199dd754beb2ca5c0b396500000002000000000101c0a7bfa9098832776c2aa7858451a525f7dfc9857790d2afac2defb248a843580000000000fdffffff02c88b56fa000000001600143d29965330c3fdcca7312e4b25914e2e48fc17ea00e1f50500000000160014bf91ee934e7d9aad0b71bdb928f90d11c1035ffc0247304402206d42c2393c3611fd4677d9864481bc22997cd9ee8478ce31c7b43ca5323b2fbf022026d066b3056e1ee5e75bb24b58b677453b6d40380335cafea003888811c0d2c6012103dff2e5ad358fe3fd7f3084b192111eaee74ac90973d07f0cc8bbe195168cf3d965000000020000000001010773e5544354b584dae5afa4131fccbfa8123c2cf8b8fd2bb1e84463daa0d8900000000000fdffffff0200e1f505000000001600144a8ea9085f5e810f590e95e16d7379e9d90a1bf3c49f60f400000000160014a657c824b3bdad220f74e885cc17b163d8a6c19102473044022022264fb5d53fb5bc52b783438c978ea1034138185909a2e00dc3731d576337b902204f1a90f624b1e66bd47bae538a5b91b0230c6dd723c31e938cbd92b2d0cd7e440121020a3b066a7ad75030af6e00dd14b2beb30aa687d3bb9101f96a37b12e7f6d67c565000000020000000001010e39cca4186227390ecc45d1d5b0342e56215c9e4582e05f99a6eaa8300be7880100000000fdffffff02c0b36aee0000000016001480cdb2042dd3cc6d15df7a8848a514072de10eaa00e1f50500000000160014959ad8bcbd9e14007cf4afef66070699d5d6beeb0247304402203e329b6ae67b46b4680f5f1965874fd0c137609e0ff50405b8fa8c9c5cfd112302205eaeb060ac5b7f8d1b86c8fadb962a9e1a33fa51ec164e8c4a46e0716e1ab3a2012102c99f63ab2f790c5428c2b3351f7868f8a5e9406afcd7e8440513e827c401072265000000", +"00000020efba4e611e1e2e56fa652e78306a76a6cdccb988c889801307c6d9771bf99543d288ed951a09af4d2d5780f3756bfea832b543195c2b38c789c73b83ef7c7934e8100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020167feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000066000000", +"00000020e3b42aee7f0b7dddb821411bf97ee4eec25a13a4a15d93be844b440f76d0eb51f52b4b18f1b4a4670c51fba6d8e41c785dde8e1c4a883bee5b98ca2cdda25f69e9100e6affff7f200100000007020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020168feffffff029034062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edfd3b4906dafbcfec299ee45adeae3db8866ed8992eb011188df3f78f229e151801200000000000000000000000000000000000000000000000000000000000000000670000000200000000010152c83ecc3c7c7f3fe8ae4eaead7fb8e8705a4446183974782aacd23bedab44480000000000fdffffff0280f0fa020000000016001449f33963010119c7724c13f7fef94d0f79acc0a57ce5fa0200000000160014dcdd5f457b54f9301218624b4d1323fd8de309880247304402205368d72da2e54e0b6f56b433e858d4ef03ba4bafae9d34d37510df4fcb984f750220435e7feece102a71e61328142da03ca86b089cb30741f88bfe9c321c8412d0950121020fc2d829e289339e183cfd519cf8a2d704a7d0df2bae20a46beff2837cf11ae46600000002000000000101e28ed3fb61a1003c3f25fcb8bafd642b46938b3af118d0fa5243a66c2d6e14010000000000fdffffff0280f0fa0200000000160014e823c940c8de2e422389c9bfa55e6292bcdff1d77ce5fa0200000000160014d6023e8eb8662c5f5e3bc3ad8c4bb3753bc3c0300247304402202024e471c38f6a9bfaded863d85606c889f84dcef706f1456e4ac4550593a5f50220301eefb7a6d98103ab5dbae0306162bcfd0b0ddd128ca558cdf5ae3faa9d517d012102e2bc36d30e9b641bf35f25832656d900d25648a41b8c32b2d38b04dbf98564f16600000002000000000101016b52789d88829eeb8fb5c7c8261bda50aef5169039e70d531b7ea4d19604cd0100000000fdffffff027ce5fa0200000000160014f8a1ab32d0e83a067206e710b1fff109af42503380f0fa0200000000160014bdf9e9476d9c57ff7fc59ef816cb91eb67027ef30247304402207573cf3f56ec059df39a3b015648db1329acc0e69452087d661e4cefe646211302204d2682f7fabd90272157c5119bb6fb590a9acaeda3546216e62123d898bc76ff012103fba8f4886d3b52b526d156b65262310598e722444f19fcdfcefcfbff7d25810b3a00000002000000000101c6a498ef37cf0274907d6745c16c60565de843116c28fe17f7513461b89967870100000000fdffffff0280f0fa0200000000160014c7bd0ccffd300590f00ebdde6b1085f9d78c277b7ce5fa0200000000160014fac1533346e606cb432313d01d499041f3590ae8024730440220044f5962ef2d1777cd172727d601461b934eac80d75d3513981ea97794eec949022042f63009796cd4d2931735023ed021978cdeb373744d72750991866ac853334d01210262633eb02efaff452e6d7a219bf3dbe356eabe66383aa19dc78116dd1b9a734f66000000020000000001019131dc43dcd9f58edbe4da8e74b87b30ced7d0a9278618b4e5821c647e89dd6c0100000000fdffffff0280f0fa02000000001600145fa234d6418c452ee8f9824c4ffc07a58a482f837ce5fa0200000000160014de05615a4dcfe171d55eae08ccf7ba9e1272b1e70247304402201254668a49832dea4d587383056919a3726ced278b892f9502d23e78e28a20fd02205f140bf2dd3029253d4f2a57da3ee05ae074b2bf82684714753aa1b024c29ab001210344d30f898b00b9c40536ad8eacba1612afd4021805f6c9b4a1aecfa4d82fecbf6600000002000000000101016b52789d88829eeb8fb5c7c8261bda50aef5169039e70d531b7ea4d19604cd0000000000fdffffff0244e67ee2000000001976a914352d1f714a48427d54b40bde13fb211d8198549a88ac00c2eb0b000000001976a91475bd3d4460e27dbd00b47c1cfcb0558a181400ff88ac02473044022063df2072c4433486eeeeeee8d5b79ce196793426af3e359acab97435bd52d06402207fb50aa21471909e9d2eb051661af3195480eb251c56b4f48cf6577c04db3650012103c20d8bec9f58c5eb06bc8f5c38a0d0a37b5b0c8c402677670df2cc4b6a71b51d40000000", +"00000020fdf95819f147bd741bf8ef7bc8a75bcc11764c7c60956eea407b285aa7d4b4247de4ac845f72dd42cb0d2ef0b546a83e650cfe610f6871df25747b504b076c3ce9100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020169feffffff021c03062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed9b8179551e1c41cc1cfe53ecbd9773975f8d68d9b20ef4c636a323161acb1dc50120000000000000000000000000000000000000000000000000000000000000000068000000020000000169720358b80cbe260fca180dbe044e4472cb5c555674b43f91e5e5ded2bbc296000000006a4730440220627fd2185983962d7b518ee6e6ac311e9461a1879189d2cd898a0f42bdb9c28f02203944e7599ec3bd1c034495c3ce161ebfd6e532f3a3f7d634e675e979a6fc3f6f012103c4583f15fec5b47654b304238f42dcdc8d946f893eb41a0d0ee28516d45c2e09fdffffff0200c2eb0b0000000016001475bd3d4460e27dbd00b47c1cfcb0558a181400ff281393d600000000160014a3c41024988de432c0d883412cb5129d90fc61a568000000", +"00000020eda7da628f2bc837a134698303dc5bfd653cbe81cbeadb4202e26f8bef4a4d74c386caf6a41722070a6fdd3d1e9f8f426a65ad2fc507c60cef884b7843ca83a3e9100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016afeffffff022cfd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edf225e56c0dcee01991178fd2f3e4c86f2d655d7fdd48a823b9f4fbb2d5500112012000000000000000000000000000000000000000000000000000000000000000006900000002000000000101c2c5fd2e05f13767c586b55854c12b72156d3277a4da953248205c1ceca0c9550100000000fdffffff0200e1f5050000000017a9142e38c9c474e37010270046da38ce190a596ba32f87fc269dd00000000017a9144702c92e076a0e999c36c93afd2042f70c75082f870247304402205ad99865ef664fc3a517a42af3d08a6d99fa28776c3ebc10cc3d5c354a8fa4eb0220772054a42c1e41c927fa32191349198af12fcc52b152de102f6d23e75e0c6a05012103299da6a488c24513e5aa2fb5e9cdb2590b93ca607c1250928281f2f2a2625d6e69000000", +"00000020559c136e3452b97b706d97f0ff5b63c57d321aca1a130d446ba16b0ace488e2dff45412a8e51ec2c342921d3e11a9e8b051ed02cca034d408d7e74e86369412fe9100e6affff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016bfeffffff02b000062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9eda58b9a3d1bdc62737e9514fe4e645fb5f63de3e869e700649c3abdd390875e1d012000000000000000000000000000000000000000000000000000000000000000006a0000000200000000010144b550d93ae99a2b86caf749508f7220ef37e1abb32c58020f9e4ce2fb92340101000000171600143f196850d8aceee83f4130355ad25063ca2ecb3bfdffffff024c4e0295000000002251206ed91a6bb9b5008ea78714852eebab2790c319df6f83040297c20fced3f40b2900ca9a3b000000002200208a17955ecbf395b3f5ac88a4f0c9e1e41d898f90eaf4dd65306e37c153ce730d0247304402207d95d022ea59747604a80214a01a7a32778f7433ef92b592723fba543ca140a902207b937a7688573ad84c12a39d334d3d9767a075237c933b2584de6d78b95ab4a8012102c67a45d0c4c41b83a3ba16b5c6459cd35edf6a95edc4a59c917c3a7aacb8663122000000", +"00000020da1a825b0e292596649de2a69f34b38bfa8c2a5e1eea5c82cfd8c4a98b9b6579bb8cfdd90081f3862bb8eefc9df595a7ea984ccf6658dfffd723533705357c72e9100e6affff7f200200000006020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016cfeffffff02943a062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9eddb68b510e02c31f86a26aa9ba4036b3a2d01daab15e100f6c8eed2e87f755720012000000000000000000000000000000000000000000000000000000000000000006b00000002000000000101f6eeef32873cb2c5d4ab91d609a31fce62e733b50c2c8c5a50ca934dc70c4d670000000000fdffffff0200ca9a3b000000001600143a71e26ba710f7bdcb24de28d8b279cbb77ef675107a6759000000001600148480fe9e9b951fda8340b355827298485967ef4401404ec3c7092d8ca5f2c5f0498970534e6db86ce3caa74b44494681457f4ba83558acbb3400136e45bfc80202e06097c25209e4ed6e371adea94004b90235d33b486b00000002000000012e5d24f14a927f0f5fff33387c5c4bb2cfa5a8d206036aa8c5c8d6bb79f6350c000000006a47304402202ecd177f334881e838b470bdc78e610964df79111c7b8003a2614385b0611f0e02206758c9502f516c55af76d1f82c2a4813a011f9cc06416b795840d5a60140b69a01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff02e4166bee000000001600146489ad212f36ea36b562b174a842c51c8e2d7bbc00ca9a3b00000000160014bc90503713fd19ec0d7dc7b6314080725dc1574b6b00000002000000000101e358022f444ad1e79866b5e6400c2d38e6f496498a1a1d50310b2191402f40b60100000000fdffffff0168c19a3b000000001600142e2e0e5aad28f5da93a6f0e56f9039cafae32e6e0247304402207dfb79ddef8b9e53b991c543a915e79ad241834ec96c285cf4d409ae8c2b0866022048e963ab8e40fba652da10a67eca89151cc545479b23f2797ad8405643be494801210284b3623888d642976cb32c05c4307854d43024797c68bc0eba5bbb13d9a698536b00000002000000019cf876c62dbbe036af4ea4a7363cd4ca1c14c8572095cba3b76a87daa1303ed8000000006a473044022074140601c8b9187430cf9bd4146a38a4862ad504e037d1fef797702c5427ed4c0220110accbfbc63f5a9cc51b7d54972c185381c5768368ebd5550fefc1196d03ae601210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff0200ca9a3b000000001600144c59bded8707fb330f73658f36fd97f61fc86bb9e4166bee0000000016001413a91643115e64b7c20f16575b3bd568896d9a476b0000000200000001775c375f240fcd10dea3b6b2111e5e1372c612b4c2ad0ff22d6716ecdf9318bd000000006a473044022057cba3d0aa7b309d0543818102482b6ad88496d9ff067fead75f70009db00841022075b1a70440b25572235633ffdb2924c1fbdb24382089f9cf9a2f7b87b3a7b7bf01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff03781c1a1e010000001600142d4a8cdb95170a6341904daf82ac73f4f3e3cd0400e1f505000000001600143a71e26ba710f7bdcb24de28d8b279cbb77ef67500e1f505000000001600144c59bded8707fb330f73658f36fd97f61fc86bb96b000000", +"000000204638a3a33172197fc2962fbaccc6fd25464b4a1a69e5227c60b4252d8be1a118f3b581856a99775b2af9fa4f47ce7691580376d1063a013604fa1bab13677191e9100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016dfeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000006c000000", +"00000020170eff60bfd9762474ae174d6fa69e2a5f3f3c0f76092857d91120750fe056546443407cf796b355b08ab3f7a45d79671b045056eadee1deab45dd1a8917ed31ea100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016efeffffff024002062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed23ad3c685ddb3d91c292fd9eb0aaa592a1bf8d35e788fbbb8a0a5ce1dbe2e80b012000000000000000000000000000000000000000000000000000000000000000006d000000020000000001027cf8a28f02e0cc4c27d4313c86c294f988425ba4075ac352ab8b2f33289bb6f70000000000fdffffffa42bb798ce73920fb75ecb8ce627aed5ea2e40a0e5e463fb93d43b47b28251f40000000000fdffffff02a8d7fa02000000001600140803b596e705d9a715763712976820c2ea75fd7700ca9a3b0000000016001437f0163527bf88d7a16ba6ad24c2b82770de44c602473044022051e39b673b5cb1f5c7fb05ed858688b8f062045c56632e7951e28c8485ee408c0220331947e28f9d7485e305dff740982a3b691305e29d1bcefacc754ae951b39c21012103289d77616994ba1127df8e1d6e538efb48d96afba1783fe45fe071cb744a6da302473044022008bd0f74407b79c08cf41f19e3fefcd71bac9054005addace5734e99736eab2302205ea89d784f17a4626442a07679b78da14157b960d9883d9ba3318b8924532490012102c9e7b3fc6905da070bfb40a88a02eb00290c80f92a03f9a6e4bd635362f507286d000000", +"0000002029db353a90f2142622b92b842505c8213cc5a5539ec62dc67921347c8fa77d211091e13210b4d513aef608e5bc68277be4fd049f99fda40f77b6ab0d889d5206ea100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02016ffeffffff0200f2052a0100000023210399101199e321e2af21f3a7948599207524c26e77edaddb0b2b257912f9724b94ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000006e000000", +"00000020642d44bb6fec140780b8ba3a3229964ef255c84f7fdf4e5b095af3560b60d34829232d2b7a84fb77eba972cf7af9fea2b9f2b5afe6de2d001d16141c48a36acaea100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020170feffffff0204fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed8b8a2beab6576895194fcc315d64299c438f9d60273dc145ac7119fe1b5eac1b012000000000000000000000000000000000000000000000000000000000000000006f00000002000000000101e7e4f83090eede73180e782588763ad365c2008f3d47fe752d25d0437b722c8b0100000000fdffffff02fcdda435000000001600146f2037208aa2f561d3e23f093ff9a978d20afa4600e1f505000000001600146b5e363b998789731fbbb38ac9e68a435499864b0247304402207b45f1487cd6c0f7aaf4516e28ed1496f7803882142fc4ec216e223d033a3d19022018473b01274b8bde298ad3f89176df9dfa465e1cd546481be6dcd9e93731d2e10121039c4437956680d771132f31827010da89a1bb2c2a6e1abe25ef2f2d9a279d087b1d000000", +"00000020745d1dd8a71926daa1a15bcca6e7cda0fb7cf374ae0bd33a561138f9fed3c13135a86a9702055e81394003c0d6c1607c059b16aa175f0513d2a4aa966f5798f4ea100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020171feffffff0204fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed0caece0cb03bc51dfc7fd0ed41c8ed37ff4de5d65c18e1071c4e7ad15b6ee59e01200000000000000000000000000000000000000000000000000000000000000000700000000200000000010174b251bc96206fae8e90d603405593d0d456ccc91c411cde1695d87d5037165c0100000000fdffffff020c8e71530000000016001461d1b750dfdb48880e4bf1dc5dfeb9d403c907dc00e1f50500000000160014d24ed5efb3cfe7ba4bf2f22de30e50bb5a8b294a02473044022019c2cf13d8585fd50448f5715e3833610602d61317f3401aac005309b6f2a1c2022003d8397d7779a4b6f02c953e02f7c9a99227a7e250c3b6bbe825df986b2b2a7e012102874326a37e7f6938fd1bf98eaae31099909fc12e7297d595c1cbb587deacd74b70000000", +"000000203aa0116acc53af2ebf73a0942efd27f2dbbe6dab834314259243253382e2dc1d56c8767bf35e79cba22af3de81bfb5840682bc217877a5f3b3319acfb9a920e5ea100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020172feffffff024202062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed4458bbe451285682ff78f7134475aaed522f727d94de1bf4286f5104ad274082012000000000000000000000000000000000000000000000000000000000000000007100000002000000000102bb096d805a3654e2811d017e7ec5a8b540eaa1d9e4a06cb7a20738de7a6857720000000000fdffffffdcba74a87fa4355e0399879a69e717809ff6b26333c6a0f649de333ba196ab1e0200000000fdffffff02beb99a3b00000000160014e92aa29664a039c96283df11c8373b270110057700e1f5050000000016001429c7cd05cdeb60b6cfae5310f41e1ecebd09a8470247304402200a74d96056951ad0e39cf69a64b68f42f4a24af3644d9526ef0d397a7104cc9c02204c63a82315679d2df1f351ccdbba7e79718cdade126a667365f1f4b5e5246d98012103580757b749e726d595a93ac8e0088d69eb983cf7d10e924b9e6a6f19f91dc9370247304402205a594ba6485d0e060d7ee5b3e9d124b5b73b4c7c73ca227e0aca5d5735ffae7402207fec5e2085c19e85a749edff084729720072aa9759fbc0b816f1b8ee7e1025fd012103580757b749e726d595a93ac8e0088d69eb983cf7d10e924b9e6a6f19f91dc93771000000", +"000000200ec08dae9db4f6554b956ed853cd29b8afff8fffee9173fa4a4e4e99befde42931af3e5cf850bea99220c3b1d5edf16bd0ac8feef0ebe93c5990a9db39ab1491ea100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020173feffffff0206fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed873df78e5e9da60f7b25769f7d5d0301e67dfb27f9e7724e6e9761ec55b17d33012000000000000000000000000000000000000000000000000000000000000000007200000002000000000101fc8b910035b3e53f07bf283decec5b60131f479506b8bc023f837b295e4d50ff0000000000fdffffff0200e1f50500000000160014591c29d10b2d0629250c4b676d54381724a07c9ff6f1ae2f00000000160014e84a583379a98c4f4ae97dd30f796946decd72ca0247304402200b0c581fe593db0304f7ca7ec7cd5a95f1965df138f13102d90c38fc32b57862022023d6adea6e9e206058f18041760253d909ae0b490f8271b03a2b34bece8fc41b012103d02d6a7667293054883c6da8d71047a467d88cf9ca22b892609e20ecb22da1ae72000000", +"000000201fa6b119852531ba466b8aa455a1435449a317202d24402ffe8c868ff250e00c6b5b59f8f3679f894ca1cbb6be665d34000f08c3a13b9d42b4b68a8e1d5dd34beb100e6affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020174feffffff02490d062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed7773a7fb00e673c49837f27f123a84214bab80d8a44eae958260186e6c71d4d2012000000000000000000000000000000000000000000000000000000000000000007300000002000000000101a96c7fd62b7e5968f7735901077d30f195b28e1669236cec0528a0ab2e0914660100000000fdffffff02f043cd1d00000000160014c6fb945c392b03261b8b10ee71d56c9815309b9e00a3e11100000000160014746f68850933cd31eb082f5820a36b0eacd4061f02473044022021357f9915c6d8b4891251dad0c45f3a48b2600f8f6ba3434b5c52d5ca23569802201b8d4f4b562a100c40d24cdfcf4521830d941efb6a4c5a7edfaf9e9e4220f94a012102a62b45f7432fe291c8fcae5e724e0925302d7a1fa0718bff430928daa7e397b17300000002000000000102dcba74a87fa4355e0399879a69e717809ff6b26333c6a0f649de333ba196ab1e0000000000fdffffff48470b70682fa6413abe3fd1bbcb87f2cc68c0f9ef9464094eb60dc1f4ef8cee0000000000fdffffff02b53a2915010000001600146ccb572af87f6f19b17f291818d919aaf460ab4100c2eb0b0000000016001422c3c781d8c8e6bf8aedf6db875a3f2d02025eb802473044022075ac6ea07c47262a4bda5414287ff794b0745970c6b8c8d22f41ff60c85c146802202aa57162e1f9de551184a5dbfc999114276c935b8c7033cb41421287f70e6f460121037d9dc96d4a8a0352946b7567ac13ccdd617cd392605193887d70bbbdc819a9cb02473044022030acd3daa739e010df2591bbe6f0657351a6444553e7d56d5d455425a9b536d5022063f876b01a1fe406c97e183f2805bc00eb5cdd5b378a84235e79ffb3e3b6aa42012103a576ba12e84f19754553c891c4377fd32c9ce86b30157b6872cef1b23cca7d5273000000", +"00000020dd0e828c8babf682db338ab6c2ace2804c562a317d89a8e4f2c9d7e67ed77a7218cc6caee005d813c8f312981a3324f9ee7ab8bdae6491e2130a812e805924abeb100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020175feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000074000000", +"00000020cd74132ad0cd91658fed7018d123c062bf09890c82a963429f3543e9b4a7767bd4abd50f57dbd939cf3d58748c5039bf2f81f2a2fcad23be05651e6b1fa5d18feb100e6affff7f200100000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020176feffffff023208062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed22180d3cef514517f569e9fa88942949b8629934f18212779cee40e97254ea5f012000000000000000000000000000000000000000000000000000000000000000007500000002000000000101c555c29b258698eddf60890799c73efc40366fa0a4dbc379f5b0eae2a1aa12670000000000fdffffff02876d3d090100000017a914ecf2e92fb5a79bda1ade29714d3e14db3062d4828700c2eb0b0000000017a914e4e81bc4e8792afd6325ddeaa2653494cd10be308702473044022040cc01ebe3d493afaa76b5ea508e1aec2485237ede7d369a8c0c4e2fabef7d0702204aff2d040780af955127ceb46abd3254b5489c6e69efec2902f41c012b2284cb012102f24e8f1654a4ee264381dfdf81aa5f925fac470bcd952654fb74b0ae9066fcdd000000000200000000010191bed3a310caa666b133d4d0adff6f3db51dffe4ee63a2e1d4ba1a17c1b8fd490100000000fdffffff02fcd5f50500000000160014bcd74664ba672e88a5496651280e04dbea664cb800c2eb0b000000001600146365d0cb3cd01b9f5a04f09630fdb5c94e87430c0247304402200efe52f9793f099931ff7244bffabf2a3cd1ac046a02576363ca015b9d06264602205170b30b0476024c6db2688fe346f4589232c09f389b038626fbed2d224db58001210348986ab0238535eeaeb7faf156570f833002de937c36a17407dfca7c94761e5700000000", +"00000020e9e1fa6f8d48282a7a2f34ccedd05124207062ef9eb56dad30f42f707ccbae283b9fe2121dafccbead8c934889e75f7289639772c057207b4a62aa64fdc221f5eb100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020177feffffff02e6fe052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed28af5c0a2b5e4a9781acacd36e8c92855fbfcd394c81abb1d6d3a3e3338bc417012000000000000000000000000000000000000000000000000000000000000000007600000002000000000101d2ea6189259c36b9f0f17a532b678dca52a7010ee1d1d434e3b57dacea5f9ad60000000000fdffffff0226de8f41000000002251204c25a804eb9f53e329bd48bbe78527fac93a279e5594d4de289ad5cc9d75c52a00a3e11100000000220020c43f2113ec233e201b348594d9cb6e0885bc167d019205ce798a9038d983609102473044022036491374035475f422b262d0d85d76e47354e7b5ebe84fde1f3101e2e8d04c5102203a00b2c8b33fe9878ecbc6eea2da54e8a1c79e24d5c3bcb51039dbc7284ea151012103b33fbb51d5b57c2b5b171659b6cc92ac421fc41286c10242d34ead72ef52353800000000", +"00000020c4769fedca3eb65581abc21b4d9f870d27d51e47bdfec446a63e417ce58b786ea252ed1727830a49691aae359c487ef49298c9a61cd7f315632f65384267e30eeb100e6affff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020178feffffff023efc052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed5b2f64661e874f1c9afa87902b16cc26c04d5a4f8c30953a1dc553075f0c9d53012000000000000000000000000000000000000000000000000000000000000000007700000002000000000101f54b2b8059c5b6ca96a9579701d82264b04db888b5262eb624e13daf948a2c950000000000fdffffff02e809f50500000000160014ede8e0883d113ca8c102678a66d6c1999cee331900ca9a3b00000000160014d54cc6fade0ddefef3d967455a64042e559c3f2f0140f81e7a4eba4f54cf7e9503b7971bb945ac6ead4eef5789fce44c2a74fb3062de20ed53d9173a8681e9835d011834eb7ae0ac9ea38ae3eef2b2897f361848e7ad77000000", +"00000020197f216be59b0718ab58b70fd8f0fe3810a1610ced8a3bf10b003de7d789a004d2fbf0fddbe549297ae7d2e2aef69179ce51b12ec9bad3f94f0b76e456c379e6eb100e6affff7f200200000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff020179feffffff021019062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed032564a5f505d43279ae33aab1bc2a41791d8d6b35d174bf1427413e87d053750120000000000000000000000000000000000000000000000000000000000000000078000000020000000001017b6bec5a4cdff535e4f1c3293474b78edd0cadc30981a50ec5b73cceef5a7ea70100000000fdffffff01f0a29a3b000000001600140b5a81417f08e340868fc0ce244201a50895ae1f02473044022029e52bc8bc6d8b378d3ba06ca8eb5d8c6fcbd1b5e02a5302eee96b31e03c2ead022031f7f1508df185273ef68171a5972014ab8b75327b771808f73dfc0c3e132a3d012102d692279beb2d00d1a9179d838e788eea8db7dfafc3fc291028fe3ea10318e54600000000", +"00000020161824374fddb9faf36eb6ba7054bdbbc87f68f372c7576c64533ca85fdaa479223d2c96475d940ce159053cf5e4c83562e97b470afd3b0d675d41d9fd36ec7eec100e6affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017afeffffff02db09062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edcc0869144f8e6e8cc6216b8cceb3c1791fbcc7cd6dff1b909c83829143b4098f01200000000000000000000000000000000000000000000000000000000000000000790000000200000000010191bed3a310caa666b133d4d0adff6f3db51dffe4ee63a2e1d4ba1a17c1b8fd490000000000fdffffff02e976e11100000000160014346e3f7e659751ee9618868dc6053ed0fff874fb00c2eb0b000000001600149503fd0f27789042b283ca8ff565e346f43f8c6f02473044022027923a6e3323331edb8c4aa674becefc793c938c735275e3c6f196a7f77fcc7702204df7ec98b32f6372f058d82adbfe4134676c339044592c7d8543fea5a4334d81012102dad87450bf680215acbbc826358b98b4c9112ef32fbea8822ca0c60435348e857900000002000000000101dc28345e00d30237a9a96de27a4e01d747ec2c49110519ca46db0a7726c7994e00000000171600145df30d8c551ed8b6b63d26a19bbddb4d212a4743fdffffff0200c2eb0b00000000160014e02c91621e4d39d9bd2eda35bd405839b60ca9bab39e51fd00000000160014df594a303a1df9fdadb310b2d5bb43ecd274092f0247304402203e2814f7acc9a51d5d143fec7ef90c20afe33b158e0a4cfb83b73fdb44e993d602205719eec36238c131e89ef2877bcd6a8810976b7bc64308d1835cf0327841f1fb01210289343a60a0544a3ae2bfe20e5958235c686397a64a5fadcfe893f7ce1f4ce4c379000000", +"00000020c9f98deb84598257e2e323970dd5102d27348e12d48c97fa9804fac4265eb7627a6f4f369231f104093d4ef99cb347e8fecdb8fcd9291483237a0ea46d6fc3f1ec100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017bfeffffff029bfa052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed434c0b6ac1ff212424b0d14c8e4bb169aa47c2a96ab1153d3755edde3a39e6cd012000000000000000000000000000000000000000000000000000000000000000007a00000002000000000101596d092a6e61a812d7621ab5b6cd5d9837a1ee17a7376e1deb20fbe8d065827e0000000000fdffffff0165b9eb0b00000000160014b5181ea3cf59c6dd8c5b0b1c2dbcbd51d7d1468f0247304402207693ecead372288f579c173c7448dc97748b74b366d8b11bb249bb5179d1f5b9022031870d1a9ce4985040c2e764f4302640ad51dfc99ce9e8676014605231ae832001210351d65edcf208db77130fd6dc9028e5736b46843c8adae5217c97222c8842c2117a000000", +"000000207b5fd9a7bde66eae89a4e820a9bb846a071cd1ccd3b544388e0188b3340f6f1bba1b5f1148778b8a36c5dec6384ed01f5394d5ccc90917e904c4e5dca21899bcec100e6affff7f200000000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017cfeffffff02e415062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed298ec1244d104c666bb59e2952da300cd20b3416932634835b4846e2beb9d76b012000000000000000000000000000000000000000000000000000000000000000007b000000020000000001011aa7e488b611e5e51d17fe121f66fe080f2e60d0f5cb053e7b95acbf586e73b60100000000fdffffff0168b9eb0b0000000016001420aba5066bfda57d38df2403fcb03777d1189ee80247304402203fcb0e7b248c64b8b7ef8b5b2fcedacd7b9f9f0c075cb263456f3e075bea10c702205d6d4a190e03a41df10d86c7a6016e017425f87018043141da2b172569c0677d01210392bd995993277dff85703eb9dd7a4098d0950dcacb0fc605611239aa0c5ec6760000000002000000000101596d092a6e61a812d7621ab5b6cd5d9837a1ee17a7376e1deb20fbe8d065827e0100000000fdffffff02acb25bf700000000160014463ef2a53b3fdaea6d5f676d643af472c908e88c00e1f505000000001600149503fd0f27789042b283ca8ff565e346f43f8c6f0247304402202f366f83c5b5174344a4c6469eb8f5d479b36dec499ad8d23be619950574661102206f13a61b40345f7bcb4ee07d9d11d3a477901d5a9d99d8e249ec5f6b13430a98012103ddb92a635016cf0f393882271d249ee39ae4b0549361c3c3c120408603ef76d17b00000002000000000102e7e4f83090eede73180e782588763ad365c2008f3d47fe752d25d0437b722c8b0000000000fdffffff7b6bec5a4cdff535e4f1c3293474b78edd0cadc30981a50ec5b73cceef5a7ea70000000000fdffffff024bf0f90200000000160014b149ee23990afb7557c178d64889101d75e5434d00e1f50500000000160014e02c91621e4d39d9bd2eda35bd405839b60ca9ba02473044022039f28fa06be477a5844ee764f37bb38240816a3388c1f03869837d50f02a0f940220327a06e70f5afbb0655334c7eb1c74077bf9fff2460b20f55c6d4d987cf953ee0121034d4debc459ed68821a01b8b3341e097a2b1ed2ec86016ff9bcebe8fd6848c53b024730440220535b8514cc164b13b3d720df8079d68758ade9eeb8e7296fb8ffbd6e44f6f974022055a35a9b0231ea308554af014e7646b82b2978616fb6f31d8735017bed918729012102714828ae4335017322eed8d0b9156c8753896198be8ed0d732d56eb922d861c67b000000", +"000000200b90adcaec9e439f5904feb5833a862defbd987a9c7bf83adfa927718205c2731d2c480a213645bbc29d4b3b62b8a869ef7535b8f65d3784eb0dea7e53f38a6eec100e6affff7f200300000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017dfeffffff0207fd052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edb1c6a16603914be713e14c44b3c16b1bb89e19d062968d442751b6144b44bc20012000000000000000000000000000000000000000000000000000000000000000007c00000002000000000101bb096d805a3654e2811d017e7ec5a8b540eaa1d9e4a06cb7a20738de7a6857720100000000fdffffff0200c2eb0b00000000160014e693bfa29ee1c1c9c29c35e2e031261cacbfd4f9dd497fe20000000016001485aa1a2571065bd299fdc578b7517fba899f6fc202473044022014ae855a86c82016ce3f99fccd9694de867f39448c4b4b49086c99b087ceade702207dad3e0fd18f91d7d9fdb17beb8d783e2d3a36e41ace6f75fc3cfc77fea08847012103c1f935aebac9d08e7b6a16fb26502b3029c0b9832dc083dea037ce47f987aade7c000000", +"00000020bb3c5fcc8bbcaae784b94657e2637bf51d88520ac317aeff3f086402d3e24c4afe2ba041178b5cd0ab20ef943f382eeff071af69523cd4863bd452bd66265341ec100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017efeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000007d000000", +"00000020b9c5f199a4ffab26142389ee736cd05f30ec8ee61ffeb110cb515193a8da24037d3e10ff6e8e90524aa89c7555165e02c78e8892845e2a84cb6e672733318592ec100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff02017ffeffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000007e000000", +"00000020ba98796e8142d7d899d3ef9f6b209bf783c52517f9554be4e99fc7f30eb4eb40de86ecb9f97069cf41bacb9e1b78e4987296f7c129292bfde5cc2192778ca060ed100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028000feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000007f000000", +"000000209118283332a552031fb6b17ec2b5cdcb974aca7244feb9a0fbccd5cb52306e609366b563ca6153ec334f25420e89d1c6db5f2174f17accb614f903bf07b62993ed100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028100feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000080000000", +"000000209a725b1d20ccd6d832742840cfa3c193a2fa94933e86fda4ee1f38d3c4cd8d5e925160ec9098986198ef22804e7568bea7f41d4c093b1510dd02fc229fc3723aed100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028200feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000081000000", +"00000020e9551933934104b4e4c1e7e47ec8df2f3c897ce4c5cbabfaa0e5a2e2533c0f668b0b1b0471bd03cc230007aea758cef5593988438623b27f083d1923a0c1082eed100e6affff7f200100000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028300feffffff02c712062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed2f7601569d9a9c7694c8d57b1aa69071b31b76d5b306c7fc99b2577844bfdd2f0120000000000000000000000000000000000000000000000000000000000000000082000000020000000001016c4e277508059d14d172737292721b3d0691e4a6faefbfa02bf161d7a4224f900000000000fdffffff023ad3f505000000001600141f1ea08ac424134000f668446ece00deb983bd0500e1f50500000000160014e5096808c1adabb44bcbd8f64ae8fa11c6a5217f0247304402202775766623faac01a614dae7512ec2145cab6c98c16fe8e73c9ffc27b34918d402203b573959b37602052df3885ab76573fed0f9614acf8a3a4fd9fef9f6d4f23a10012102fab0347587093e91152c34429a1d3106b04ee4c2f29803f06930d11f4a08eb53600000000200000001a48c6b85fa94b15d6af9883d5f84bc5bba220afd18990df067e2bd30983829f7000000006a47304402204bca62a7e967f43d6f4c5cc440156f9ae5f63100f65073b1bf6c4e8ba1e0273f02202d8b905c8344a0bf3f28e85dae5e1b202e4802fc5e89e9980bbd4476c211ddbc01210227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3ffdffffff020065cd1d000000002200205b4dfb53f3304a10880548b4ae77c05edbc1b92ffadf898e8ea5922e48dd7712ff79380c01000000225120a5ea779862ce5601bae6ec8fd2c4de16ca64e91caaa6a62d837a60474c161b8982000000", +"00000020792396a78fae05a55d887ae41e10707eb38a2c27091c1052b0e36fd1c6e34c4613ef2648d5ba86f328e7bf512156f1b1ce60a8975831cd9598043b392826f535ed100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028400feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000083000000", +"00000020a24c3f3ccd6e5e437101f1290e313c0a36541b64c22ec996dad6c3d3fbb6d9484305091e9cc1a9d9e4a06133277bcd66fc8dd1f481628ffd83f3d59da0707375ed100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028500feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000084000000", +"0000002007913f670b29716c7b587c35a700323c313f502c03a87478dc5c4b530ac5e349d67be035c1f6bc199f454fdc72abb3a3464367cc3b4fbd82a39c9b3ea68a7f3eee100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028600feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000085000000", +"00000020537e22ee6c04e1742318c9c40b7902d84b81cce6b3dcd0f73dcb2924bf7c46424d4922fd1b3fe98e4aad094f7c791bd975ace22acf734d921c9608df988e4cc8ee100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028700feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000086000000", +"00000020fd75e5bfe02e041f208652b02d34e847efc8d7ac26ff853e5dc830d7111b4c52bebadb070b92217d6a7d7a66c746822ac756ee31ffb2cc48e2df4df696b3a9b5ee100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028800feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000087000000", +"00000020d6fa6f6de16b28b686a9088fb041f4c5008da276109e1c3db917d4478bee7152fb2d9fceeca085a3f86d258b846719c261db8577bcfd7e99d6e2562422780b2fee100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028900feffffff023608062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edff0591ec341ea72a4de1f7f9a739cb6a66fa6206a6232e082bc3abefcb1d74d1012000000000000000000000000000000000000000000000000000000000000000008800000002000000000101373a2a8ed1f2fe90fc91f11a2ed5e3e1b53d7913f09fd2c8fd994f7d3d71374d0100000000fdffffff0500e1f50500000000220020a659119e407acec5101ea8b88d513a3425a48dda512619d35957f4ca6f27802300e1f5050000000022002012d16047d9aabd4108a5635051e6f36331d34066a3acdacfb05719c31fc7b61dc93c7fe2000000002251206ea067b971dcb2d6206bf4bc90da1b0999ed1e2c7b683e4dcfc384485e97ee0600c2eb0b00000000220020cc56f040c6a89ac7c202c1f805a3ee60a4b90fd0b5a4e8611c6caaf23a7a853900a3e11100000000220020d733761ff60d37a9b9854288abad2470cae6b7ac37d48cfa8ab115427de416b00140f15ef8a844954fe1f2794a46ed4e1763d085bf0ab1d2c4e18d0e2d0a793dc5b9baefd70e5e6fae9b0b9e208ecb39ac06894e3932212bd7174395dc38037b43e188000000", +"000000200fee514ba51f73f49983541cbed954c2f4eee146c9b4aed8482617c5dfc46d5482ebb54dc78b1c8ff0e615556daeef70af4cebc9447e5b8b9f1c615efd15ae61ee100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028a00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000089000000", +"00000020b49ed3123b760ad964298bb03636bb61b15b15acd634c606d0f6cd72b7b932642fee289f8573fb290900f0faf8dc8cdf7ff9b797ff4bcc52b0c591492ab33e83ee100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028b00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008a000000", +"000000200dc26db041d9fa1793201115dc8d01f7ba60ef8942684af9d4a92f6f33f3445c1ac9b9f5a3513d2d1f1a5858c72ede5f53f1b54aa7c3dc9689d98d38030f924aef100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028c00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008b000000", +"000000203e3eef1a96e1e133bd5c773c8ba171d34666fa73dbd37269c1087ff04a672347e0fbe28949f2e6f75dc8e5f8205e69d5af6355cb3b4acab280a9d86c4425d5a6ef100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028d00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008c000000", +"0000002023f8b687f76c69a919d24723b43bd49fbcf501bd668a1b29ce90030fb153dd44e49e852ab3a173d1da84247078d0f89cc78acefc29d74835af104fb8c89a5e49ef100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028e00feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008d000000", +"000000208e73565ef7c54eb873c993a55775b27e0040c3a3a3296e7a6e3b862467139134f1abf0670bfa62757e5544304667a658bdfd0bb1493ad3ed3b4a4695b67f49dfef100e6affff7f200000000003020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03028f00feffffff024610062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9edc7c09f30c85b4215d1eedf64228a9b430d2b1e9d688a007deeca07798d5b6702012000000000000000000000000000000000000000000000000000000000000000008e000000020000000001015bd6a871af1559abc1278256111717326653704e5f644532074ad8956941eb780200000000fdffffff0200e1f50500000000220020e8c263d01b353fa1b9a3c6d1ba3cf0f7e83052fccf5115fdf1f5796e2b4e6c1aa94f89dc000000002251207e37198c75ea150e8eabcae55648a388dfc16334b3de7bf1a919fb35ccd0a0d90140b1c96f2d316e92519d69dfc3a46c933fb1ce484fc5890f2c16f2dc8a012164de1eb4ed8bb33e748ae5507f578a7192f6f15c45bdef179d79ad21f531df86dc608e000000020000000001025cd681c087a1a500542d6809a59d1b68a9522bc7cac9dcb4cb3242849f3892cb0100000000fdffffffe358022f444ad1e79866b5e6400c2d38e6f496498a1a1d50310b2191402f40b60000000000fdffffff023e1470eb00000000225120dfbabe8da1133014ca338a28e90ae8e3618ebaa0fa685727911cd648a1dd5cb700e1f5050000000022002068ff53d1799b8593451d3e8e4321e33a361ffc94b73e31dcf1c6f1bd285a15ac0247304402204b324312b586a2099395311559cfb723fae19c998141f05afcf26485c017bdb702204a0190d2d552c9ae07d85d023218e5117c911e02006582590da351038247bb5c0121032249f202c958a7e2077798d084316ab82bf4b3ec78d23f78e493b12e2b91cf900247304402206b924a970863a1a72d551a15faad543b4e77bcf98d1e960bf86ffb4e0d8634b2022052f8eb67e7b596bfb34c000cffff5c8af608def255e07257f6cbf1e958ff31eb0121036995d6c31a9426b9e4b78bd7a02f52e8ce3f31692bff1c657e7784aa85c0d11b70000000", +"000000308ca616ff5734d61c8323f22b1a21c258d7654d46583faff9a07e7d15b4006233b231360a002a52358e645c11b618aa6ee8ea1af5eaa953f7225430788c13bb2def100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029000feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000008f000000", +"0000003089151044fe44ebf4fc4b0127f1b775064abda67f6209763ceed6c24de4188e0ed2173b8a496f44622762f3e43d1f1389e44126a9dd5a986cca1182c4f24bf69bef100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029100feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000090000000", +"00000030372b71cbf187ef2f7988aa11d622925a706a6ce8fac6bd9a88dce5f473a3f10bf74ddce118d77cb3229b5318221fe7c194387d215112635a86d1f6e04be53a77f0100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029200feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000091000000", +"00000030cbc03f02fb0b436f5883859d1ac7a22f4f1b6a48c8e486b75a39518e217a3114f5b83afcee3f89666a2c9ac267a7ac10db8083c7f3b38142ce7e51a7303bb69af0100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029300feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000092000000", +"00000030b846baa588528c50055f45dc2bf289bd29f7cb658720b0d93426a0f239183a132fae5b16097453cfb5804230b9536df1c940a21ce7c00bb09b7b930e535111f1f0100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029400feffffff0200f2052a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000093000000", +"0000003015243e7e0c1da1599bae9306ccf2d3e5dbba9afd362752cfbb58e6191562965b126e81cd4144467260fcc6c324f7089711c41b4c2738066934ca5d0b8676ff97f2100e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029500feffffff027c07062a010000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed5824061e2d6b1f0bb354b90d7aad9415d39c5bc1d8732720166ceb94a069f98f012000000000000000000000000000000000000000000000000000000000000000009400000002000000000102dc17042145bf1a6d8efd801e7bdb43d545ed5875d2bd80e89360cb5b6a7c1d170100000000fdffffff72f07121417f5c172d08422d9d4027fa64a3199662af284a13332bc6ba02b4a30000000000fdffffff0300e1f50500000000220020e8c263d01b353fa1b9a3c6d1ba3cf0f7e83052fccf5115fdf1f5796e2b4e6c1ac06878040000000022002068ff53d1799b8593451d3e8e4321e33a361ffc94b73e31dcf1c6f1bd285a15acc4627d0100000000160014e27f1ec30e5ac3bd7fa933a44b9b74fcd693f38602473044022029858887aa31964317847bac52132826e9dca196fe548f99f688c614bff0cdfc022024d314f519b5911cdccc84d5e15e57dcf481d5192e877553575a16559feacb3e012421020ebd36f9085a608b7b3cbcf0a80f831d4bbfd7dd99973086701f8969fe5d90e2ad510300473044022049f5134baca560a7f22d4f03db1ee46e989bb602cdc23e1e960c09525ceb3e1f022063395841b31b16cc7adf98356a68605462454e45c70078ec19431e11560ceec5014821020ebd36f9085a608b7b3cbcf0a80f831d4bbfd7dd99973086701f8969fe5d90e2ac7c21029ffbe722b147f3035c87cb1c60b9a5947dd49c774cc31e94773478711a929ac0ac9b00000000", +"000000309737030a18ca95bab1211743a7a971d388119e7ba9bc6e269b8a00e88569e65af50c7a9c56d299c3992c7f476d9b177e3dbd290842ff92d1e3a4f7dbf8cfbba1f2100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000095000000", +"00000030c14a26a94c794dae5ddbad7c1a4d96e2a56a7f72f7b438ca78063743d6e3190bdb5b50075b6ae343b3cc24e0006ce5b07db3b2cc00b1eaa952b2b7ddf809452ff2100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000096000000", +"00000030d8d5d6b0813a8ed9e7f58a4db86b581216da1ed05e6b172f1b337999d57db84c666615479c6f8a458e8f2eaaa5f0df67def23ab64cea4ab87822f3597799b126f2100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000097000000", +"000000304eb6dead0afa6dc0621f63e6e4533c827512ec2b47c8043db937fb2508a5620f44f5fd4fd9d0369bd48e6df2853e1fe2746611a04a66ae926e296087ea8708ebf2100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000098000000", +"00000030889c7aa82fa3a108bf1fc9b832f5d3acec3b1820e653cbed010482d76f1da37bf7c3721c9ac8b48de7f8feb415aa8d6a267b67eee602c1134954d0ea81b185d5f2100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029a00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000099000000", +"00000030f6b37a15ead31c8f5eebfb11dcdcf80fb5da14cc16d31a2543f677fdc7219f75ad5f034b70b323e9c9a1e41ae539e3885ec5811f22a5c8e75c6a1b942133eb91f3100e6affff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029b00feffffff02db0b0395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed052e1d59f32f3e9010e964be5706b962d29ef6c33374487a4c14873d4f553d53012000000000000000000000000000000000000000000000000000000000000000009a0000000200000000010172f07121417f5c172d08422d9d4027fa64a3199662af284a13332bc6ba02b4a30100000000fdffffff0400e1f50500000000225120348bdaab8db70bdf0fe70b0366cbd2c378469ee671493cfb3bcc9f01ef87b1ee00c2eb0b0000000022512063dcb4ba49077606dd3f7c122c4f4989db046fcc28a01d499aeef1dae2db200200a3e11100000000225120bae32da4c88083dfbb2826e579d34a1cd83febe301bfb44dc45611f972bf659ccef6c5b80000000022512070a3dabdcfce09ec0bc18d24bf890368bb31222f7fed23d1493a2c81e6a8a28a014087b7a82e5a8b67f3900c01ffa5690a42fc528764ac812d7a2c0db3e55aae404a8f5a60a032ea3b8ff8543f2dcf7b39ee48c2c1c0f948ccd742d3b048c107577b9a000000", +"00000030a8db1c39a80dc8af041306cc1381bfd145677ae48f6ce7615e634f92df9acb4daf28f01f8fd4c8562851c3c671c02d0eb0199cfcbe6dabd00ebb7f3d64c8afb9f3100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029c00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009b000000", +"0000003086991a53214c1c271adacb3ee272d049a598fcf247e969a3ace9a44e50150f5e0a181072c386db27ba496b64a2f795696f3434466258698803959b8fdfb51404f3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029d00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009c000000", +"0000003063ea8a959f6d12244b45d1791c739e5bede2708e8f58b8b9deffcd44de8e802ff857a99f1c75c14cec774fdfb0d3df0a49b74df84d7df611619bcd77b37476aef3100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029e00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009d000000", +"0000003086d58b62c36ff1b79ce985e7c44d1d54e9a18ee9c7380d914ca63fcea591dd3512883e9e753b013fe3f2d8b03c725e35b4ebb41411f42bbcf89768e9828df6d2f3100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03029f00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009e000000", +"00000030b945d26e39f311f22410d64d43e11c572c0bacafffdcbbf82d89dac6de97a466808ff6404c00a4d0de6512513cc2daf1a733214a7f4285f440c0d54768a1b36af3100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a000feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9012000000000000000000000000000000000000000000000000000000000000000009f000000", +"00000030c54279bf2b5641b7a8034759178b378cab77f035ea9b568c3d23c77403b3570bff275b01b9b7a2e3e2418948b32c22b9545fca127dbff8fee64cecfd02bdf6e0ff100e6affff7f200300000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a100feffffff022c040395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed994e4557adf13fef1b6c6df17aea6e5016181c456a668d49fe3a5f305d11ce7901200000000000000000000000000000000000000000000000000000000000000000a000000002000000000101e745368c6c4fda9b9134eca91fdf3e10d463c779647037aa2c17f6101490062f0000000000fdffffff0254e5fa02000000001600147907132f32c142950815317e4399dc56e2808fd080f0fa0200000000225120348bdaab8db70bdf0fe70b0366cbd2c378469ee671493cfb3bcc9f01ef87b1ee014051cf689739ecc919b1c1a94892cccf8cefadb86ad88e963ffd7ae6559ff7220191ec9263bd9f4828245f97197e8e4469533d10a5874129bf4014b5624dd22fb800000000", +"00000030e04578850f74bad11d992872c4ffd8412bdd9856d38890ce917364c0aacef6757f94d93d1f042175df29c1f12babddf7b14c251d40e4344806b00bcbe9724333ff100e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a200feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a1000000", +"00000030c5505b6ca36a3f05994e66add9759fa7a0fa37d8efeeb28deb7a2adde803b0599c2ed1a53d20d7b795178feb5b0bc21e420969987cc1e2034e7934effb2d444fff100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a300feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a2000000", +"0000003005654f5af001d12380805421c9a8bcf697d1780fdc8748eb0ef3cf43534e2a6cc47a815cdb2c0a37f2a7607d36d1f6c87389e101d6bc8171e6867ae64a4c4a95ff100e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a400feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a3000000", +"000000302421897107384f4cf4980cb66626d50f142ab2a2f2e7451c5f0e1dbf4a148a3ebe8a331275762703352353de92448b7c5136a5a148c2efdcb36a836fbe6fe918ff100e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a500feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a4000000", +"00000030e7bd66bb173cfc1ab9a0b0fbec4db0625beefc505a0329c159f7e1c66e85e07fdc63cb909c9fa1daaf8db120424fd94748234d0f0187ba5c81eab0b19b08b747ff100e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a5000000", +"0000003076f9ba4e52a578219a4288d2b82f101cd3bf9c6d588aafbe3f572b882d216862a4b939c6303d1e99b98f46880b0a5df0ac3786fe69d9e94b9684fb4ca8a5ae8f00110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a6000000", +"0000003005037f2ffdab000355145e196d1e4f1fc190f226d05bb0901159eb6ccf2c666e36d3c07804bc526a7698fb93ca20facd4a174762000f380b2ca3548d3a3ffc2400110e6affff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a7000000", +"000000300a3ede9fe6590e044e5e22c3fb69a3c5e53df229c20a2b94dd269805236e1964c33511b94f2e5eb5fb9f1afbff3b00f0426a066f643a30aca6120f3eb8be0c8800110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302a900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a8000000", +"000000307d813120c4f27dd498b8da7f204c26fcfb502c94127fd88ef1db7688c88bd32cb925a601ba6613f59049d62e542a89c731cb2c622be77ee482818cde559f6db400110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302aa00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000a9000000", +"0000003091c85adc1e3b4c53b533c59c06cb1466de4eb9e64aca16f291c1ac50a0b0e44b3bd632ea9f2fc7cc94cb09cc36bfa65346694976f9853870abe4c21f067eecae00110e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ab00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000aa000000", +"00000030ceba3e05c0cc80af461c679bbbcb5f80d1b0d1ba2034c9a8b81e4f6ca483074f58e5cf1b2deb4c12f8851a2dd1e198245f5ee5d7a55208ade34ac60360e9ed7d00110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ac00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ab000000", +"000000307f48f9f4bd29165d27b60e84e2fbebdfc5a0db7425eb51e5a582235d51170f4178dc040b91bcf43971c5481c7260ae8cdbffe41c70b4ea39d31a4640241a2b6901110e6affff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ad00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ac000000", +"000000300b66394cba6df59f4be16944a8d01bf050ca22f51052cae7212ee29830e52b1d2d72b3f19f2d522bd4c01e6a20c43161ca0e4bc378b98ad8a33f90ce8ee6edc201110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ae00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ad000000", +"00000030fc07716e36a5e200daca55834c592e022ecd410af2159d5116b027fd9861a570c78034dd7a2a92dc69dec1a49f79a41f1ca3aa51e008a3c70140467ccac2cb4001110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302af00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ae000000", +"00000030750f60b1993dd5ac841ddaf329d278d1ea988d0b2f0a50b3e17e9b31b6c64b46bad2c0960a1eede776f850fd11ea817569d07a06d754b8998e44fefc38b7536901110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b000feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000af000000", +"00000030c29a1d224b50b5c89209c7d916f0e7fad72de9a88fead7f9d48e4698e18f9a45834637eea4373b005441a127cfca038e6c52df894f6c709557e3372b78be06e901110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b100feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b0000000", +"00000030a3ffca59c306c4e1e4f3c2cb5ab96cb44660cbe0457cd00846fbf9c88073b402158756b77e0043ec5825553ac9cd86249db27e51e3eb04fc2cf905e50efbaf0e01110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b200feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b1000000", +"000000301b04872982ad49397a8c6d01ec20a9e4022e608a07343b2a6e2d9c864baf590101ff082e29028c7fe6457903f3c5edf75e5259bdd427d672efed5b14e47f5eb602110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b300feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b2000000", +"000000300a1beecb2cbfb99c0ed4c7420fcfdceeb8c0d26713885ea45825b9a87a836c38969dc8513c20c1fb34c22ad08d57dd277a8ad1e851bee389d6da526c2ae8d5e702110e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b400feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b3000000", +"000000308b42fa755fa49121035c08939341cbff8a429b81c48fee84759dd7a8f6eaa00a07758618581420039216e6840ca689668df66ddda584815e85cd4e94892c05be02110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b500feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b4000000", +"0000003002f237e7d032fe3f5706066428430560c817a9177bebbe17e743ff662264c442a689ad951fcb5c7dc9dcf35de013ccdf72faff80f79b2ef8b446cf4f2ec685f602110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b5000000", +"0000003026f5cf05c09ada07441ebd3df2f6b1cfcf8e6efde699d06ebddf0db17b48170eb61ddb8b7b6c6b83cb819f29c1bbe9f5e699c45d67872d06b8f397f7ad5f87cb02110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b6000000", +"00000030b9f3b3740dd9e05afdecad568c0dc0089fd0c073ddf37582cad978a9c5bacd611d52c334166d28655f8d359ad836b53ff00c294397be35810614951c721dcc9602110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b7000000", +"00000030ed6f465612cb47bc1b0f0b55298d64359288e8ea4f4cb0f2b5f20dba934ae904117497f9ee014f773521edb8bc18f9ec4bdf57dc9badfc988662509966bd734a03110e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302b900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b8000000", +"0000003035bb336c8ad721bacdf4ac3e6b2e65d519a038122c1f3202ba3edaf0dc5e9734139642435de386aa440b2ffdb573bb98cec992f05797018a3ee0b818eb7b856203110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ba00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000b9000000", +"00000030da21ed1aa8e129f6a282305e7572b2edb25ec3b6c8a3f1126ac0daa7c4732f1a57ba74d69c85e1dee8342feac97f45659644bddc30224099b19ae274b4a2da5303110e6affff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bb00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ba000000", +"00000030e0b2af8d69f5fb2f3e6457605926cc304d79c62385eba021742f5344aeb90b194a07c612fb0c6ed62d6c007c3b4755043e798ae0899075c2796773dc9210bf2803110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bc00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bb000000", +"000000302001ba0173b7f2865a7bcfd78ae09b5883743bbd39ed79fc46ea667e3e0e8131a540d0f418d609c9cde776e33518b6957f9ae73ff48acd2a01eb6e6409d3062103110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bd00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bc000000", +"00000030555412ca2f7fcbaec62795beefcc5c03b8a83d13ee5c55fac4ff5ed2bf832648743844533bf1b2af6383b21359de273540b92c135fdda421a92b4520bdb2646403110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302be00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bd000000", +"0000003021aad413b02ac80b992290f5c44ad1cd403af92c23a74e9e30c7aa5104eef10342758b8961e60f0ca8d4fea3680f4ac573f6ac6478c4096ad2c1081a9f9b66e504110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302bf00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000be000000", +"000000305d265de4dc6bd166d9e5429686940ec2f2c469e6136d0c7a13f03565e9841d35472431cab600e43dd3b744da6b56709dd9c6311d21c8bce5d452f8845137184c04110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c000feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000bf000000", +"000000304e1e1e596928aac44a068a263823030859e6a30f3fe11652bf2da8aa0b732f7937c93ebc99d7e53794993df4aa6c5b5ca81f2c0d53032adfef3bef16f9982f0604110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c100feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c0000000", +"00000030bc6df3737b42dd109d088ef5898ed10179faec89d1ba94b38cd192c338cd36089fe67454081b0c08d2ff9a2aa873a708a3213754727ac7c4972c25d9b45b249804110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c200feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c1000000", +"000000309380624d711df058952aff0af1b4427134a3849111e70fa15aa86414e1d69f384f75a19d8fb9aebbe36326f3cdc1cec57e357cc5986467794a45f49bbdc70bf304110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c300feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c2000000", +"000000307b581de84f54773af5dd7178f710a01ccb9ab144e91db3a0165a39cfae49ae2dfd67fd16de4d926c6c76268330e664103bed5c19ba93c3333b027b2fc7fff62004110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c400feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c3000000", +"00000030f05121c30144af24ac2c026cb784bce883bdc65748fc3b0f67a27e030cfac16b82ca6668a3879b42c8ade2e237bfd0d3572b9811eb4104d0d8f6f7f712d23ccd05110e6affff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c500feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c4000000", +"0000003073f8786690618560f223f32d0a805d32fc0f1203575dd5e51215f8cafced13435f33ea220110edd2566762b5ed3d5cc8ee4a86f8f3cc3b5dda33c5951544f0c205110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c600feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c5000000", +"000000300ed51fce02fd57091777896eb1b2216f8ec689bd67f37787505fd812dbc61f75e028d8c70d2d753ea0ecbd91975c250b11c9898606856de5fd9704910b83dfb905110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c700feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c6000000", +"00000030415bc5f05df226e2c6b36325c5c10e70d8268c4e59ae03be465aa1ce7ccc8d386494432be49c30a12af3d4d8dad26cf9c545cf8ff33e644515d1be68e2a9f1f105110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c800feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c7000000", +"000000303aa04b95cfe5375101ffcef31279e4c3b7d6c817a9f3933031efc6b0c63aa4783aa7a37e39d55c3454932263c92ccb488543e6881268fcce96eb0df30d688b8d05110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302c900feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c8000000", +"0000003089bea591f2a36abc8b9c3a795a476ba072b3b815849aa2b0b1ea45de0831bc5268a5d9eb173c66b07a6107809a098b1fe6b1b93c32dc6902ada2ae7af1b3776305110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ca00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000c9000000", +"000000300606230798637839aa25460ec66aa3a62d5fbfb12cda61eeb8c19d7512449e32fabb03b8c364246e80ea5f8f721c5a083e0f941ae4b7e681ea17caf2daf2ca5806110e6affff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302cb00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000ca000000", +"0000003044247f0e280d232be97a8e07c3e9f4097de339a3bf81d018c2a639b54c6e6825b5a12819c79f70e41bcdeeb274eac663dbe0f2f4278bf78828d85d10416698d206110e6affff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302cc00feffffff0200f90295000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf901200000000000000000000000000000000000000000000000000000000000000000cb000000", +"0000003082a05ee73b3c345f74515dd7bc3cdf061835387c261e5dfac8395e01772db903082fd51b06b96e43ab074abbfca5f6f518cd175277189397ada068e0a3577bba06110e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302cd00feffffff0241030395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed13f11444bf728589721cd0799831733abad56be9a33932cb3e79fa4353dd59bf01200000000000000000000000000000000000000000000000000000000000000000cc00000002000000000101e745368c6c4fda9b9134eca91fdf3e10d463c779647037aa2c17f6101490062f0300000000fdffffff0200e1f505000000001600148239827d894ad1bce050a83b0ac6cfab8b99670e8d0bd0b2000000001600143c4ec2a32cf8472f16242566b2f614e30977bce90140fb86ceba6ec1c3fea6ccf6daef2613a878282b5436699a906eeda64e0d9fe456d3ed15172bbeaf7a381dd4684265610599a98d51c5e58a0ed816101ef1e41bc3cc000000", +"000000305c93f992d6040ecb3e1164cc11d6463fa4eb05d850cead2777a2ea37159b2d5f4b9fdb61be7d374f42b9a21132752eba23eeebb8c0fa6d50cdf55053883c6ab106110e6affff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0302ce00feffffff0241030395000000001976a9142b4569203694fc997e13f2c0a1383b9e16c77a0d88ac0000000000000000266a24aa21a9ed19a31ce10a3dbf46e11da3687a1ccf18782c81a5ae087bdbdcb91718295f72b401200000000000000000000000000000000000000000000000000000000000000000cd00000002000000000101dc17042145bf1a6d8efd801e7bdb43d545ed5875d2bd80e89360cb5b6a7c1d170000000000fdffffff02fd287ae500000000160014a0538caa44b128c31f7d90d357cac16efcce1b6e00e1f505000000001600149316ed6ef4fd7a44a402626a6be44b85ec729fcb01403637f36c8da16b37fa9632ad8a701853e4ff4a4f8058f6eda8b13738af3595dad053296a938cc6ae0cccffbd7079b0f21c16d810264e57f807c6598f4a5ba009cd000000", }; #endif // BITCOIN_TEST_KERNEL_BLOCK_DATA_H diff --git a/src/test/kernel/test_kernel.cpp b/src/test/kernel/test_kernel.cpp index f6bf5a2c788d..e6d215dc5784 100644 --- a/src/test/kernel/test_kernel.cpp +++ b/src/test/kernel/test_kernel.cpp @@ -1219,15 +1219,15 @@ BOOST_AUTO_TEST_CASE(btck_chainman_regtest_tests) // Validate coin properties TransactionOutputView output = coin.GetOutput(); uint32_t coin_height = coin.GetConfirmationHeight(); - BOOST_CHECK_EQUAL(coin_height, 205); - BOOST_CHECK_EQUAL(output.Amount(), 100000000); + BOOST_CHECK_EQUAL(coin_height, 143); + BOOST_CHECK_EQUAL(output.Amount(), 3949990974); // Test script pubkey serialization auto script_pubkey = output.GetScriptPubkey(); auto script_pubkey_bytes{script_pubkey.ToBytes()}; - BOOST_CHECK_EQUAL(script_pubkey_bytes.size(), 22); + BOOST_CHECK_EQUAL(script_pubkey_bytes.size(), 34); auto round_trip_script_pubkey{ScriptPubkey(script_pubkey_bytes)}; - BOOST_CHECK_EQUAL(round_trip_script_pubkey.ToBytes().size(), 22); + BOOST_CHECK_EQUAL(round_trip_script_pubkey.ToBytes().size(), 34); for (const auto tx_spent_outputs : block_spent_outputs.TxsSpentOutputs()) { for (const auto coins : tx_spent_outputs.Coins()) { From 05df6beb9131f19c18c58cdc79cecd22f2949f88 Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 21 May 2026 11:34:25 +0100 Subject: [PATCH 07/12] Merge bitcoin/bitcoin#35270: doc: Document minimum versions for Xcode CLT and MSVC fa3d7ce11c68573fe2e10c400f12a0193fcf2a80 doc: Document minimum versions for Xcode CLT and MSVC (MarcoFalke) Pull request description: The minimum required Xcode command-line tools version was not documented, which can lead to confusion. So document it in `doc/dependencies.md` (along with adding a note one msvc there as well). This also allows to slim down the error message in the configure C++ feature check by referring to `doc/dependencies.md#compiler`. ACKs for top commit: polespinasa: reACK fa3d7ce11c68573fe2e10c400f12a0193fcf2a80 l0rinc: ACK fa3d7ce11c68573fe2e10c400f12a0193fcf2a80 Tree-SHA512: daa594e39c94f615888b2dfbf7cb8d9f7d16e5539f18a6ee57686b8364de27533f603c2324c5e213504d55a2dce86469254bfce5c0d2af7be059348bceb1d25b (cherry picked from commit ecf20317cb5f8def1daf3eb27bc17a0605a0661f) --- CMakeLists.txt | 9 +-------- cmake/module/CheckCXXFeatures.cmake | 8 +++----- doc/build-osx.md | 4 +++- doc/dependencies.md | 4 +++- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 280a61f12acb..788f0adfc946 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,9 +80,6 @@ if(CMAKE_VERSION VERSION_LESS 4.2 AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NO set(CMAKE_INSTALL_NAME_TOOL "${CMAKE_COMMAND} -E true") endif() enable_language(CXX) -set(MIN_CLANG_DOCS "doc/dependencies.md#compiler") -set(MIN_GCC_DOCS "doc/dependencies.md#compiler") -set(MIN_MSVC_DOCS "doc/build-windows-msvc.md") set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -153,11 +150,7 @@ string(APPEND CMAKE_CXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}") string(APPEND CMAKE_CXX_CREATE_SHARED_LIBRARY " ${APPEND_LDFLAGS}") string(APPEND CMAKE_CXX_LINK_EXECUTABLE " ${APPEND_LDFLAGS}") -#============================= -# C++ Feature Detection -#============================= -# In case the compiler is not GCC, Clang or MSVC this provides extra checks -# which verify that some features are available in the standard library. +# Check required C++ toolchain features early. include(CheckCXXFeatures) check_cxx_features() diff --git a/cmake/module/CheckCXXFeatures.cmake b/cmake/module/CheckCXXFeatures.cmake index b3760a7ee46b..fde630e30d09 100644 --- a/cmake/module/CheckCXXFeatures.cmake +++ b/cmake/module/CheckCXXFeatures.cmake @@ -4,7 +4,7 @@ include_guard(GLOBAL) -#Checks for C++ features required to compile Bitcoin Core. +# Checks for C++ features required to compile Bitcoin Core. include(CheckCXXSourceCompiles) @@ -33,10 +33,8 @@ function(check_cxx_features) "Compiler lacks Class Template Argument Deduction (CTAD) for aggregates.\n" "This C++ feature is required for src/util/overloaded.h.\n" "You are probably using an old compiler version\n" - "The recommended compiler versions can be checked in:\n" - " - GCC -> ${MIN_GCC_DOCS}\n" - " - Clang -> ${MIN_CLANG_DOCS}\n" - " - MSVC -> ${MIN_MSVC_DOCS}\n" + "The recommended compiler versions can be checked in\n" + "doc/dependencies.md#compiler.\n" ) endif() diff --git a/doc/build-osx.md b/doc/build-osx.md index f1287c4a7f22..fe3adf1354a0 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -16,7 +16,9 @@ macOS comes with a built-in Terminal located in: ### 1. Xcode Command Line Tools The Xcode Command Line Tools are a collection of build tools for macOS. -These tools must be installed in order to build Bitcoin Core from source. +Version 16.2 (or higher) of these tools must be +[installed](https://developer.apple.com/documentation/xcode/installing-the-command-line-tools) +in order to build Bitcoin Core from source. To install, run the following command from your terminal: diff --git a/doc/dependencies.md b/doc/dependencies.md index e687d127a21e..dded02b9c4b4 100644 --- a/doc/dependencies.md +++ b/doc/dependencies.md @@ -8,10 +8,12 @@ them using [depends](/depends/README.md). Bitcoin Core requires one of the following compilers. -| Dependency | Minimum required | +| Toolchain | Minimum required | | --- | --- | | [Clang](https://clang.llvm.org) | [17.0](https://github.com/bitcoin/bitcoin/pull/33555) | | [GCC](https://gcc.gnu.org) | [12.1](https://github.com/bitcoin/bitcoin/pull/33842) | +| [Xcode CLT](/doc/build-osx.md) | [16.2](https://github.com/bitcoin/bitcoin/pull/33932) | +| [MSVC](/doc/build-windows-msvc.md) | [18.3](https://github.com/bitcoin/bitcoin/pull/33861) | ## Required From 0154fda727c73880b64a8aa24ada9dbfce58f3e6 Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 21 May 2026 12:18:27 +0100 Subject: [PATCH 08/12] Merge bitcoin/bitcoin#32220: cmake: Get rid of undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3142e5f8cf41e3e7fe3eee963cc696765443368e doc: Add release notes for #32220 (Hennadii Stepanov) b71cd5c1622faf2b00507674c3c0a04522180d09 cmake: Skip using git when building from source tarball or as subproject (Hennadii Stepanov) fe941938e84ebacf9ece47dab2bd45d5a292b9f3 cmake: Remove unnecessary `BITCOIN_GENBUILD_NO_GIT` environment variable (Hennadii Stepanov) 9a2cced23a6904fe03df92ca32c1ae98753440c7 cmake, refactor: Move `find_package(Git)` to `src/CMakeLists.txt` (Hennadii Stepanov) Pull request description: In general, the Bitcoin Core build system attempts to fetch commit or tag details from git. This is handled by the [`cmake/script/GenerateBuildInfo.cmake`](https://github.com/bitcoin/bitcoin/blob/master/cmake/script/GenerateBuildInfo.cmake) script, which generates the [`src/bitcoin-build-info.h`](https://github.com/bitcoin/bitcoin/blob/65dcbec75661d1652beb927f03b1feab4fab932e/src/clientversion.cpp#L26-L31) header within the build tree. However, there are cases where the retrieved details may be incorrect—for example, when building from a source tarball or as a subproject within a git-aware project. In the Autotools-based build system, the `BITCOIN_GENBUILD_NO_GIT` environment variable was [introduced](https://github.com/bitcoin/bitcoin/pull/7522) in [v0.20.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.20.0.md) to address such scenarios: > The process for generating the source code release ("tarball") has changed in an effort to make it more complete, however, there are a few regressions in this release: > - Instead of running `make` simply, you should instead run `BITCOIN_GENBUILD_NO_GIT=1 make`. This PR automagically handles both of the aforementioned cases and removes the need for `BITCOIN_GENBUILD_NO_GIT`. The user is still able to configure the build with [`-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON`](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html) to disable git execution manually, for [reasons](https://github.com/bitcoin/bitcoin/pull/32220#issuecomment-2780115034) we don't know in advance. Closes https://github.com/bitcoin/bitcoin/issues/31999. ACKs for top commit: maflcko: review ACK 3142e5f8cf41e3e7fe3eee963cc696765443368e 🥄 fanquake: ACK 3142e5f8cf41e3e7fe3eee963cc696765443368e - tested a few different build scenarios (from Guix the tarball), they all seem to work as intended. Tree-SHA512: 14995dc76fc680cff2bbc983d525125b39f49397e8ed94fffab29de505723a8e2f7f261c1a7ca88d98776755ccf63e59a32c476e112683f5cc1c016a7cfede94 (cherry picked from commit 211e1053bfd249e2a4e09d5f7115af57f80ab3b8) --- .gitattributes | 1 + cmake/script/GenerateBuildInfo.cmake | 105 +++++++++++++-------------- doc/release-notes-32220.md | 9 +++ src/CMakeLists.txt | 8 +- 4 files changed, 68 insertions(+), 55 deletions(-) create mode 100644 doc/release-notes-32220.md diff --git a/.gitattributes b/.gitattributes index c9cf4a7d9cd0..25303e742a76 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ src/clientversion.cpp export-subst +src/CMakeLists.txt export-subst diff --git a/cmake/script/GenerateBuildInfo.cmake b/cmake/script/GenerateBuildInfo.cmake index d3ee2eb06210..62773a3a5439 100644 --- a/cmake/script/GenerateBuildInfo.cmake +++ b/cmake/script/GenerateBuildInfo.cmake @@ -5,7 +5,7 @@ macro(fatal_error) message(FATAL_ERROR "\n" "Usage:\n" - " cmake -D BUILD_INFO_HEADER_PATH= [-D SOURCE_DIR=] -P ${CMAKE_CURRENT_LIST_FILE}\n" + " cmake -D BUILD_INFO_HEADER_PATH= -D GIT_EXECUTABLE= [-D SOURCE_DIR=] -P ${CMAKE_CURRENT_LIST_FILE}\n" "All specified paths must be absolute ones.\n" ) endmacro() @@ -28,72 +28,69 @@ else() set(WORKING_DIR ${CMAKE_CURRENT_SOURCE_DIR}) endif() -set(GIT_TAG) -set(GIT_COMMIT) -if(NOT "$ENV{BITCOIN_GENBUILD_NO_GIT}" STREQUAL "1") - find_package(Git QUIET) - if(Git_FOUND) +set(GIT_TAG "") +set(GIT_COMMIT "") +if(GIT_EXECUTABLE) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_VARIABLE IS_INSIDE_WORK_TREE + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if(IS_INSIDE_WORK_TREE) + # Clean 'dirty' status of touched files that haven't been modified. + execute_process( + COMMAND ${GIT_EXECUTABLE} diff + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_QUIET + ERROR_QUIET + ) + execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree + COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE IS_INSIDE_WORK_TREE + OUTPUT_VARIABLE MOST_RECENT_TAG OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) - if(IS_INSIDE_WORK_TREE) - # Clean 'dirty' status of touched files that haven't been modified. - execute_process( - COMMAND ${GIT_EXECUTABLE} diff - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_QUIET - ERROR_QUIET - ) - execute_process( - COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE MOST_RECENT_TAG - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-list -1 ${MOST_RECENT_TAG} + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_VARIABLE MOST_RECENT_TAG_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-list -1 ${MOST_RECENT_TAG} - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE MOST_RECENT_TAG_COMMIT - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse HEAD + WORKING_DIRECTORY ${WORKING_DIR} + OUTPUT_VARIABLE HEAD_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + execute_process( + COMMAND ${GIT_EXECUTABLE} diff-index --quiet HEAD -- + WORKING_DIRECTORY ${WORKING_DIR} + RESULT_VARIABLE IS_DIRTY + ) + + if(HEAD_COMMIT STREQUAL MOST_RECENT_TAG_COMMIT AND NOT IS_DIRTY) + # If latest commit is tagged and not dirty, then use the tag name. + set(GIT_TAG ${MOST_RECENT_TAG}) + else() + # Otherwise, generate suffix from git, i.e. string like "0e0a5173fae3-dirty". execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse HEAD + COMMAND ${GIT_EXECUTABLE} rev-parse --short=12 HEAD WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE HEAD_COMMIT + OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) - - execute_process( - COMMAND ${GIT_EXECUTABLE} diff-index --quiet HEAD -- - WORKING_DIRECTORY ${WORKING_DIR} - RESULT_VARIABLE IS_DIRTY - ) - - if(HEAD_COMMIT STREQUAL MOST_RECENT_TAG_COMMIT AND NOT IS_DIRTY) - # If latest commit is tagged and not dirty, then use the tag name. - set(GIT_TAG ${MOST_RECENT_TAG}) - else() - # Otherwise, generate suffix from git, i.e. string like "0e0a5173fae3-dirty". - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --short=12 HEAD - WORKING_DIRECTORY ${WORKING_DIR} - OUTPUT_VARIABLE GIT_COMMIT - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) - if(IS_DIRTY) - string(APPEND GIT_COMMIT "-dirty") - endif() + if(IS_DIRTY) + string(APPEND GIT_COMMIT "-dirty") endif() endif() endif() diff --git a/doc/release-notes-32220.md b/doc/release-notes-32220.md new file mode 100644 index 000000000000..c25271571554 --- /dev/null +++ b/doc/release-notes-32220.md @@ -0,0 +1,9 @@ +### Build System + +- The undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable is no longer + required and has been removed. The build system now automatically detects + when it is being built from a source archive or as a subproject of a git-aware + parent project and skips git metadata fetching. + + Users who need to disable git execution explicitly can still do so by + configuring with `-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON`. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7bfa5a89bcfa..9e59533eccdd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,9 +37,15 @@ if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) endif() +set(IS_SOURCE_TARBALL FALSE) +# git will expand the next line to "set(IS_SOURCE_TARBALL TRUE)" inside archives: +#$Format:%nset(IS_SOURCE_TARBALL TRUE)$ +if(NOT IS_SOURCE_TARBALL AND PROJECT_IS_TOP_LEVEL) + find_package(Git QUIET) +endif() add_custom_target(generate_build_info BYPRODUCTS ${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h - COMMAND ${CMAKE_COMMAND} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateBuildInfo.cmake + COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateBuildInfo.cmake COMMENT "Generating bitcoin-build-info.h" VERBATIM ) From 2a63f69878cf3fe43cd560d26c22db666ec47983 Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 21 May 2026 15:03:49 +0100 Subject: [PATCH 09/12] Merge bitcoin/bitcoin#34887: fuzz: target CDBWrapper b63ef20d545f739f9def814155c0eb95c85c0b85 test: add fuzz harness for CDBWrapper (Andrew Toth) 32169c3855ff2f5bbf62662f036d70a956d89f6b dbwrapper: accept optional testing leveldb::Env in DBParams (Andrew Toth) 8d390c93fc58633d1bcd3b6514d92dd49559a508 dbwrapper: make max_file_size a configurable DBParams field (Andrew Toth) Pull request description: Inspired by https://github.com/bitcoin/bitcoin/pull/34866#issuecomment-4090291488. We currently don't have a dedicated harness targeting `CDBWrapper`. OSS-Fuzz has a [rudimentary harness](https://github.com/google/oss-fuzz/blob/master/projects/leveldb/fuzz_db.cc) for levelDB [which fails](https://issues.oss-fuzz.com/issues/447252244), so doesn't appear maintained. This PR adds a harness targeting `CDBWrapper` against an in-memory oracle to verify correctness. A `DeterministicEnv` wraps levelDB's `memenv` to eliminate non-determinism by capturing background compaction and running it at fuzzer-chosen points. The fuzzer also controls the cache_bytes and max_file_size sizes so that small values trigger memtable flushes and compaction. ACKs for top commit: l0rinc: code review ACK b63ef20d545f739f9def814155c0eb95c85c0b85 marcofleon: ACK b63ef20d545f739f9def814155c0eb95c85c0b85 dergoegge: utACK b63ef20d545f739f9def814155c0eb95c85c0b85 sedited: ACK b63ef20d545f739f9def814155c0eb95c85c0b85 Tree-SHA512: da1f738ec90c49830a05b8990bdaa474299b573e966e60f4febef1292d9682f2e50f0016831f26bf4677e5afdaa142dc8766d871c6bce90d35f1695d480ac8c1 (cherry picked from commit bd0942bbd9818afc91ec551c259234a7d984b12c) --- src/dbwrapper.cpp | 14 +- src/dbwrapper.h | 10 + src/test/fuzz/CMakeLists.txt | 1 + src/test/fuzz/dbwrapper.cpp | 325 ++++++++++++++++++++++++++++++ test/sanitizer_suppressions/ubsan | 1 + 5 files changed, 347 insertions(+), 4 deletions(-) create mode 100644 src/test/fuzz/dbwrapper.cpp diff --git a/src/dbwrapper.cpp b/src/dbwrapper.cpp index 3743d4348203..7f6c10beae31 100644 --- a/src/dbwrapper.cpp +++ b/src/dbwrapper.cpp @@ -150,7 +150,6 @@ static leveldb::Options GetOptions(size_t nCacheSize) // on corruption in later versions. options.paranoid_checks = true; } - options.max_file_size = std::max(options.max_file_size, DBWRAPPER_MAX_FILE_SIZE); SetMaxOpenFiles(&options); return options; } @@ -229,16 +228,23 @@ CDBWrapper::CDBWrapper(const DBParams& params) DBContext().syncoptions.sync = true; DBContext().options = GetOptions(params.cache_bytes); DBContext().options.create_if_missing = true; - if (params.memory_only) { + DBContext().options.max_file_size = params.max_file_size; + assert(!(params.testing_env && params.memory_only)); + if (params.testing_env) { + DBContext().options.env = params.testing_env; + } else if (params.memory_only) { DBContext().penv = leveldb::NewMemEnv(leveldb::Env::Default()); DBContext().options.env = DBContext().penv; - } else { + } + if (!params.memory_only) { if (params.wipe_data) { LogInfo("Wiping LevelDB in %s", fs::PathToString(params.path)); leveldb::Status result = leveldb::DestroyDB(fs::PathToString(params.path), DBContext().options); HandleError(result); } - TryCreateDirectories(params.path); + if (!params.testing_env) { + TryCreateDirectories(params.path); + } LogInfo("Opening LevelDB in %s", fs::PathToString(params.path)); } // PathToString() return value is safe to pass to leveldb open function, diff --git a/src/dbwrapper.h b/src/dbwrapper.h index 51775ee63655..edbe69cef14b 100644 --- a/src/dbwrapper.h +++ b/src/dbwrapper.h @@ -20,6 +20,10 @@ #include #include +namespace leveldb { +class Env; +} // namespace leveldb + static const size_t DBWRAPPER_PREALLOC_KEY_SIZE = 64; static const size_t DBWRAPPER_PREALLOC_VALUE_SIZE = 1024; static const size_t DBWRAPPER_MAX_FILE_SIZE{32_MiB}; @@ -45,6 +49,12 @@ struct DBParams { bool obfuscate = false; //! Passed-through options. DBOptions options{}; + //! If non-null, use this as the leveldb::Env instead of the default. + //! Caller retains ownership. + leveldb::Env* testing_env = nullptr; + //! Maximum LevelDB SST file size. Larger values reduce the frequency + //! of compactions but increase their duration. + size_t max_file_size = DBWRAPPER_MAX_FILE_SIZE; }; class dbwrapper_error : public std::runtime_error diff --git a/src/test/fuzz/CMakeLists.txt b/src/test/fuzz/CMakeLists.txt index ebb51b08c4aa..feaaab49efb3 100644 --- a/src/test/fuzz/CMakeLists.txt +++ b/src/test/fuzz/CMakeLists.txt @@ -39,6 +39,7 @@ add_executable(fuzz crypto_hkdf_hmac_sha256_l32.cpp crypto_poly1305.cpp cuckoocache.cpp + dbwrapper.cpp decode_tx.cpp descriptor_parse.cpp deserialize.cpp diff --git a/src/test/fuzz/dbwrapper.cpp b/src/test/fuzz/dbwrapper.cpp new file mode 100644 index 000000000000..13fff136aeef --- /dev/null +++ b/src/test/fuzz/dbwrapper.cpp @@ -0,0 +1,325 @@ +// Copyright (c) The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + +/** + * A leveldb::Env that wraps a memenv and captures scheduled background + * work (compaction) instead of dispatching to a real thread. The fuzz + * harness calls RunOne() or DrainWork() at fuzzer-chosen points to + * execute it, giving deterministic control over when compaction + * interleaves with foreground operations. + * + * Deadlock prevention: LevelDB's MakeRoomForWrite blocks on a condition + * variable when the previous immutable memtable is still awaiting compaction, + * or when the L0 file count hits kL0_StopWritesTrigger. Since both conditions + * can only be resolved by the (deferred) background work, the harness drains + * all pending work before every write to avoid a single-threaded deadlock. + * Callers must also DrainWork() before destroying the CDBWrapper, since the + * leveldb destructor waits for any pending background work to complete. + * + * The same reasoning rules out exercising DBOptions::force_compact under + * this env, because CompactRange(nullptr, nullptr) blocks waiting for + * background work that is queued on the (blocked) foreground thread. The + * sibling dbwrapper_threaded target covers that path. + */ +class DeterministicEnv final : public leveldb::EnvWrapper +{ + using WorkFunction = void (*)(void*); + + struct Work { + WorkFunction function; + void* arg; + }; + + std::deque m_queue; + +public: + explicit DeterministicEnv(leveldb::Env* base) : EnvWrapper(base) {} + + void Schedule(WorkFunction function, void* arg) override + { + m_queue.push_back({function, arg}); + } + + /** Execute one pending background task. The task may schedule a + * successor which is left pending for a later call. */ + bool RunOne() + { + if (m_queue.empty()) return false; + const Work work{m_queue.front()}; + m_queue.pop_front(); + work.function(work.arg); + return true; + } + + /** Execute pending background tasks until none remain. */ + void DrainWork() { while (RunOne()) {} } +}; + +constexpr size_t MAX_VALUE_LEN{4096}; +constexpr uint8_t MAX_VALUE_MULTIPLIER{8}; +constexpr size_t WRITE_BATCH_HEADER{12}; // See kHeader in db/write_batch.cc + +/** Mirror of CDBWrapper::OBFUSCATION_KEY, the fixed key under which leveldb + * stores the obfuscation metadata entry when obfuscation is enabled. */ +const std::string OBFUSCATION_KEY{"\000obfuscate_key", 14}; + +/** Generate a deterministic value from key and size. The fuzz input picks + * a 16-bit length (up to MAX_VALUE_LEN) and an 8-bit multiplier so that a + * small amount of fuzz input can produce a wide range of value sizes. */ +std::vector MakeValue(uint16_t key, uint32_t size) +{ + std::vector v(size); + std::iota(v.begin(), v.end(), static_cast(key ^ (key >> 8))); + return v; +} + +/** Equivalent to leveldb::BytewiseComparator() on 2-byte little-endian + * serialized uint16_t keys, while keeping the oracle keyed by uint16_t. */ +struct LevelDBBytewiseU16Cmp { + bool operator()(uint16_t a, uint16_t b) const { return internal_bswap_16(a) < internal_bswap_16(b); } +}; + +/** key → value-size map ordered by LevelDB's bytewise comparator. */ +using Oracle = std::map; + +struct FailUnserialize { + template + void Unserialize(Stream&) { throw std::ios_base::failure{"always fail"}; } +}; + +uint16_t ConsumeKey(FuzzedDataProvider& provider) { return provider.ConsumeIntegral(); } +uint32_t ConsumeValueSize(FuzzedDataProvider& provider) +{ + const uint16_t len{provider.ConsumeIntegralInRange(0, MAX_VALUE_LEN)}; + const uint8_t multiplier{provider.ConsumeIntegralInRange(1, MAX_VALUE_MULTIPLIER)}; + return static_cast(len) * multiplier; +} + +/** Verify that the DB iterator matches the oracle, handling the obfuscation + * metadata entry (stored under a non-uint16_t key) when obfuscation is on. */ +void VerifyIterator(CDBWrapper& dbw, const Oracle& oracle, + bool obfuscate, std::optional seek_key = std::nullopt) +{ + const std::unique_ptr it{dbw.NewIterator()}; + auto oracle_it{seek_key ? oracle.lower_bound(*seek_key) : oracle.begin()}; + if (seek_key) { + it->Seek(*seek_key); + } else { + it->SeekToFirst(); + } + for (; it->Valid(); it->Next()) { + uint16_t db_key; + assert(it->GetKey(db_key)); + if (oracle_it != oracle.end() && db_key == oracle_it->first) { + std::vector db_value; + assert(it->GetValue(db_value)); + assert(db_value == MakeValue(db_key, oracle_it->second)); + ++oracle_it; + } else { + assert(obfuscate); + std::string key_str; + assert(it->GetKey(key_str)); + assert(key_str == OBFUSCATION_KEY); + } + } + assert(oracle_it == oracle.end()); +} + +template +void TestDbWrapper(FuzzedDataProvider& provider, + leveldb::Env* testing_env, + DrainWorkFn drain_work, + RunOneFn run_one, + bool allow_force_compact) +{ + SeedRandomStateForTest(SeedRand::ZEROS); + + const bool obfuscate{provider.ConsumeBool()}; + + const auto make_db{[&](DBOptions options = {}) { + return std::make_unique(DBParams{ + .path = "dbwrapper_fuzz", + .cache_bytes = provider.ConsumeIntegralInRange(64 << 10, 1_MiB), + .obfuscate = obfuscate, + .options = options, + .testing_env = testing_env, + .max_file_size = provider.ConsumeBool() + ? DBWRAPPER_MAX_FILE_SIZE + : provider.ConsumeIntegralInRange(1_MiB, 4_MiB), + }); + }}; + std::unique_ptr dbw{make_db()}; + + // Oracle: key → value size. Content is reconstructed via MakeValue(). + Oracle oracle; + + LIMITED_WHILE(provider.ConsumeBool(), 1'000) + { + CallOneOf( + provider, + // --- Mutations --- + [&] { + const auto key{ConsumeKey(provider)}; + const auto size{ConsumeValueSize(provider)}; + drain_work(); + dbw->Write(key, MakeValue(key, size), /*fSync=*/provider.ConsumeBool()); + oracle[key] = size; + }, + [&] { + const auto key{ConsumeKey(provider)}; + drain_work(); + dbw->Erase(key, /*fSync=*/provider.ConsumeBool()); + oracle.erase(key); + }, + [&] { + CDBBatch batch{*dbw}; + std::map batch_writes; + std::set batch_erases; + const auto fill{[&] { + LIMITED_WHILE(provider.ConsumeBool(), 20) + { + const auto key{ConsumeKey(provider)}; + if (provider.ConsumeBool()) { + const auto size{ConsumeValueSize(provider)}; + batch.Write(key, MakeValue(key, size)); + batch_writes[key] = size; + batch_erases.erase(key); + } else { + batch.Erase(key); + batch_erases.insert(key); + batch_writes.erase(key); + } + } + }}; + fill(); + if (provider.ConsumeBool()) { + assert(batch.ApproximateSize() >= WRITE_BATCH_HEADER); + batch.Clear(); + assert(batch.ApproximateSize() == WRITE_BATCH_HEADER); + batch_writes.clear(); + batch_erases.clear(); + fill(); + } + drain_work(); + dbw->WriteBatch(batch, /*fSync=*/provider.ConsumeBool()); + for (const auto& [k, v] : batch_writes) oracle[k] = v; + for (const auto& k : batch_erases) oracle.erase(k); + }, + [&] { + drain_work(); + dbw.reset(); + DBOptions options{}; + if (allow_force_compact && provider.ConsumeBool()) { + options.force_compact = true; + } + dbw = make_db(options); + VerifyIterator(*dbw, oracle, obfuscate); + }, + // --- Reads --- + [&] { + const auto key{ConsumeKey(provider)}; + std::vector value; + const bool found{dbw->Read(key, value)}; + if (const auto it{oracle.find(key)}; it != oracle.end()) { + assert(found && value == MakeValue(key, it->second)); + } else { + assert(!found); + } + }, + [&] { + const auto key{ConsumeKey(provider)}; + assert(dbw->Exists(key) == oracle.contains(key)); + }, + [&] { + uint16_t key{}; + if (!oracle.empty() && provider.ConsumeBool()) { + auto it{oracle.begin()}; + std::advance(it, provider.ConsumeIntegralInRange(0, oracle.size() - 1)); + key = it->first; + } else { + key = ConsumeKey(provider); + } + FailUnserialize wrong_type; + assert(!dbw->Read(key, wrong_type)); + }, + [&] { + const auto seek_key{provider.ConsumeBool() + ? std::optional{ConsumeKey(provider)} + : std::nullopt}; + VerifyIterator(*dbw, oracle, obfuscate, seek_key); + }, + // --- Stats --- + [&] { + assert(dbw->IsEmpty() == (oracle.empty() && !obfuscate)); + }, + [&] { + const auto [k1, k2]{std::minmax({ConsumeKey(provider), ConsumeKey(provider)}, LevelDBBytewiseU16Cmp{})}; + const size_t estimate_size{dbw->EstimateSize(k1, k2)}; + if (k1 == k2) assert(estimate_size == 0); + }, + [&] { + (void)dbw->DynamicMemoryUsage(); + }, + // --- Compaction control (no-op when run_one is no-op) --- + [&] { + run_one(); + }); + } + + VerifyIterator(*dbw, oracle, obfuscate); + drain_work(); +} + +} // namespace + +FUZZ_TARGET(dbwrapper, .init = [] { static auto setup{MakeNoLogFileContext<>()}; }) +{ + FuzzedDataProvider provider{buffer.data(), buffer.size()}; + + const auto memenv{std::unique_ptr{leveldb::NewMemEnv(leveldb::Env::Default())}}; + DeterministicEnv det_env{memenv.get()}; + TestDbWrapper( + provider, &det_env, + [&] { det_env.DrainWork(); }, + [&] { return det_env.RunOne(); }, + /*allow_force_compact=*/false); +} + +FUZZ_TARGET(dbwrapper_threaded, .init = [] { static auto setup{MakeNoLogFileContext<>()}; }) +{ + FuzzedDataProvider provider{buffer.data(), buffer.size()}; + + const auto memenv{std::unique_ptr{leveldb::NewMemEnv(leveldb::Env::Default())}}; + TestDbWrapper( + provider, memenv.get(), + /*drain_work=*/[] {}, + /*run_one=*/[] { return false; }, + /*allow_force_compact=*/true); +} diff --git a/test/sanitizer_suppressions/ubsan b/test/sanitizer_suppressions/ubsan index ad604e6357be..063a8e31231a 100644 --- a/test/sanitizer_suppressions/ubsan +++ b/test/sanitizer_suppressions/ubsan @@ -19,6 +19,7 @@ implicit-integer-sign-change:*/include/c++/ implicit-integer-sign-change:*/new_allocator.h implicit-integer-sign-change:*/qarraydata.h implicit-integer-sign-change:crc32c/ +implicit-integer-sign-change:BytewiseComparatorImpl::FindShortSuccessor implicit-integer-sign-change:minisketch/ implicit-integer-sign-change:secp256k1/ implicit-signed-integer-truncation:*/include/c++/ From 118c7250b29e70935f9310dd46f823a330e2779c Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Thu, 21 May 2026 11:26:26 -0700 Subject: [PATCH 10/12] Merge bitcoin/bitcoin#35316: musig: Reject empty pubkey list in GetMuSig2KeyAggCache 8ce84321ceaf16c0ee3418d30011c357fdc46deb musig: Reject empty pubkey list in GetMuSig2KeyAggCache (nervana21) Pull request description: Per [BIP327](https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki?plain=1#L300), MuSig2 key aggregation is defined for `u` public keys where `0 < u < 2^32`. Previously, the code did not handle `u == 0`. This patch updates the code to reject an empty pubkey list and adds a regression test. ACKs for top commit: achow101: ACK 8ce84321ceaf16c0ee3418d30011c357fdc46deb rkrux: lgtm ACK 8ce84321ceaf16c0ee3418d30011c357fdc46deb Tree-SHA512: aa662eee92b6c637683b8535fd9e62431538ba58f38d32f4538259f0b534793625b74a3a10c0c5bb23a7ec7ec83925170b23e47574ef4ebde283a18a0b143d86 (cherry picked from commit 0553ce5ddb35a743e26a31fea7aaf0067ce89cfd) --- src/musig.cpp | 4 ++++ src/test/bip328_tests.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/musig.cpp b/src/musig.cpp index 9a1b34421cd2..af998085d824 100644 --- a/src/musig.cpp +++ b/src/musig.cpp @@ -18,6 +18,10 @@ constexpr uint256 MUSIG_CHAINCODE{ static bool GetMuSig2KeyAggCache(const std::vector& pubkeys, secp256k1_musig_keyagg_cache& keyagg_cache) { + if (pubkeys.empty()) { + return false; + } + // Parse the pubkeys std::vector secp_pubkeys; std::vector pubkey_ptrs; diff --git a/src/test/bip328_tests.cpp b/src/test/bip328_tests.cpp index 9fffa00b6b0d..630771d5b6a4 100644 --- a/src/test/bip328_tests.cpp +++ b/src/test/bip328_tests.cpp @@ -89,6 +89,12 @@ BOOST_AUTO_TEST_CASE(valid_keys) } } +BOOST_AUTO_TEST_CASE(empty_pubkey_list) +{ + const std::optional aggregate_pubkey{MuSig2AggregatePubkeys({})}; + BOOST_CHECK(!aggregate_pubkey.has_value()); +} + BOOST_AUTO_TEST_CASE(invalid_key) { std::vector test_vectors = { From 356fdfdd758f89d85bc40877e0f21ce0f1f81666 Mon Sep 17 00:00:00 2001 From: merge-script Date: Thu, 21 May 2026 23:28:40 +0200 Subject: [PATCH 11/12] Merge bitcoin/bitcoin#35017: mempool: remove all subsequent tx in pkg on failure ac9aa71b7f9d6d0c694087dc7fa842c5cf573b1c mempool: remove all subsequent tx in pkg on failure (Greg Sanders) Pull request description: This belt-and-suspenders check, if ever hit in production, could result in an inconsistent mempool if somehow the parent failed in the ConsensusScriptChecks but the child did not. Rather than allow the mempool to get in an inconsistent state, remove the following txs in the package. ACKs for top commit: ismaelsadeeq: Code review ACK ac9aa71b7f9d6d0c694087dc7fa842c5cf573b1c marcofleon: ACK ac9aa71b7f9d6d0c694087dc7fa842c5cf573b1c sedited: ACK ac9aa71b7f9d6d0c694087dc7fa842c5cf573b1c Tree-SHA512: c25310045fa4dfd40bd38c9d54fff3f9fdb817e617154444d4691576393eee5f9cc86e26c59ddcdeef20eb6dddab0a168e91aec85c8291e6d68abbcb333d24f8 (cherry picked from commit a56b4ead4142df5fbfa5c2d8ad1135e2f2877552) --- src/validation.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/validation.cpp b/src/validation.cpp index 056b3baa5713..f571ad3d66de 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1254,7 +1254,9 @@ bool MemPoolAccept::SubmitPackage(const ATMPArgs& args, std::vector& package_state.Invalid(PackageValidationResult::PCKG_MEMPOOL_ERROR, strprintf("BUG! PolicyScriptChecks succeeded but ConsensusScriptChecks failed: %s", ws.m_ptx->GetHash().ToString())); - // Remove the transaction from the mempool. + } + // Remove first failing tx and all subsequent in package + if (!all_submitted) { if (!m_subpackage.m_changeset) m_subpackage.m_changeset = m_pool.GetChangeSet(); m_subpackage.m_changeset->StageRemoval(m_pool.GetIter(ws.m_ptx->GetHash()).value()); } From ac0ce023f9df05a41493f9b3cf0383955ccb3f58 Mon Sep 17 00:00:00 2001 From: merge-script Date: Fri, 22 May 2026 09:47:42 +0200 Subject: [PATCH 12/12] Merge bitcoin/bitcoin#35344: kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage 18c1cc65e947c37584e886bede2cb5969a7b722d kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage (stickies-v) Pull request description: Similar to `[[nodiscard]]`, `BITCOINKERNEL_WARN_UNUSED_RESULT` is used to indicate that ignoring a function's return value is almost certainly a bug. It is used in cases such as a resource leak (e.g. an owning handle returned by a `*_create` or `*_copy` function), or when the returned value is itself an error/status code. It is not used merely because discarding the result is wasteful, e.g. on getters or predicates. Fix the incorrect usage, and properly document the attribute. Having this clearly documented helps avoid bikeshedding on future PRs. ACKs for top commit: w0xlt: ACK 18c1cc65e947c37584e886bede2cb5969a7b722d stringintech: ACK 18c1cc65 sedited: ACK 18c1cc65e947c37584e886bede2cb5969a7b722d Tree-SHA512: ba5aa19f0b90ef12ed3c200449734d9aa67af166f2a2b29e321d3ec1e9b49483215c5078ae1dd945ea65650a2017f3101bf75abcc9d3388eb1a3d4c8070c22dd (cherry picked from commit 908cc9d30b999fd014f09aa0964d7bf738cf1b36) --- src/kernel/bitcoinkernel.h | 100 ++++++++++++++++++++----------------- 1 file changed, 54 insertions(+), 46 deletions(-) diff --git a/src/kernel/bitcoinkernel.h b/src/kernel/bitcoinkernel.h index ab08cca2c069..6ce65a04378d 100644 --- a/src/kernel/bitcoinkernel.h +++ b/src/kernel/bitcoinkernel.h @@ -29,7 +29,15 @@ #endif #endif -/* Warning attributes */ +/** + * BITCOINKERNEL_WARN_UNUSED_RESULT is a compiler attribute used to indicate + * that ignoring a function's return value is almost certainly a bug. + * + * It is used in cases such as a resource leak (e.g. an owning handle returned + * by a *_create or *_copy function), or when the returned value is itself an + * error/status code. It is not used merely because discarding the result is + * wasteful, e.g. on getters or predicates. + */ #if defined(__GNUC__) #define BITCOINKERNEL_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) #else @@ -601,7 +609,7 @@ BITCOINKERNEL_API btck_Transaction* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transa * passed back through the writer callback. * @return 0 on success. */ -BITCOINKERNEL_API int btck_transaction_to_bytes( +BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_to_bytes( const btck_Transaction* transaction, btck_WriteBytes writer, void* user_data) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -612,7 +620,7 @@ BITCOINKERNEL_API int btck_transaction_to_bytes( * @param[in] transaction Non-null. * @return The number of outputs. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count_outputs( +BITCOINKERNEL_API size_t btck_transaction_count_outputs( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -624,7 +632,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count * @param[in] output_index The index of the transaction output to be retrieved. * @return The transaction output */ -BITCOINKERNEL_API const btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_output_at( +BITCOINKERNEL_API const btck_TransactionOutput* btck_transaction_get_output_at( const btck_Transaction* transaction, size_t output_index) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -636,7 +644,7 @@ BITCOINKERNEL_API const btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT * @param[in] input_index The index of the transaction input to be retrieved. * @return The transaction input */ -BITCOINKERNEL_API const btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_input_at( +BITCOINKERNEL_API const btck_TransactionInput* btck_transaction_get_input_at( const btck_Transaction* transaction, size_t input_index) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -645,7 +653,7 @@ BITCOINKERNEL_API const btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT * @param[in] transaction Non-null. * @return The number of inputs. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count_inputs( +BITCOINKERNEL_API size_t btck_transaction_count_inputs( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -654,7 +662,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_count * @param[in] transaction Non-null. * @return The nLockTime value. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_locktime( +BITCOINKERNEL_API uint32_t btck_transaction_get_locktime( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -664,7 +672,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get * @param[in] transaction Non-null. * @return The txid. */ -BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_get_txid( +BITCOINKERNEL_API const btck_Txid* btck_transaction_get_txid( const btck_Transaction* transaction) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -683,7 +691,7 @@ BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transac * btck_TxValidationResult_CONSENSUS are * reachable via this function. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_check( +BITCOINKERNEL_API int btck_transaction_check( const btck_Transaction* tx, btck_TxValidationState* validation_state) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -787,7 +795,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_script_pubkey_verify * passed back through the writer callback. * @return 0 on success. */ -BITCOINKERNEL_API int btck_script_pubkey_to_bytes( +BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_script_pubkey_to_bytes( const btck_ScriptPubkey* script_pubkey, btck_WriteBytes writer, void* user_data) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -823,7 +831,7 @@ BITCOINKERNEL_API btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * @param[in] transaction_output Non-null. * @return The script pubkey. */ -BITCOINKERNEL_API const btck_ScriptPubkey* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_output_get_script_pubkey( +BITCOINKERNEL_API const btck_ScriptPubkey* btck_transaction_output_get_script_pubkey( const btck_TransactionOutput* transaction_output) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -832,7 +840,7 @@ BITCOINKERNEL_API const btck_ScriptPubkey* BITCOINKERNEL_WARN_UNUSED_RESULT btck * @param[in] transaction_output Non-null. * @return The amount. */ -BITCOINKERNEL_API int64_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_output_get_amount( +BITCOINKERNEL_API int64_t btck_transaction_output_get_amount( const btck_TransactionOutput* transaction_output) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -964,7 +972,7 @@ BITCOINKERNEL_API btck_ChainParameters* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ch * @param[in] chain_parameters Non-null. * @return The btck_ConsensusParams. */ -BITCOINKERNEL_API const btck_ConsensusParams* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_parameters_get_consensus_params( +BITCOINKERNEL_API const btck_ConsensusParams* btck_chain_parameters_get_consensus_params( const btck_ChainParameters* chain_parameters) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1079,7 +1087,7 @@ BITCOINKERNEL_API void btck_context_destroy(btck_Context* context); * @param[in] block_tree_entry Non-null. * @return The previous block tree entry, or null on error or if the current block tree entry is the genesis block. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_previous( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_block_tree_entry_get_previous( const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1097,7 +1105,7 @@ BITCOINKERNEL_API btck_BlockHeader* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_ * @param[in] block_tree_entry Non-null. * @return The block height. */ -BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_height( +BITCOINKERNEL_API int32_t btck_block_tree_entry_get_height( const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1106,7 +1114,7 @@ BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry * @param[in] block_tree_entry Non-null. * @return The block hash. */ -BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_block_hash( +BITCOINKERNEL_API const btck_BlockHash* btck_block_tree_entry_get_block_hash( const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1117,7 +1125,7 @@ BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_bl * @param[in] entry2 Non-null. * @return 1 if the block tree entries are equal, 0 otherwise. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_equals( +BITCOINKERNEL_API int btck_block_tree_entry_equals( const btck_BlockTreeEntry* entry1, const btck_BlockTreeEntry* entry2) BITCOINKERNEL_ARG_NONNULL(1, 2); /** @@ -1127,7 +1135,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_equ * @param[in] height The height of the requested ancestor. * @return The ancestor at the given height. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_tree_entry_get_ancestor( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_block_tree_entry_get_ancestor( const btck_BlockTreeEntry* block_tree_entry, int32_t height) BITCOINKERNEL_ARG_NONNULL(1); @@ -1236,7 +1244,7 @@ BITCOINKERNEL_API btck_ChainstateManager* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * @param[in] chainstate_manager Non-null. * @return The btck_BlockTreeEntry, or null if no block headers have been loaded. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_best_entry( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_chainstate_manager_get_best_entry( const btck_ChainstateManager* chainstate_manager) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1302,7 +1310,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_p * @param[in] chainstate_manager Non-null. * @return The chain. */ -BITCOINKERNEL_API const btck_Chain* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_active_chain( +BITCOINKERNEL_API const btck_Chain* btck_chainstate_manager_get_active_chain( const btck_ChainstateManager* chainstate_manager) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1313,7 +1321,7 @@ BITCOINKERNEL_API const btck_Chain* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chains * @return The block tree entry of the block with the passed in hash, or null if * the block hash is not found. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chainstate_manager_get_block_tree_entry_by_hash( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_chainstate_manager_get_block_tree_entry_by_hash( const btck_ChainstateManager* chainstate_manager, const btck_BlockHash* block_hash) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -1390,7 +1398,7 @@ typedef uint32_t btck_BlockCheckFlags; * result. * @return 1 if the btck_Block passed the checks, 0 otherwise. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_check( +BITCOINKERNEL_API int btck_block_check( const btck_Block* block, const btck_ConsensusParams* consensus_params, btck_BlockCheckFlags flags, @@ -1402,7 +1410,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_check( * @param[in] block Non-null. * @return The number of transactions in the block. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_count_transactions( +BITCOINKERNEL_API size_t btck_block_count_transactions( const btck_Block* block) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1413,7 +1421,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_count_trans * @param[in] transaction_index The index of the transaction to be retrieved. * @return The transaction. */ -BITCOINKERNEL_API const btck_Transaction* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_get_transaction_at( +BITCOINKERNEL_API const btck_Transaction* btck_block_get_transaction_at( const btck_Block* block, size_t transaction_index) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1446,7 +1454,7 @@ BITCOINKERNEL_API btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_ge * passed back through the writer callback. * @return 0 on success. */ -BITCOINKERNEL_API int btck_block_to_bytes( +BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_to_bytes( const btck_Block* block, btck_WriteBytes writer, void* user_data) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -1508,7 +1516,7 @@ BITCOINKERNEL_API void btck_block_validation_state_destroy( * @param[in] chain Non-null. * @return The current height. */ -BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_get_height( +BITCOINKERNEL_API int32_t btck_chain_get_height( const btck_Chain* chain) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1520,7 +1528,7 @@ BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_get_height * @return The block tree entry at a certain height in the currently active chain, or null * if the height is out of bounds. */ -BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_get_by_height( +BITCOINKERNEL_API const btck_BlockTreeEntry* btck_chain_get_by_height( const btck_Chain* chain, int32_t block_height) BITCOINKERNEL_ARG_NONNULL(1); @@ -1532,7 +1540,7 @@ BITCOINKERNEL_API const btck_BlockTreeEntry* BITCOINKERNEL_WARN_UNUSED_RESULT bt * @return 1 if the block_tree_entry is in the chain, 0 otherwise. * */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_chain_contains( +BITCOINKERNEL_API int btck_chain_contains( const btck_Chain* chain, const btck_BlockTreeEntry* block_tree_entry) BITCOINKERNEL_ARG_NONNULL(1, 2); @@ -1571,7 +1579,7 @@ BITCOINKERNEL_API btck_BlockSpentOutputs* BITCOINKERNEL_WARN_UNUSED_RESULT btck_ * @param[in] block_spent_outputs Non-null. * @return The number of transaction spent outputs data in the block spent outputs. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_spent_outputs_count( +BITCOINKERNEL_API size_t btck_block_spent_outputs_count( const btck_BlockSpentOutputs* block_spent_outputs) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1583,7 +1591,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_spent_outpu * @param[in] transaction_spent_outputs_index The index of the transaction spent outputs within the block spent outputs. * @return A transaction spent outputs pointer. */ -BITCOINKERNEL_API const btck_TransactionSpentOutputs* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_spent_outputs_get_transaction_spent_outputs_at( +BITCOINKERNEL_API const btck_TransactionSpentOutputs* btck_block_spent_outputs_get_transaction_spent_outputs_at( const btck_BlockSpentOutputs* block_spent_outputs, size_t transaction_spent_outputs_index) BITCOINKERNEL_ARG_NONNULL(1); @@ -1615,7 +1623,7 @@ BITCOINKERNEL_API btck_TransactionSpentOutputs* BITCOINKERNEL_WARN_UNUSED_RESULT * @param[in] transaction_spent_outputs Non-null * @return The number of spent transaction outputs for the transaction. */ -BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_spent_outputs_count( +BITCOINKERNEL_API size_t btck_transaction_spent_outputs_count( const btck_TransactionSpentOutputs* transaction_spent_outputs) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1628,7 +1636,7 @@ BITCOINKERNEL_API size_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_spent * transaction spent outputs. * @return A coin pointer. */ -BITCOINKERNEL_API const btck_Coin* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_spent_outputs_get_coin_at( +BITCOINKERNEL_API const btck_Coin* btck_transaction_spent_outputs_get_coin_at( const btck_TransactionSpentOutputs* transaction_spent_outputs, size_t coin_index) BITCOINKERNEL_ARG_NONNULL(1); @@ -1660,7 +1668,7 @@ BITCOINKERNEL_API btck_TransactionInput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_t * @param[in] transaction_input Non-null. * @return The transaction out point. */ -BITCOINKERNEL_API const btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_input_get_out_point( +BITCOINKERNEL_API const btck_TransactionOutPoint* btck_transaction_input_get_out_point( const btck_TransactionInput* transaction_input) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1669,7 +1677,7 @@ BITCOINKERNEL_API const btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESU * @param[in] transaction_input Non-null. * @return The nSequence value. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_input_get_sequence( +BITCOINKERNEL_API uint32_t btck_transaction_input_get_sequence( const btck_TransactionInput* transaction_input) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1699,7 +1707,7 @@ BITCOINKERNEL_API btck_TransactionOutPoint* BITCOINKERNEL_WARN_UNUSED_RESULT btc * @param[in] transaction_out_point Non-null. * @return The output index. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_out_point_get_index( +BITCOINKERNEL_API uint32_t btck_transaction_out_point_get_index( const btck_TransactionOutPoint* transaction_out_point) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1709,7 +1717,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_out * @param[in] transaction_out_point Non-null. * @return The txid. */ -BITCOINKERNEL_API const btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_transaction_out_point_get_txid( +BITCOINKERNEL_API const btck_Txid* btck_transaction_out_point_get_txid( const btck_TransactionOutPoint* transaction_out_point) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1740,7 +1748,7 @@ BITCOINKERNEL_API btck_Txid* BITCOINKERNEL_WARN_UNUSED_RESULT btck_txid_copy( * @param[in] txid2 Non-null. * @return 0 if the txid is not equal. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_txid_equals( +BITCOINKERNEL_API int btck_txid_equals( const btck_Txid* txid1, const btck_Txid* txid2) BITCOINKERNEL_ARG_NONNULL(1, 2); /** @@ -1780,7 +1788,7 @@ BITCOINKERNEL_API btck_Coin* BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_copy( * @param[in] coin Non-null. * @return The block height of the coin. */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_confirmation_height( +BITCOINKERNEL_API uint32_t btck_coin_confirmation_height( const btck_Coin* coin) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1789,7 +1797,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_confirmati * @param[in] coin Non-null. * @return 1 if the coin is a coinbase coin, 0 otherwise. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_is_coinbase( +BITCOINKERNEL_API int btck_coin_is_coinbase( const btck_Coin* coin) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1799,7 +1807,7 @@ BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_is_coinbase( * @param[in] coin Non-null. * @return A transaction output pointer. */ -BITCOINKERNEL_API const btck_TransactionOutput* BITCOINKERNEL_WARN_UNUSED_RESULT btck_coin_get_output( +BITCOINKERNEL_API const btck_TransactionOutput* btck_coin_get_output( const btck_Coin* coin) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1827,7 +1835,7 @@ BITCOINKERNEL_API btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_ha * @param[in] hash2 Non-null. * @return 0 if the block hashes are not equal. */ -BITCOINKERNEL_API int BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_hash_equals( +BITCOINKERNEL_API int btck_block_hash_equals( const btck_BlockHash* hash1, const btck_BlockHash* hash2) BITCOINKERNEL_ARG_NONNULL(1, 2); /** @@ -1896,7 +1904,7 @@ BITCOINKERNEL_API btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_he * @param[in] header Non-null btck_BlockHeader * @return Previous btck_BlockHash */ -BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_prev_hash( +BITCOINKERNEL_API const btck_BlockHash* btck_block_header_get_prev_hash( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1905,7 +1913,7 @@ BITCOINKERNEL_API const btck_BlockHash* BITCOINKERNEL_WARN_UNUSED_RESULT btck_bl * @param[in] header Non-null btck_BlockHeader * @return Block timestamp (Unix epoch seconds) */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_timestamp( +BITCOINKERNEL_API uint32_t btck_block_header_get_timestamp( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1914,7 +1922,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_ge * @param[in] header Non-null btck_BlockHeader * @return Difficulty target (compact format) */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_bits( +BITCOINKERNEL_API uint32_t btck_block_header_get_bits( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1923,7 +1931,7 @@ BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_ge * @param[in] header Non-null btck_BlockHeader * @return Block version */ -BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_version( +BITCOINKERNEL_API int32_t btck_block_header_get_version( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /** @@ -1932,7 +1940,7 @@ BITCOINKERNEL_API int32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get * @param[in] header Non-null btck_BlockHeader * @return Nonce */ -BITCOINKERNEL_API uint32_t BITCOINKERNEL_WARN_UNUSED_RESULT btck_block_header_get_nonce( +BITCOINKERNEL_API uint32_t btck_block_header_get_nonce( const btck_BlockHeader* header) BITCOINKERNEL_ARG_NONNULL(1); /**