diff --git a/src/chain.h b/src/chain.h index 01011d54f19..430dad049eb 100644 --- a/src/chain.h +++ b/src/chain.h @@ -210,6 +210,7 @@ class CBlockIndex int32_t nVersion; uint256 hashMerkleRoot; uint32_t nTime; + uint32_t block_height; uint32_t nBits; uint32_t nNonce; @@ -238,6 +239,7 @@ class CBlockIndex nVersion = 0; hashMerkleRoot = uint256(); nTime = 0; + block_height = 0; nBits = 0; nNonce = 0; } @@ -254,6 +256,7 @@ class CBlockIndex nVersion = block.nVersion; hashMerkleRoot = block.hashMerkleRoot; nTime = block.nTime; + block_height = block.block_height; nBits = block.nBits; nNonce = block.nNonce; } @@ -284,6 +287,7 @@ class CBlockIndex block.hashPrevBlock = pprev->GetBlockHash(); block.hashMerkleRoot = hashMerkleRoot; block.nTime = nTime; + block.block_height = block_height; block.nBits = nBits; block.nNonce = nNonce; return block; @@ -403,6 +407,7 @@ class CDiskBlockIndex : public CBlockIndex READWRITE(hashPrev); READWRITE(hashMerkleRoot); READWRITE(nTime); + READWRITE(block_height); READWRITE(nBits); READWRITE(nNonce); } @@ -414,6 +419,7 @@ class CDiskBlockIndex : public CBlockIndex block.hashPrevBlock = hashPrev; block.hashMerkleRoot = hashMerkleRoot; block.nTime = nTime; + block.block_height = block_height; block.nBits = nBits; block.nNonce = nNonce; return block.GetHash(); diff --git a/src/chainparams.cpp b/src/chainparams.cpp index d25e256fdca..20f53a60d74 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -435,6 +435,10 @@ class CCustomParams : public CRegTestParams { // No subsidy for custom chains by default consensus.genesis_subsidy = args.GetArg("-con_blocksubsidy", 0); + // Note: This global is needed to avoid circular dependency + // Defaults to true for custom chains. + g_con_blockheightinheader = gArgs.GetBoolArg("-con_blockheightinheader", true); + // All non-zero coinbase outputs must go to this scriptPubKey std::vector man_bytes = ParseHex(gArgs.GetArg("-con_mandatorycoinbase", "")); consensus.mandatory_coinbase_destination = CScript(man_bytes.begin(), man_bytes.end()); // Blank script allows any coinbase destination diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index 57c1c9302ef..1cc7a8448f2 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -26,6 +26,7 @@ void SetupChainParamsBaseOptions() gArgs.AddArg("-con_mandatorycoinbase", "All non-zero valued coinbase outputs must go to this scriptPubKey, if set.", false, OptionsCategory::ELEMENTS); gArgs.AddArg("-con_blocksubsidy", "Defines the amount of block subsidy to start with, at genesis block.", false, OptionsCategory::ELEMENTS); gArgs.AddArg("-con_connect_coinbase", "Connect outputs in genesis block to utxo database.", false, OptionsCategory::ELEMENTS); + gArgs.AddArg("-con_blockheightinheader", "Whether the chain includes the block height directly in the header, for easier validation of block height in low-resource environments. (default: true)", false, OptionsCategory::CHAINPARAMS); } static std::unique_ptr globalChainBaseParams; diff --git a/src/consensus/params.h b/src/consensus/params.h index 7a217e755d8..8c901fad51b 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -78,11 +78,11 @@ struct Params { int64_t DifficultyAdjustmentInterval() const { return nPowTargetTimespan / nPowTargetSpacing; } uint256 nMinimumChainWork; uint256 defaultAssumeValid; - // Elements-specific chainparams CScript mandatory_coinbase_destination; CAmount genesis_subsidy; bool connect_genesis_outputs; + // g_con_blockheightinheader global hack instead of proper arg due to circular dep }; } // namespace Consensus diff --git a/src/miner.cpp b/src/miner.cpp index 6d35f9ac37d..d9b08090f22 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -168,6 +168,9 @@ std::unique_ptr BlockAssembler::CreateNewBlock(const CScript& sc // Fill in header pblock->hashPrevBlock = pindexPrev->GetBlockHash(); UpdateTime(pblock, chainparams.GetConsensus(), pindexPrev); + if (g_con_blockheightinheader) { + pblock->block_height = nHeight; + } pblock->nBits = GetNextWorkRequired(pindexPrev, pblock, chainparams.GetConsensus()); pblock->nNonce = 0; pblocktemplate->vTxSigOpsCost[0] = WITNESS_SCALE_FACTOR * GetLegacySigOpCount(*pblock->vtx[0]); diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index fb95a66bde6..a1c731ff39f 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -10,6 +10,8 @@ #include #include +bool g_con_blockheightinheader = false; + uint256 CBlockHeader::GetHash() const { return SerializeHash(*this); diff --git a/src/primitives/block.h b/src/primitives/block.h index 750d42efbc2..0e04a8ed60d 100644 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -10,6 +10,8 @@ #include #include +extern bool g_con_blockheightinheader; + /** Nodes collect new transactions into a block, hash them into a hash tree, * and scan through nonce values to make the block's hash satisfy proof-of-work * requirements. When they solve the proof-of-work, they broadcast the block @@ -25,6 +27,9 @@ class CBlockHeader uint256 hashPrevBlock; uint256 hashMerkleRoot; uint32_t nTime; + // Height in header as well as in coinbase for easier hsm validation + // Is set for serialization with `-con_blockheightinheader=1` + uint32_t block_height; uint32_t nBits; uint32_t nNonce; @@ -41,6 +46,9 @@ class CBlockHeader READWRITE(hashPrevBlock); READWRITE(hashMerkleRoot); READWRITE(nTime); + if (g_con_blockheightinheader) { + READWRITE(block_height); + } READWRITE(nBits); READWRITE(nNonce); } @@ -51,6 +59,7 @@ class CBlockHeader hashPrevBlock.SetNull(); hashMerkleRoot.SetNull(); nTime = 0; + block_height = 0; nBits = 0; nNonce = 0; } @@ -111,6 +120,7 @@ class CBlock : public CBlockHeader block.hashPrevBlock = hashPrevBlock; block.hashMerkleRoot = hashMerkleRoot; block.nTime = nTime; + block.block_height = block_height; block.nBits = nBits; block.nNonce = nNonce; return block; diff --git a/src/txdb.cpp b/src/txdb.cpp index 7842829ddb8..60ade6ad92e 100644 --- a/src/txdb.cpp +++ b/src/txdb.cpp @@ -263,6 +263,7 @@ bool CBlockTreeDB::LoadBlockIndexGuts(const Consensus::Params& consensusParams, CBlockIndex* pindexNew = insertBlockIndex(diskindex.GetBlockHash()); pindexNew->pprev = insertBlockIndex(diskindex.hashPrev); pindexNew->nHeight = diskindex.nHeight; + pindexNew->block_height = diskindex.block_height; pindexNew->nFile = diskindex.nFile; pindexNew->nDataPos = diskindex.nDataPos; pindexNew->nUndoPos = diskindex.nUndoPos; diff --git a/src/validation.cpp b/src/validation.cpp index a5e3b564787..d7bd48d4ab0 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -3271,6 +3271,11 @@ static bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationSta if (block.GetBlockTime() <= pindexPrev->GetMedianTimePast()) return state.Invalid(false, REJECT_INVALID, "time-too-old", "block's timestamp is too early"); + // Check height in header against prev + if (g_con_blockheightinheader && (uint32_t)nHeight != block.block_height) + return state.Invalid(error("%s: block height in header is incorrect", __func__), + REJECT_INVALID, "bad-header-height"); + // Check timestamp if (block.GetBlockTime() > nAdjustedTime + MAX_FUTURE_BLOCK_TIME) return state.Invalid(false, REJECT_INVALID, "time-too-new", "block timestamp too far in the future"); diff --git a/test/bitcoin_functional/functional/test_framework/util.py b/test/bitcoin_functional/functional/test_framework/util.py index 7630e32266a..9b2129cd676 100644 --- a/test/bitcoin_functional/functional/test_framework/util.py +++ b/test/bitcoin_functional/functional/test_framework/util.py @@ -308,6 +308,7 @@ def initialize_datadir(dirname, n, chain): f.write("con_blocksubsidy=5000000000\n") f.write("con_connect_coinbase=0\n") f.write("anyonecanspendaremine=0\n") + f.write("con_blockheightinheader=0\n") os.makedirs(os.path.join(datadir, 'stderr'), exist_ok=True) os.makedirs(os.path.join(datadir, 'stdout'), exist_ok=True) return datadir diff --git a/test/functional/data/rpc_getblockstats.json b/test/functional/data/rpc_getblockstats.json index 8b90bb584e5..c7060048766 100644 --- a/test/functional/data/rpc_getblockstats.json +++ b/test/functional/data/rpc_getblockstats.json @@ -1,117 +1,117 @@ { "blocks": [ - "010000000000000000000000000000000000000000000000000000000000000000000000bdb84e02590a29888f409285dfe25361bbd5560efa5a2dd6996c53488bf37e8edae5494dffff7f20020000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1004ffff001d0104087265677465737432ffffffff0100f2052a01000000015100000000", - "000000201efa9847cbf19fecf953162d44654d1f31cce9cf6b56733b78fe7d35074ad2659af3e3c30250eb66bb8a19c33c0218eb424cd1b9be05de619b8f41de7335cb16f72fc25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03510101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002064b7a9880694336ca474f767e7afe5ee4b2efa98b18383f8395d1287456b7b530eee938a165f636bbbc6d47306c53f88c561701c6354b9a86c5eb786bca76fb6f82fc25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03520101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a0bf8197f74b5b25933fc5a63f091dc2f97e0bd14f3023180550620e7c99b6575fb1bf8c26de694116f3f16fe34ff0bbb9ce4f483b459b75c3ef201d09e3d54df82fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03530101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002047ca7c8c2da20b3bf9b21d2adf3213ce033e0c098aac45942c8ba4a5a75ed8055ac7c23e108fb7cfd1c0364ce009057a4cd33aaa681ca8705ec2b0de2f7ae418f92fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03540101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b59309952f460e93392a97fe33ac429a89af4a40b06130f3908fa3afcfec690b92fdf523501d4d4e9cabbf95ffb35f36ce748e098822895e9ff1a7701e53e07af92fc25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03550101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020d761428dbebbda64457361f643c6d1403c46e70a7d12ea506e0d5a15ffb99b42d63bb67fa94884a0681297569cc71c4246c2a969e3e335a15e2cd686d7dc5e53f92fc25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03560101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002006b6e172bfa65832803a4a80396bb1848c576a780c21bd76f270834643d3d3265982bc55425a993799c4dca0906f0f3b73401bd2ee654aa562cf814b7ea40b94f92fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03570101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002009d6b24422c899e472782b47e7249a9737fbf23b81625a4e2d4b0de7b2f8085e56fa4c3da04a45d578ede057f0fc7d54c6d88272e0fd41025822b6c1ba5ba93ffa2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03580101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020eb05749fc2c2ba17e9814923fc13d2c590794555719b72ecf29e0a3a1b1b5112ccf61f775b4d53e747491ce1d51650484da37f4b20f6839b80d7e186a89503cdfa2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03590101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002027ad35f49006c67d90f39a8d59d0de476eb34dd5b3963a964c3ec8c6a4ff9902298290acd6c91035e93eeb4822c6f1b9edfc59980c72e28ad211d884a465414ffa2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035a0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e8a0095ecad211dd8053789bb8ed1fb6dc0caea748fbf1efc358e39c07e90c25676e3ad5deec39620087c2d9a4fb0dc0b658b75f01392025ecaebd00d5ee150afa2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035b0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ad74c4753fafe05c7a6baaf696e2fda8c8ce2348a47342a3228fd31608a9e4661f3d510151f056e81a8fde0999f9eb00deef71293d85696d311b8871007c08affa2fc25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035c0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000200c944440d0f3750a06f3a8d258c4313e74b074dc0d0141f8425bc3ba81757254017a5f2a3ede4889bad2f1ebf94e2d457beb2e9018cb52b0e233c73ed5c5e67ffa2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035d0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000207e013d1448f1a35419089ff6d9b0a6e63b4afbcb978e87907b1c50bd59b3123daafecf2edcf961edec7f8530105ebdd591b463a79fb6f2f17801c412c864e773fb2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035e0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b506d22723b16c6e9d71f5be4d93f7626550873a4e2cfac22b57de5b9eb7e06f31246c3d5ccad1a726e7b4d8dc068588d69527a3e334b7075ba009b8e986c14dfb2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035f0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205c1d6f4da7dbae09408ec5345e21384729767d8854cf3c70fd7d09a44fc5eb461ebc63d9add5b73cc51846a28b46613c991d21022145e0aa161f25f5d1dafc8ffb2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03600101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ab3f8207d9767dbe5d142253cf36d53603c0600562ef7c27e640df55c11a125372737c0417503ed446f7314fbacc8e40e0c8a6a3e39e9440025b5cf1dc37c1ddfb2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401110101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e4bc674d097a77155d156791c8da5ca651361cdd46442a94725371603d94c5570b4ec77edd8d70432f6fed5836b4cee92cb2c2a5cca160a4ebbe720b90c7ecc5fb2fc25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401120101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206b9ff4ebf57fff1fa77c0a6e45fbac68ddae006e1b9b1b5469ae90bef5a442241385695a41c4235504b1ab8fe682764a6bb9908f905869ab9b6a0e9e259a4a31fb2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401130101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205dad510cbe418b38c07ab5a8c4ceb011684627fc152191b02eeb8d4dc5e16c5129a13ffdc2bb4a8f8a79bab0ed3d59b417206b51738a664bb2e4c60198e627a0fc2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401140101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020ab66555a94ebd8b0edbfeeeddd3e4a1d169f77768174973941d59b02f2645b69e89259df6141973b674899f0bccdd1c1cab297859d25702d1d05f536fafe71fffc2fc25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401150101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020da0b740629a811d95936d9914c663d07a053a4d74b6dfdc0ba92fdca2159677d7ba6da84ece4d25520f8c152df4d377f8711017dbd871fbe782fa3db9c2fe385fc2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401160101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002082ad4472815e332e8c2d05005ea3ebe9e1e6c4cdcf1e835f65f3e2218e4f714f29e4f93d64411a834d509683ca769403529ac5a5fcd6df77348815458c0ab3a0fc2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401170101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020449ee5906e01173573249fd0d22c9758f3490d26bd41137d5fa5d5e1881ae937049ced669e509f9e068aee3905a16bbc85afde975364013f3a63d8810a518af4fc2fc25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401180101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f7bef3311ade9bf87947196c7e1784ad62175774e3beb0beb8b6089da24c906f55acccdc920f982986e2512830142372de42e4f4482b8583ea3987af3ddafedafc2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401190101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c3d44b4dfbdef4554d3441134eb58585f80d2be6724c89ef3d8ca7b8f1ce9a033262d3ebf04b9532555653db810fe89f8a55a1232789a356fc10ff6e9da4867afd2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011a0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a522488c459137a3811efcbbbef8aee68d77612f799244fbddae24806b95b365bda60296c66147c6519067c3fbde001a3100c5f07030067a5381be9e4233cdc3fd2fc25bffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011b0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000205a091cac7814e82bc7a1300d36094520dd9ab9dbc61e3b502d16fca528868029c925443da15ae3fc0ed1bad68b6d68dcb1a9b788c4d37dc7a4d8fad16eabc5a4fd2fc25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011c0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020bf951664febd7e7ece54cd7040076018c778f5d9cddef1bcd7abdec96e7f4964825a33b7bdeb8c3674b745feaa3b08a69487e8eb687b840a00a058b8bd514ab6fd2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011d0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002027948c54de0a0f118ac29fb79d4cbe299017324775921e19dc8582ed2158623e224ff6ec0ab1c4a1f2ac8769bcf89ffec7eee2eb85d6fd5093df6db3c0d9e62ffd2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011e0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002071ebcbb17886537af2ecc44fa201b113ecb7c5d16a32a6ec90a4727bda55293fa9057063fdc93c0300dde0d423175946186cd73a756a904dedca7f1c35e4185afd2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011f0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f68227194676aa9f2f5e88123541efd8e056c561f191041ca5a93665f53c7272f771a3d724951bfbb66dde1e5b8bcdef97953e312794ea3380e59f93a551a115fe2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401200101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020983b73ba2033157674a4d9e2bdd28060509a5ea61699292fbc95c9b74afbc77fb794f7ba4f4ae77c887caf32ed5da81988da2e3e21fcd974b20561597349ca3efe2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401210101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020511899610a2bc827d379c172e4861a8b39a1302cef6147d607339b568ebc0a21bc891e0e40718064b2db7dd1fe89e351bc3a0c6b0b04ebe031c1b7d9c06f6089fe2fc25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401220101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204e733b966b529bde705c7baa8bd8f9c17be1686f96d240f4e44b0bf1e78a88419b8bb1ccf6ece94e4b404d8c85a565c76af56b40cd0fde8a051bcff5b4398ee3fe2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401230101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002048a934692fa06c5a4d14e179f6c700d532313f91013d8aeddf29bce9012e4a5a14995086d2669f3ad3a3f95617a55682000afcc81f22a10e3d441ad4a04a08d7fe2fc25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401240101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f203e8b033820bbde6307fe778ee3ccb0694db36b11678eee729b8d31e6d7f42f036ee2b654180b2dca0496ab92369653962bf38b6c61312bd0f9c3e6e651f6bfe2fc25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401250101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203cf0fbfb63e3d074f1ecd646dfcab3942bad27fc57a4c66c6d7e10c045249a1902463f460b6e0753ffc432f3c6197d95d9e5a6f5a2b4382583ad291ee0d0bea9ff2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401260101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206a5ce9fc23d633c21300850bc3df7c16d632c1b82fd4f33ea31ed24174d4e042a2e5eba7ab9dfde6b5898468ed10d1d678662d43d664e70f70e2d9ecf243b0aeff2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401270101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c4ec50dc4424a7bcf2e842e1f32112609973a9df8252397887cd0be286b264614aac409458a8e0d8055fd360a341d5ff0bc0fff9900ec72400e3ebd85b6b3ce0ff2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401280101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020dc857e6b74fe77f2c19b5e4a460d45f7589192d09f2bbba450727b015580f04faf464eb1b1437c2352648f697fb5738c2632b12de59aa6ee5dfb16923a4b8af8ff2fc25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401290101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000203bf267240738378b7c466a3108f4c43ff3a32350bc25f93b87519f23932dad232f781ea654a986694878aba72e9aa4ee3a7017db16a8aa222a96dd1b0ad9bdbdff2fc25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012a0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f20e20f6317e1d0d1c4f080998dd4a2d54b47c5a9c360d1a89daa48405be7733852f18d76c6bf1c3c21b8d77784b4afbb60d3203f7a529dff7bafca74a9f665bff2fc25bffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012b0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020317e4d1d78827eeb2264cf872844556a0009fe72e863f0a7c955e61a497c42256a1bb530e7955ce65d513d8edcf3b4045f1e2eae41165196cfcb946f09454d5e0030c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012c0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206760b726eceb61ac5dfece5c9fc9fe466348f76bd965f216303f80e5a4fa013dee504188541b40005bbace8383d986cf77c45d4de13bba067b08646228b5ed7f0030c25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012d0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b14216de6d09f948597bed9b5eb9a78c1ef2918625bd0485a23cd02b9eb5e63230db0ebaff45393583c881b245b08f3f7c7c68c62e8774673d38c7e9ba19e9660030c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012e0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020d6eb696eef7642c99a3400984d9486397dbc9f11fef975c5bc3cb1fef28404507df9219b26f4d1b13a6067a89f799f32cb504b0a2b9c124b3f27704c75fa5eac0030c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012f0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204abbf04db79dc922396bc8b978a6022f086d4b6ba92c48f399d209adf7e10c28a888cb43e58cdb5bf23618323763a7a08667760ab3bda039ba6f1a691a2fc4090030c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401300101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020eb9b674c637f51a8d09d3b4820478071a097e227e7e569a453b9d9acac2e2342e79c560c8b2acd5e3f109b855f31e6dbfbcdd8b92d3ca3b083467e5dcf24491c0030c25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401310101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000209d0baffddd18fd003f32009f5612c2b5e4bc1b1de570768bf6e5f412709e5052349147dccd6fa88e1a508b2875e1bfc88fc133497f6179abb97e4ef3d81b2a8b0130c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401320101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000201a4446b0cf1ad80491c66e105c58a442c277933b38aeec29dcc84d78d3887c6ba88f38e4cda126a571e00fef82f8faecccb87dcc179da60701db2c06d5df8ced0130c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401330101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000201fdeea94bd4e6f1bbfea525ab8cfaac3ddd877f793d6aa2cabd90e5b87f519137e2ace526f925266685fcaf22a875447555f557a1732f5ba4d68e6cd4eea7c3a0130c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401340101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206118ce408c02a43b7cd489728ccd57b48812252f5412281474524c6744682b1acf0fee448a94f74f5f0084b5c4777c7a8ab2bdc6722951cafc22d2391d44f3ba0130c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401350101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000208a46d3ae6110ed6aebfa2e145dba2890a55328ab65b653061a30845f467f7b13eacb2f8ca94cbf119d6a72e10d3c98fe8bc863577191570c6087456c5b2f95980130c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401360101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fc74860138f55ee9f2395c6eead78247f13af08e11c0d285a25b176ddbafbc122972980b5d06a4035c50032d505232e4016ea2534c41b8917e0836014d2234a50130c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401370101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206523fbbb8b2337a9af684a05a2ca44a95b02e140e7d89873f54be3eb9e154d12da85b0eb12b5f6ebf790498907e698a82014b064596087eaa4bd187e536bd2c30230c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401380101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000200e58dea2995a978d1787702983fee578950d30e31e31646850bffd0de2b7ca3049119dac3c89dd80b4aed7d4e29b8bb5774b4fc669ada0566cf86185e0345f320230c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401390101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b9259eedacdf670799d178fb95285cf5ee388570f3c960c12c044ff08a99953cf2d70a9d3efd5749a419767335b9ae47e0ef9079d428537733ef494ae032d2d60230c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013a0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000209468c5b68a997b030e6ff7199d7332e7510edbb50ef4639018e846a4bb28ff5d5a69b8c30ece23d02ac1e49c8f51d2dacb170a19a0035168339dd1fb8cb428aa0230c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013b0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000208cf1d6ac812030d93db610c86613760f240b01d80b3176b407bc068a09bc0745f0fb2c7dcffe30117f330e7e79507225a0e02bca5c09adc62705f1d7e052e2010230c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013c0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002090cae0cf0e1b04b1d1b1e34b63962f0da779e0a9997bcd0d7a694f66c27f646cb11d9b12e16dcefd5a7b81b954887497ebe38d7054b5c6638a1603cd3a314b040230c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013d0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002024e213434b2b4ef416bb8a60a9d27ba256c2d913acc2e11f30350ca2c7491a478bb045b74bef66fa0d4997d6644d3e539cc32b2c19d2b55c6e5e4d56e56a21360330c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013e0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f91560a8ccd503e3949fe5c55ed35d173ad71a75626006f9f8f718eeb95b9842d91c687f74e2647bbb69ff5c1f1c77a9c0500a535ab1de0c3d3d55513dbbf9940330c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013f0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020595504c910c83b8351e7a967421616b57009d630cc69a5428169b232fd885465eb0efb5a824cd9c865c45e53ffcf2e5130e6f01ee24bc843ea9b974936822b170330c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401400101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000207b0cb679b3f72dea5c5be59a10710c8aabf25b7f2601abd6b17f1fde2c74cd0c77f56add334abcca7ce42288f5672437bc9b7f6ac967b1258dbc7ee9a859cd970330c25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401410101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002009dfabc49a4af50746cf09558228bd362cef68cdb01f9f815246016547e19701af1b8da0e9803ded4b1236b72a4867becea1916ac04111f701d6c854bab89e800330c25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401420101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020f991aec9c092614d7cdc0473aef7abb7bfc68df8708664a9e8229f40f52d362b64e96aa64ada8487e882ec30c7a25d72118f663ea98ef95533c9c37ef9313c810330c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401430101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000207041c6136956a711b1a6e8ddf39b1d31b04e53084171238dda1613e186a2333e42ab1b0bae51b33ca849262af928bb868e139d75d26b1b9e47dc6aaecb1280290430c25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401440101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a27c3a42e7795ccc88cad076475def8ef5ac04cd32e19d943087f23781957871a1e4cc14698f0a45fbf7fa149bd8773e601f3262247afc6a09bc4910fa4c1e4f0430c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401450101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002055f459d06fe68898eb974faa57e52988af8e7e82ebc0aa4160f1d4a09076cb446394bfb45286719f4a9c03c7753c15e26603f306232a120ee951bf04ce99331b0430c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401460101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020d01fc4b43459ea1d17f345b85b6e367d7a1448a6a56373c82ea16ccebac46a5f34b59760cb29d5d9055d81010d4c499d9e4552148dd7b6a7880a600ee639d3ce0430c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401470101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002020b8f5f7f9a07ca3d257908592b2d8c2d9b90a09334beb434043f8bb69dced6d05850869e91dcfd5c354cace00245421d7fc6c5709cc7b5453f798b77ed3ae710430c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401480101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020aec382cd352c555992456744a0913e6a58f8438b45b3acbaccf74d9f5ef6c246c8b6df56a9a66f11de7bb5bd07c46fc605373528a0348103d904402c373e2cb50430c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401490101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e8dd9880101dc43b7f7aef9fe9591f5336c2d474615c793822aca3375e49f6052520e3417561f9fe1bb68010b07c9419ad39a376c5955c3a7846cc7c6219e57a0530c25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014a0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020989f4a8e556b091c507311a4beb5bad8b465c1f44a275580d2efff2a5c9362714a07e724b810a4d2bd626b748caca0129fe6b0a98abbcb88616e2324925391480530c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014b0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c9c92fc32d533de29d52f05de0f50327518cd9e1578ea9f3ea73781ca0ab2b0a671727bc14925143ac36ab62c9df98a3f694b413fcbfa2b1ac79121f05f58c620530c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014c0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000201513fe6da7e35fa9ce49f9e331f7c4fe90e7c5dd4a750ade36aee3bcad846446c06841e90791614a9b241c0e7e0b5252128dd28a571e01886d719df09cde88d00530c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014d0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002008c42ba91414bf300ba54d52033a8368e7817fa4ec432e23bfbe562bce150366c989e0c4122e0be619768b37590057229a50cae7b4a02c2465f355f774ee86720530c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014e0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002090ce8a9b0917da8ca212e3dbcc36c421e527df6ce23028eab815e439e4114855d945b558ebb7965ab4eac3a423b48421b85e6533313e75685a12bdb7880437990530c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014f0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020327d12bd0aea9c843147eab5a0eda95457b14b220528b9540961fc884326472f75b1fc617b6b0b3678564b47128b6058855dbff4a965bfd7c2bb0e7675352e500630c25bffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401500101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e38920a0b3975dbbb838b0508d21aed85e1c9ad4c833a3239e2b6d49e895c23db61f884137237fe0bf72a80da93c07864abf5dac1a7aa90e78c3695e695b4dab0630c25bffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401510101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204e996b63a3a8877abd0f96523ef1bb65ccf59e87d4d58df7dc1c996d4549c65d836af503c874166d9ee8ac1e9d80c491a96c4af12b05bae479b4121f04f2fbc20630c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401520101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c59940c8f0d481d0bb3974461a5558d6e5c5d4f081f598012a1ab36e5a1bcc521a007576acb1929694bd757c4c2f95795b67948ac876e9abd6fc710a805d13510630c25bffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401530101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000209fa40d3fc02685672e5e00986f0fae81ecdf9d9c723218529f69878cc4507a52d0bd63d32b39d52a0385e1557c7e73d4431882683aa0d44a9d368c5525328bab0630c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401540101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020224987476b07fb797b5042e9079895372f3a4d6c72106750d3a81044a828101e202ac8849298ab948edf92e88a1c348886d58f5a0380782e7be25ac24773bd220630c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401550101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020646b6f43f9b28704ced5bb942fb46c9da768ef7db6982e7cd77707a5b648c57a75db88fbf1570b6bdadc4d2e3560311e03e3bfb4668e5fd3008fdc6aadf03d530730c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401560101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000204390c178371af555a49b98f20b90b4045789e8e7746b68430c15475cf8154b3134fe9b25e173a8c81e8fe18a85f90bd5d12f2a417a6f0a894140967728ab643f0730c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401570101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020e6af965acbd8b6910d2998fbd4de777afab64cd657b51eebfe1d7aa524e9183c342e7c4d5ed3fa566fa1b59b62f5c556aca515f406f3e054be9e5aadc9eecd680730c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401580101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b55483e123615982a884dbd64fcede4fc5826492ede2044ad5c692017189e9033ac84fe931ee628446b9ca348192226535a89fb01397420b999bc1a7c4efe0a70730c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401590101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206fdb25ee1beb9c55fd10995d64785fe8c3dfa74b7c1aa8783bca66ab832b5842fb862752b1dfdcaa0cf29b58d83a6960a2bc2741c3e9e827f1604c254bff1ca60730c25bffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015a0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020b89f0b6ca6ac433b214f4d6aa3aad630e30a191f09a87a3afff406a04c934335ccea7d1f37e953cc27399d455d7198f6a641842903850a0e6f1347544c0834360730c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015b0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020294ac4c6fceae72c604250ec88156194a95a7968361f026a71775576f1d39e7dcb267dc3206862a4722a7b7445655d2942d972c7a9fa694ba25ee37847b9eee20830c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015c0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020bf98e931e9e95a7cfea62fd9569194b70ac4018cebabe00a11cf1152ac4ee25f2a52176fc5927532d467524be009825e5e2d338d55de80fd4c3185d74cf6e2070830c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015d0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000201883dadd68958cb72b2e2c64416b3deffe12dca653ae10b9762c0f6529f43c7ab78f6ee4fc41218b376c0c348e2d77cb3bbdc069dcdc3fb7f70e38b17981d2470830c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015e0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020c230ca06f98f5f198de49eecd6da20189b65f7874a9f225d0ad66d58b5c5c213497b6da42f81f15a0ee9d5d32eb529bfffee053081975f9edf36c9eb28fd4b980830c25bffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015f0101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002080b7db7633839f2389cc94ea9a1a59a0f746dc4f56518a613cd243012a1dc1216aeb930224a028ed7f5c2af8adbc144075d6acd8175a7020ec461aef790869340830c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401600101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020dfa2754e0729e5df568bac6e2789641f79e84f620fe680bf07bda03ada5f9c088bb5bd0c1d50d6b2137f6b9f78506de971b26762021ebaba66cf6ed602f7c7290830c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401610101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020a1b9c8f4d433672880a35fc63e4c84ea8a306f9bf73f5688a22e228916ee1f2c920764d6c3a9ce8fc6cf056be2f89e5ef11611ef22d525eb56a625a71f298f140930c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401620101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020853f78fb0b5ed18a319af6a1a1ae7d823123468c7450dca29149e9d85457a15f4e2fc7538e5874feb8c574a23b29e82e5eabdcdd33bbaed7a06acfd9eff1c66e0930c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401630101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "0000002020ac9ca224501acda2967c53cf987eca040862a6a992cea9ec0d05ff48794c49d71354b6d5db908278d3093684eb1dce395f61fa35101332b0d728a60b725a890930c25bffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401640101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "000000206b1ce5937e6b737dccc7d523a2b45ac30492179563e00fd9a8e0cdfbe62f8c46f0ca95dce14c5451ee044dcd594ddea986972a8e76386bb740199fd97526177a0930c25bffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401650101ffffffff0200f2052a01000000232103c16e13001fbf4ed4c374913dc8132f0413435123ece4ac69d15d44b6e188e3abac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", - "00000020fe320f935c41219709068310c00f2250f6773c79e5b1ad5209536dbd9c260d4ddaf898cac93ba39f13299af7ebfe94b4c774e0e5a0ef675e934c40430f251ced0930c25bffff7f200000000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401660101ffffffff029c00062a01000000232103a2ce2bacd18a610890e96e17654ffabcd1eb5a84981fdc9345eb278364df468cac0000000000000000266a24aa21a9ed9b72cb4627b7c4829a9c2cf2c0d3f050a97b097f5e8227cafaadbb78e8d8e236012000000000000000000000000000000000000000000000000000000000000000000000000002000000019af3e3c30250eb66bb8a19c33c0218eb424cd1b9be05de619b8f41de7335cb16000000004847304402204dbb696b8668e4aa2f3f9a0ae9fc2ca9ff2281b941bb7fe84a0c42e1a465be90022026f8595012c9fc6449cd5e8d9d6293cf5fb5d5391e1db04cd319b2bcf237b37701feffffff0200286bee0000000017a9149717d1d690e8b1f3aa0433fbfdcdec6fad9565208764bb9a3b0000000017a914e74b7856f19f28a47bd66269dccd4c2ed91eac49874c000000", - "00000020cd4b6edfafbe49810f072c6ad74f3afec1af2e1b91a849bfabe6ed34a656fb4fdd0de4c932ccdb3e9ce91fec39f1fb0e0a262b1e89ba061638af046f8c056a280930c25bffff7f200000000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401670101ffffffff021cd0062a010000002321034aa086b4bca870674d9dda72d53613e2c339d1ef058482f28570fbd64f86a7faac0000000000000000266a24aa21a9ed1b218e95b5b334bd92553097e50482004585feff9a6e4e49ad02c16952b0bcc3012000000000000000000000000000000000000000000000000000000000000000000000000002000000000101fa7a45a11903ba04f5882a80bc3ae92874d3593f6ac6ec5df1c3e36c71193e040100000017160014c72bedbeb7b7ea275ebf1d73e3f2eeaccc6d118ffeffffff0264daa4350000000017a914c0b9b4592a30caf048b15ab42b43f7816dd686aa87781ef5050000000017a91461d85e5311e800c8573fc5e7af7579147943c1cd870247304402206cc4d5f4745eca4fa74e2a5c0ae3c983d97df5c7abf613e8da9ac6a12d2f3e95022026efa2970cad0d835922ac7c9277ba4c042f927d17f85b52c4c6b3321414cd07012103bb0897853295c8f47a5cf3ffdd7dc4000367b4132a2b644a549a4169826cbb1f6600000002000000010eee938a165f636bbbc6d47306c53f88c561701c6354b9a86c5eb786bca76fb6000000004847304402203ee1dd25e9aa6642fa0b5c99be75282d2e17c8cf27237d4c92f703042e911c930220266d5fcc69004bd74972dababfad6a8ad7fb9db43091b4946c5178c3648c132601feffffff0264196bee0000000017a9148e94bb1f33fbfdb0819aa787caa211927962c7de8700ca9a3b0000000017a914e9e54b5c0ebd9e6a4ea7df3717d18699bca735d0876600000002000000000101fa7a45a11903ba04f5882a80bc3ae92874d3593f6ac6ec5df1c3e36c71193e04000000001716001476b4d8d5e8f2f91731524ac5e268dc8dacf4c949feffffff0208bd9a3b0000000017a914321761128c5ebb7be0d022523425e81a2b1865e387005ed0b20000000017a9148b73920aead2e0277f83e514ed61e502095732e8870247304402200d65b4394e74fd41af194fab0e3e43ebe3e01853d7dcafc7b5bf8f44ec238e8f02200253d636882103071d865665992c8a4bf25f6449d66ecfc8caccd1f6da0f6571012102b5c4c0b603440b189549045d101075058d3a2ec3da9a10e41942b830899796d566000000" + "010000000000000000000000000000000000000000000000000000000000000000000000bdb84e02590a29888f409285dfe25361bbd5560efa5a2dd6996c53488bf37e8edae5494d00000000ffff7f20020000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1004ffff001d0104087265677465737432ffffffff0100f2052a01000000015100000000", + "00000020d1138c3034a2e42327f6d5e47b659edf7b3f5013485d31c76c5a546484f0d7cfca431b133a8ba37f83b226f076439563edb85752fac73e6095aa30a852552a6e22e7cd5b01000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03510101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f0cc720f1ae7c94d7a583c45e50603851138b464d50ae11016f7a95afbed62656d388149707693e39366b927179a5cb177c8f34b4741246c8d68e80f699d7e7523e7cd5b02000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03520101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000209c8558a52c1b43a7865cc5a41bd369c688ddddf4d4d75a0cb432acdcd734d731452c739080cf1ccc64ffa5a4eb47d229333a14a18b3de02e8033b1191751098e23e7cd5b03000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03530101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204cdc053e25d8bfd5f506efe59e0b1d34be9921bfbfc6001de4cb63c60a2da25545984dbfd9134387b645f9fe2d14fe11348fcfafbe6b13d7efa8b75bcf05b98424e7cd5b04000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03540101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020fc74b548c7f0a368605a945555c1e4556cb4e70f95e5c0157a83b9d88f670172b8c2d6b6ab7569e873d0e7389103021797e5902a8e797c6fce1896605844f5d224e7cd5b05000000ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03550101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200350a09b8dead4deb2026e7b84c3d38f9cf222f37080ef739b85aa37f2c2d7101f8c34bafd8102bdabbb181f5ffdb16daadf016da8e9d5dcdadfb6698c57fcc124e7cd5b06000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03560101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020c1fb4c40ac4b0f102373ddfd9876717e249bd00e96c916388f2b982b649bcc3d3d5ddfd309c2d1e3e874647077febcb0a6edc80f9ee9aa2926e3fcfdb6daaf9f24e7cd5b07000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03570101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002018bb5dc476f9ed482587a7ea6ac5c445100726a14a43b772b4a9ede8478f6b695be5f30afacfdf0a82fa4c7e694a4ca0d4cd04df9532108cc80fbc4a35dacd9d25e7cd5b08000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03580101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206863408d211c79d8bfdccb50d00c98698e0d78e895323c6ac8832b3a3903f47b74242ce884fb77ddd2820b8e48e3e3206ac9502625ff78e45b594d16da2569a425e7cd5b09000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03590101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203f00e5acf0fe81ca111e55920a69791741143a7c0f0ddef4d5be447c72892d56b4600818371b2680c5169a47d4d2dfd0032c7f2c65c2ad62a78d332c611147c925e7cd5b0a000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035a0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f1b697a3ea2febab8067c59680bdc64c92b71f291e6d6bccd463d85a644af175e4c4bf87d41021be1087409ec0a39911592fc8a496ec2939082eb8894e0d0b1d25e7cd5b0b000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035b0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002067fe7bb3abc535c8d2c7c4f53bb0247469e9c57a67f2f101b2fda975b6adbe60c86d2eaa6f70df83c4cfabe3aeefd0b1fc71cfa174e243ca60eaacef205ccc6d25e7cd5b0c000000ffff7f200900000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035c0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002005abec42e551b15ee0c438454ac6b27da75c9ad3d8bed3527359a5f7dcaa1d7348296d8e594f5f52fd4e397701d935ae5a51bfda157d699bb1b95d1396ad5b9125e7cd5b0d000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035d0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002045765078eee62e509650d521fa9efbc89b5962ce9ec073906607aea1eb97ce124ba239fcb721c0b8f6ff5ff9cfc83dabc84172c92d0e6be5230fe35c2d2966ba26e7cd5b0e000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035e0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000205cf1fa662bbe3b658277399981838257dab728e3ac9b6ab30754ba6388511b74284bb698f6c24abb3eefed0382857b91d2a32598db6e95cd016520b9001fe28b26e7cd5b0f000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff035f0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200696f688878f400bfa6bba591aa903219d07631f0a486ee8ca2a5ffdf17ca077fb0648671f657e40b5a2c3ca8d0fc56cc4bdc5a5dde92c1016a5d2cd57d17d7226e7cd5b10000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff03600101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f1faea0d4b22a2a7d813899d5b178696c470a9e14473c793f9f7baeb26404329cc51537295a875beaf55d838aef12b1e90c8fa16b2c067ad0de85001d6ff090e26e7cd5b11000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401110101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202186ada720c4f95dd6afe7360145a3866161b9b11dc1556c15c79d111a3a6b59c331aee86d34b74fe02434966625484c0800d6f7ec016305500705785c5257a326e7cd5b12000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401120101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208f4746d7eeac37c830bc6c320992b237d256de1fbc7203f70970eda00178d81d7007c8e6d8b7f71bc27887090b9e7ad14f16975e911e58b87a1a7f7ac4cb5aff26e7cd5b13000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401130101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002027ebbfb74396005492a3639501b9150f969e0b5fae1261177055632e98b5cc13da5ec69b19dcea672ba95c190a9511221cb0c9d60fec94ce6d4f357fe1355beb27e7cd5b14000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401140101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002010571281f5a1d48b7f2b11456d8fe205e3ceea1616af0468c7ece11057128f12a6266091c3aa552e181c069a689c9079badde3016ac42f1886ad191c8f9882a427e7cd5b15000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401150101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202f0dfa54903ee0e850e10968b9f640abbcd9d6c2ef63aa8b4d0c85805e431c176972ac7beb9c7955d91a8587aa7ff9a67f19d4c53f2a57a7eb1e3a36ef91f0de27e7cd5b16000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401160101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002069f10450760fff267e2236cc26627082569d24c1d775c75424a9d1939b1d99033aebbc13eb0ea6f1edbcd23acc39223a6c11c3668b4e919e74cbbeffcfa3eb1f27e7cd5b17000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401170101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002094f22a8d6d70e858020ec95e96b06c25dbba94d708ef3007b5a952f58e459a3f9af89759727a5acb30461b0d7a0ba9969de8644b3062b44982a183c9fa1d0e5227e7cd5b18000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401180101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020788e8f08d54be7ed5d0c8f05f264a78dadd9b60b3f1986a04429f8914eea056824d593f3989dfb61843a07bf70a64bd98779251eee7f923aa333889fcdbb206227e7cd5b19000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401190101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ef2422f4a2b1373ed9816bf8d9d3737b8a793674e30b9fe7f86dd7ee06b69c5a61081959e860d6579d037c36db9b031cea4ba2fa54d8b5a5623f82bed683052528e7cd5b1a000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011a0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202ee3e60c16e84d5ef89269ee4fad9515aaf5fbcc135aeda4e5d09bd943ac380f03f409039d1b2f073f2ff2750da658a0d50a21cf88ce48361d59fc538b46fdfc28e7cd5b1b000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011b0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200d3ebf3906fa1c6842ff98cddeacb37e40c4b93fba46e1fc6c4143022154d434d65c0e8a0e9849db3b3f3fb88e5f176e04743e03d4e61c67f6858e00399ba9fd28e7cd5b1c000000ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011c0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d2ab0a583acbe1101277a0596562fcf7bac883de48166e4413626655aa891d117bc65ef66adec4e9502647b2f76207edac0c09ad5290bd00e38ed5891435c69428e7cd5b1d000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011d0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d1facb1e17201b71db569dc82302b44b1e791c74ec3ce5023e524f9e528f41362d019b0284b69bc914bb7ab92fdc9c7dd1007746f178ce0947ba96cce6a0169428e7cd5b1e000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011e0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020095ac584a851c7dc25a738c97190156d29cf29eabfe732665f382a5d9cf03f3afb23b56bbf5fe95db28878fb30eb13ee39acdfd6581d96c89a04fcf016139cdc28e7cd5b1f000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04011f0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000207643a4debe044e5189d683b59d06f39e49ac24c304204808469566f7e8aed73d5cd03f58cede630bd571b59cfdfb54ce6656600f0f0e52f5184bb02fe37abd5b29e7cd5b20000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401200101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020859767b72e785a2d1b97b21f0b82537b3e53b23013571161d3809f6d579eb475445f548eb9f75746445b96ef5aca2656e99f984e49870b3a29bc8212d836658e29e7cd5b21000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401210101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d447ce91d605b23c69216f7e468958a5a1bf56ff618c2a2df59062f63911bc0e8a3270217ad1a0fc0d8125317e8ebee5bcfeb34c4159e262946367414a284dba29e7cd5b22000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401220101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202649a3dbc4cc63324484cb549c01fc545a44b604ffb38e60129a00a5196f8d4b667186d7cf1e01f21d6e6d77d8cc3d64f7b7015f3541cfac89d31cd4ff9dfbb129e7cd5b23000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401230101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b0210057f732f28a7d4cc3c6ba004bcd7125dfaf7106deea1f68e9ebedb17a55d6621cde1116669c77861f244e4bf03dd86ef5f4684b7dd5011f8c5e2e01a97329e7cd5b24000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401240101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020a23c3db50a89be6da4ca8ed821b9387cad82a497780d95d253ba2a17f35ab83448da8e2d28c89589bfa61344a1ee256b7a285e6966900b6eba5392210ae7788629e7cd5b25000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401250101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f3f321405e9332669018ae49caef5da406690e8707fb404ed672b52ec435e9377861880f5b773e63e1994c197051df578b81d592c1fd8493e95afb0328424de22ae7cd5b26000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401260101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020a5c9a6ef14906247ba31d60d7bc7779c09a4bdedd97299ddcb76cfdf02020a6e6aa974175e8d931e84987b2ecc6a0d414ef1f4d621868c7ce91219b8e6dcc2432ae7cd5b27000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401270101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000207b04ccb5d02cfef01dd5bd1f566b2a639b2c144128079c46fccebc2180467e2d23d8444800b305897f30daa0164ae9f5781a80d57f91e9f66d799598f60581052ae7cd5b28000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401280101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206b220be9aa0cc516ea0838beeb0a4b3240543bce2fd27c1bdc24e2eb11eb92350236c15ee3f8c0096f47b14a842934f050b9d04d0f1549d693dca54220d8a8132ae7cd5b29000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401290101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200a1f795a0d43a82fb9c26f75f5551fabfde66fe24f24064be8b3be76ab784b38d3ee35e537d0390002e82e0c65e7ee68bed6a4eb62099a0c000b76e176286b3b2ae7cd5b2a000000ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012a0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000209548bff96998e575a5b39d27ec44799aaedf75fccb7b6744fc14d0a170f89c5b74a6d96c2d5f118553cc796afa15fa7300bc50437c5bdd19ee1791f3a8ca38572ae7cd5b2b000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012b0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201cc60c541dbf77289a615193371b6cf9e737250ebe4b2f4cd3838a05a0e99216c226a0ef6bfd148eccfc75fdb43dd5bb459aa873de0696c05d5986a21ce67e612be7cd5b2c000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012c0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002082425dcf642f2e67b02c26ff50cb19dc42df436ee4bad14c0cfab25a988f171dc5a1bad591d2feb7c9aefa9ee3abd10776203c00accf552e8ff4715ca00609672be7cd5b2d000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012d0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020aff4855669601102448d104c158384f29fab68bd11a297c27bb85c996efc0840aaa8917ac9a75e77d520eb0df0f82cf2be79ef1b70dd065de67a2c7c5beab1672be7cd5b2e000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012e0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000209a248742813dc94914445a5cd1f458fe8f3a6dceab9225aaf92e8c7e43ef800b2b72b5ec8ec146f0b3d18e5f7aed461196293938c67e68a86a36ea4763074c382be7cd5b2f000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04012f0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208083b5d64c20fd12a292dd135b32d7d8fe8399bfc756bfaf98338e7411bc432954cb814c120d1e8f15d52a740d6c0701a494f0dac09781260e184ab9217e789b2be7cd5b30000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401300101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ceade027ae1f3512bff2b5c18760ce8f88d07e79db98dd6d94bb7a7ff1ae146219076a01338bdd7369738d1fc538a56e9f19ce20d4b621f5aa1e53119017ccf62be7cd5b31000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401310101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020aa22fb6a3cf5c8b5e27f231569971f797b729bb12fcf90777c178f5a49560a75f82829f8b39612e409746cdc691a39d4a406a5d38b5635ef5b3bc593f5c2ade02ce7cd5b32000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401320101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020cc5b019ba2fdfda91f53474eb3a1cf8b2e7ef03a4a619158a0339d6cabfe3517712f3e2f890c126ea40d88420f6a72a2859090b108ab1577a81c23d781fbad982ce7cd5b33000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401330101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204c4d1a197e62038599efa716c22494e973514994b1c5e8b1790bb22c860c765f18080d59a9b558c3dbb5e6dd5ac6e744098b86cf45007ab6e999b0952f18ec762ce7cd5b34000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401340101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202268fbad1a38aa21165204e2f9a4a80c425b981eeac93614fc7d2665048bfc73e842fb3b425467655b25feafc732f65e4b2aef98f6256f98ac41bb50e7ac0a032ce7cd5b35000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401350101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020ae08e2c099ae9178b724d867d41d4f711b7df89312eeba5bba26f3e7a93c173ba96fdaf1eaf0d58d86d62b339c0c45ccf225b2136c3116980f7a4af395b2a9692ce7cd5b36000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401360101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020a1b2b71344586b3f797aebb2654dfb15bb33a0e1be1d749800d1b0417bf26d7f86feb4bdaddc1ce9496a11fbd41cf9c105c664aecb64998651a67b0583c9b46c2ce7cd5b37000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401370101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020bb2c3bc52751f0aad17d6c6afcaabab5a0bc71ed7f6bb4b983a8943710af355b845a0690ee2fde69c2fd5f0ec6f44c663dd0b33f1b966065b46c109d5b2820f22de7cd5b38000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401380101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202725c3762681e8f539cef77bfb70f44270c5ea01b17c2796cafa833847bc024c6d236f7c2daee50a9924e362c526a691c2d0e60b484c3eaf25f49e3f5e6c57ba2de7cd5b39000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401390101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208b8eb63f7e9f5d769ed1bb0b116550f7ad6dd208c771f2a40b6fb8b26df20970e3a05e60f3471fae0edec339c90b1c048858a62c9ccaa6f05f9013bd4eb2a5252de7cd5b3a000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013a0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002032aa8d819782681066316512cbb07995b7e0a016517c808c4e5c55ad74443d12c7b69d2ddf86df68a7a8463906aa2397f5bb6f9589bd0641d851641a79b475d92de7cd5b3b000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013b0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208d9e9f96a33026c432f8ed8e6a133781525d1e8542d91a0eacb9262a0251cc5e8cb03be55f0dbc9e8abed2057f111f3f2b29b5ebb442d00cfda769665c138ded2de7cd5b3c000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013c0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200133a23f300d1ea87445fbab185fad2ce0743357d7afa0160b60ab1bfeea561d5058876e5db4703a325b6bbd1798b7a34f85b6936a1bf1ba7c787fd6439365ad2de7cd5b3d000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013d0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020356265099319d77e1e9b1c6a91d7e7686d41673cce52f3d25ae1b73c90d9e95a5191017eee88393e87749adf3bea0fa703cd8791289d84b9f0fa7ff4eeeef4462ee7cd5b3e000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013e0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203fc7cf0c41708d3bca794a9ab9e4e0be1bd7d83f8bee78c2852927fde9414c42ee5186711e5f66e17b09d3614c98d9ed567ca0494b73e119a2294a2c4215c7302ee7cd5b3f000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04013f0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020aa5d729af280c934c3f422d3b7ce1e336bde22b7e33f65492e15870c010ecf5bf1ebdc770549466dbda8b0502111d33727524bc996657a31b0429e056e9b85252ee7cd5b40000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401400101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201599b6d71bb1c305f766b02f9567c44451edd6b9495cd8f53dda8a1402df6b7d1c3bb64f7c270cd69592ffdbaf27574656bdf25b68335e24ae105187b324dce92ee7cd5b41000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401410101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020084ec3462b1bc223cadc69e9ce6e10962102dd92baa156f696f1a99255c44c6789659b0cb474c4eeccce7d5295dc1666a5501b7fceebd9a5593af4082fc76bf92ee7cd5b42000000ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401420101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020201b038d1ab93eb50707b8abaa69847c2777bedfb7f57d43dbb7ce96d7b897438ab6ebde43f1318f9946e7c85b0fdbcbf6d6347fd70c3857d119749819d819c82ee7cd5b43000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401430101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020500bd07fa6ace5f0c9aaa293f51bde1237a7c67f0f60b85ed93bdbcb31a8c061a960f54e5fcd6391043f762b939059d72e799a4ebdfc33f8764cbc219937fb5f2fe7cd5b44000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401440101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200611250704a94fd7a16a1445e856dd607b0cf250f8cee348871837427c4f44152700dddf7aa1e837b10ba221cf42a3704565bbfa25c52ab0c5d337d328c56b1b2fe7cd5b45000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401450101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020a19b403067e9a7041c93287f11f2afe7441417d1f199d4a482dc33ed7962bf7221148e6d29bed47c521cbb9cf6895506dd4dbd465d4d43cdc0898e1030d386e72fe7cd5b46000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401460101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208fdef987ecb42c45f45f1849f516b77cb2c9266d04a9c1ed7c2b59db99c4834e5ba2a4203532dea1aa87b9ce1f7012ebd0c7b33ccd8c7f13e8d03b7191358b5c2fe7cd5b47000000ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401470101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208e289a60b2e96ad49246ed36887b70ac79de964426089300c1861407dfd7521a8bce805d2c0ae323b97e84f5aede9cfa68dd54966140d8657c5da639657b8c252fe7cd5b48000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401480101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f2ae5d7b3957ba9a53557abb183d1a55d8887c81f886399702e46466c2efa06b0e9cd812bc44c3f9249a04dcf488388f2cc8fee24b8913afb398f71d382f021a2fe7cd5b49000000ffff7f200500000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401490101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000209e1bdc9615b3447f3aeb1e4f3e9a0421795719aa3d3c12518220c94904407c54a75f83b652bd2521536a20ceaae5f0c5c4f98b271f16d76f84bdc6958cd267cf30e7cd5b4a000000ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014a0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201b4263cd0be9224a89ec6406ff8e1dfcc2cdf73c76bfb04d4a0fba3cdb2f59747bcd56b0489012425e4c243c7c64dcccfe450840264188f07a096f5d79948d3c30e7cd5b4b000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014b0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f35699da63870acfa3dc436dc9757411acf36f2ec183d9544011684ec127083849eee9771d73dff017c56abaffe98ea85b21dae0c478953a59f33a466cedf49130e7cd5b4c000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014c0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000207591609874f1d005c5d361dc1194fc6f20405472230d024846eb8bfbd0a95d1f7d6bd90be461544ef405456c17cc6edbc3da9401c0cad93dd8edf4ed2735fe9830e7cd5b4d000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014d0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002084951d2506626d87b5a143040c768fe4e41861f6d871dbd9b9ba22fc65af1f0f8bbaac72f1ccd2d15280d207460a0851c9ba2cb3a5ed2d2b87ecaf4aff61199730e7cd5b4e000000ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014e0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000204b8621ac6d8e562999e79db7131538d88880d451f6631c5bf2a4a2a4ea569f5922e3a000a9752c49e9f4023136e9d6e59727e0037ec76f778a0fdbab76d37c0230e7cd5b4f000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04014f0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002071d515c6e7214a3a6b725237a44971c5dd68ae80e1b6e4e6fb9cd3c064256312da0b6a8f571aef9a152b2443b9f7f76846912326918f52aaaa6255620114fd6331e7cd5b50000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401500101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002026e0269e0d4054ff3da5c6970505d704ef14c8888de55b90aa9228d7ebe7653037a73f78111c9bfc775b5075d58f9d6db3d26d11d4f52bd133f0b7debf5ae5ef31e7cd5b51000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401510101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b3b22e431176d1ef362114907f065ee0385364efb3009cac701383b4b6071557b2a0de1c264de12798d92ff16d5da6d5f790242fa7a85c6de7e74501bd5a012231e7cd5b52000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401520101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000208054afee44cab94f1d2cbe21c0c6f3317aa0e1dbba8439341eea14a59d94d778fe8c5168333d8c62862f9ee7707af9be250d6498177588c9eba2e240659585a831e7cd5b53000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401530101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000202b1565153a6b7b3ec00a4370190a2913ac5809604bdab009c4fde1d0d4c3f5333756bfbdcb625b83dd9dd8ac006b5deb6cc6b24d22833d3a40d198170f7daf1231e7cd5b54000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401540101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020874f6ab84a558918d6175a0fd2d791e502d73c27a1c97a1870aaea881faaaf5c0b3440937787e60a7e72781df9ce9c99b7c805866b449da0a21855858faf971b31e7cd5b55000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401550101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203fe3e2250ea7fed7b74b852425f07f702dd68f898f760bf8514b4281761f553dfbd12eab42b0814c491c30d7c02ef90b7cf349e25ceed5533029adf6cf3a7e2332e7cd5b56000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401560101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020053811759945e2f9604056301ebb72d1c2fe583b9a81b1f987ea499707c01646ea2ad2d7089451dd2fb75273181059123f4d16a3b6adaf8d34c98a60bfe3be0532e7cd5b57000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401570101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002074238a3f705fe5f74063d964929d46f240e46ae818c0c9a5407dcfeb6958d566936f8687bf01c4fe283ea99f0ab763e7575d935c1f39f9810c7c574025c670bb32e7cd5b58000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401580101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203b8c6b9bb5c0e314dab8f73476037f3631d3cd72d755070b4aea65652080963b67cfa4715ff16442a67a8a126d48deaa5c0665cd5796a63fd10d3fc5aa83bd5332e7cd5b59000000ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401590101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201ae1bface7f6eead68e0a225b5ed05ba62c1d9a7b3ba80cfb73a98acf00e3c6519b5cde738c3de1da282cf42f24a525a4f61132bcc9a8aca6ff2e2d3c617c21132e7cd5b5a000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015a0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000201f30c6dc9602bbf1c30363f6e4e57b92db1797575d0e5a34c79518dbf8078357e4cb08249afe46a560dcbadfa6caff154e1f02159ef76d592130f90d8c979fb732e7cd5b5b000000ffff7f200400000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015b0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000200be3a13ed573acda093f363a003b66553abbc17e80ac3d95a43f06a6b8ec76766b46d5022b051958bcee85d64755096a58d5e78184f118f33d23f770b11117d833e7cd5b5c000000ffff7f200100000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015c0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020a7ab8ad715f9a3ef9719a444b059fe4a8011b630aa5f86bf460b4836a2e1063107e4694e294639fc0d7c24e4d34a24a81bd747fb3efe461d529d6fda3d20228933e7cd5b5d000000ffff7f200300000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015d0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020f00e72f50ceb1f09fd42d98b17b0841a505c79caa9d0afdab5f7e7acc64862509c89df3a8c93974fb36a4cb143f11f2e8fb594ec23962dbbfaf40757334507c133e7cd5b5e000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015e0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020faaf4e2cbe38a46340ef31e6074e4eba2f0381261815e1886587302732fcb575d95d38090ce30b5d01827c1beb5e818e6eb451657592430b070dacdfa69ee7cb33e7cd5b5f000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04015f0101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020cf59f04ef71158d6ccc4357a9f2bb03c403650dadb85acdb85cb4920e1b9df7d1e5cda113dc6fa8917e8f6c25248e14bbce08f2a5e036c3c62d21aeecb8caf8d33e7cd5b60000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401600101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020d3d120ab177a04a1c3fb4da416417f389bdb44e73e60e33e32e713fc0694c3787204aed4b8832bd163154113bf66470fd0740af15e9cb3bb55d0ffc3e16a445133e7cd5b61000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401610101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "0000002060b614a334dc2f81ea2544d64f8d6b1e112db41775750234822c9d961e04c648dcfc1bbcc5438bd703f1eba3d56a2a467d0f4a9d93391d4c64bf39abbd121bde34e7cd5b62000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401620101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020b405efda96ba87a56931096af9a2ecd1763010b1e7c1c2ca651831a7053c533bf22e331c4affd7db56204dca20025d1ae788018afc642e8124c3283acc74882f34e7cd5b63000000ffff7f200200000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401630101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000203720b5652e819402038e31580bc9153deafa0c7461a2cc2ea376d1020e98554ccd9b54d52363fbd6abe63a2aeb4ae5c254a3a074e007b9b8831f781e9d55358634e7cd5b64000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401640101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "000000206e511535234266bbcdf3aeb0d69bfb916737d319458018cf9c0b9fa1981eea03fb094a787476fc1564a00e3f9925a990e6c78d3c933da0147e70a3a597161c0634e7cd5b65000000ffff7f200000000001020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401650101ffffffff0200f2052a01000000232102782be3c215508b7c033ee6e9807e2a6e1621a90b9d31a84c7d5480b8282be3c0ac0000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000", + "00000020595f6689e4f09a7c14e2ffd3e7a29518c35536550dbfeb1f1563a2920bcc964af25aad209adca7b5ab9bc98f6c466751a79fc989938815fd3eb7c4feca85924434e7cd5b66000000ffff7f200100000002020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401660101ffffffff029c00062a0100000023210221fc4bcad9badedd490d823823db74b077c5e15e09389b2d3b1155bca60485a7ac0000000000000000266a24aa21a9edb873edb88309023c4a6a400eb55f29d0936083442d7ae0efca2aecbdead4915b01200000000000000000000000000000000000000000000000000000000000000000000000000200000001ca431b133a8ba37f83b226f076439563edb85752fac73e6095aa30a852552a6e000000004847304402202cf126540b5ab91e0ac659c8c52d3064c3167b81f70b5f3faaa6ac8197bd6f1502202188da23376d4aefc8b22ed0cfd75b5bea1005176da57bf48fdf3d1cbfb62f1801feffffff0200286bee0000000017a9147bce15d808e4081c1534124b74fac037823ce9bb8764bb9a3b0000000017a9147dcce1af9ed7f4969ca90e0b8b7da54151af52698765000000", + "000000205ad796d5f4b9e84240d9bd1c3fde4be025f8e9fe40b151bc6b69b5a97f84bf0e13dc18a9a44b7b0591453864cc5571640a336c4bef372ed3553f140d6196222034e7cd5b67000000ffff7f200000000004020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401670101ffffffff021cd0062a010000002321038e82f1106b3bfba6084df0aeaa66c2ed083a50692d8b24f2ff60c686f6ba0270ac0000000000000000266a24aa21a9ed94fd2d67417ce1ab315d4889011974656643c81c05cad39114627fe088d9ef0c01200000000000000000000000000000000000000000000000000000000000000000000000000200000000010112baf06cba45ec01ffc824bb706a0d86df973e23a6c5f8e33a98cbaff810c809010000001716001405f5613219f0ca57032d7b4fd553f130db9c19c1feffffff02781ef5050000000017a91499f7799c62182646205d6e0b72365c0371a355048764daa4350000000017a9146c8df2bc977fcdd9601adfc47dd4b308fabbb34b8702473044022079b90c92c2f9a34204cae9b5967ec912697217b4f41e1fd81c09b1ef275ed23302205b2e1e776b143548f16b32c437db6e61534b0b4a4277a6b7ad51fb0ceb9a8102012102666a9aaf27bd576dce8aa4c569415230a1f9a15945fbaa9cff3694d1eb8007ef0300000002000000016d388149707693e39366b927179a5cb177c8f34b4741246c8d68e80f699d7e75000000004847304402202b00610017361e8bc9495c72cc19e31530bf04b011f3ccc9a7ece8e912b056360220496a53b28c1019bc04deed92ce6c4020014b652205d981232ec5d4f09590679201feffffff0200ca9a3b0000000017a91476317b9ead98c95c8c0a859c4c1778ec3fe891de8764196bee0000000017a914afc78d417715d14cd4305899613326e1d6fb851f87660000000200000000010112baf06cba45ec01ffc824bb706a0d86df973e23a6c5f8e33a98cbaff810c8090000000017160014b7212419a8ddd9143ddea65774cdabf21590753cfeffffff0208bd9a3b0000000017a9142de6a5234e065782a9591fece2793b50ac2d096b87005ed0b20000000017a9145e6ba3e782edee129e04ae9311f685b8bb9fed4e8702473044022066e069c23e2692a911fdc82a73827ac8defac637c05bb4c0d4a41cef20241ed3022032cbdd16d41ac4a5b200142099081293ebe87454646cf4a0f93068517d429e35012102c0c101bdc0865137092eecb00d7dd3ad1a7309dfcdd93ec51523a093c6c4983266000000" ], - "mocktime": 1539452919, + "mocktime": 1540220706, "stats": [ { "avgfee": 0, "avgfeerate": 0, "avgtxsize": 0, - "blockhash": "4d0d269cbd6d530952adb1e5793c77f650220fc0108306099721415c930f32fe", + "blockhash": "4a96cc0b92a263151febbf0d553655c31895a2e7d3ffe2147c9af0e489665f59", "feerate_percentiles": [ 0, 0, @@ -125,7 +125,7 @@ "maxfeerate": 0, "maxtxsize": 0, "medianfee": 0, - "mediantime": 1539452936, + "mediantime": 1540220723, "mediantxsize": 0, "minfee": 0, "minfeerate": 0, @@ -135,7 +135,7 @@ "swtotal_size": 0, "swtotal_weight": 0, "swtxs": 0, - "time": 1539452937, + "time": 1540220724, "total_out": 0, "total_size": 0, "total_weight": 0, @@ -148,7 +148,7 @@ "avgfee": 3740, "avgfeerate": 20, "avgtxsize": 187, - "blockhash": "4ffb56a634ede6abbf49a8911b2eafc1fe3a4fd76a2c070f8149beafdf6e4bcd", + "blockhash": "0ebf847fa9b5696bbc51b140fee9f825e04bde3f1cbdd94042e8b9f4d596d75a", "feerate_percentiles": [ 20, 20, @@ -162,7 +162,7 @@ "maxfeerate": 20, "maxtxsize": 187, "medianfee": 3740, - "mediantime": 1539452936, + "mediantime": 1540220723, "mediantxsize": 187, "minfee": 3740, "minfeerate": 20, @@ -172,7 +172,7 @@ "swtotal_size": 0, "swtotal_weight": 0, "swtxs": 0, - "time": 1539452937, + "time": 1540220724, "total_out": 4999996260, "total_size": 187, "total_weight": 748, @@ -185,7 +185,7 @@ "avgfee": 18953, "avgfeerate": 109, "avgtxsize": 227, - "blockhash": "212bc4fff83c9c749d637e82a0a4336b6bbd594a43d269ecbf87832499761cc0", + "blockhash": "38f1b14e43caff5921cc979407cf5628621fd64deab0353768667e0139750330", "feerate_percentiles": [ 20, 20, @@ -199,7 +199,7 @@ "maxfeerate": 301, "maxtxsize": 247, "medianfee": 3740, - "mediantime": 1539452937, + "mediantime": 1540220724, "mediantxsize": 247, "minfee": 3320, "minfeerate": 20, @@ -209,7 +209,7 @@ "swtotal_size": 494, "swtotal_weight": 1322, "swtxs": 2, - "time": 1539452937, + "time": 1540220724, "total_out": 9999939400, "total_size": 681, "total_weight": 2070, diff --git a/test/functional/example_test.py b/test/functional/example_test.py index 332fec97369..66949b24a9e 100755 --- a/test/functional/example_test.py +++ b/test/functional/example_test.py @@ -166,7 +166,7 @@ def run_test(self): # Use the mininode and blocktools functionality to manually build a block # Calling the generate() rpc is easier, but this allows us to exactly # control the blocks and transactions. - block = create_block(self.tip, create_coinbase(height), self.block_time) + block = create_block(self.tip, create_coinbase(height+1), self.block_time) block.solve() block_message = msg_block(block) # Send message is used to send a P2P message to the node over our P2PInterface diff --git a/test/functional/feature_assumevalid.py b/test/functional/feature_assumevalid.py index 3d0467038d4..efdb3af0e45 100755 --- a/test/functional/feature_assumevalid.py +++ b/test/functional/feature_assumevalid.py @@ -109,7 +109,7 @@ def run_test(self): coinbase_pubkey = coinbase_key.get_pubkey() # Create the first block with a coinbase output to our key - height = 1 + height = self.nodes[0].getblockcount() + 1 block = create_block(self.tip, create_coinbase(height, coinbase_pubkey), self.block_time) self.blocks.append(block) self.block_time += 1 diff --git a/test/functional/feature_block.py b/test/functional/feature_block.py index 79ed9028716..6486d7c66ba 100755 --- a/test/functional/feature_block.py +++ b/test/functional/feature_block.py @@ -535,6 +535,7 @@ def run_test(self): b44.hashPrevBlock = self.tip.sha256 b44.nBits = 0x207fffff b44.vtx.append(coinbase) + b44.block_height = height b44.hashMerkleRoot = b44.calc_merkle_root() b44.solve() self.tip = b44 @@ -549,6 +550,7 @@ def run_test(self): b45.hashPrevBlock = self.tip.sha256 b45.nBits = 0x207fffff b45.vtx.append(non_coinbase) + b45.block_height = height+1 b45.hashMerkleRoot = b45.calc_merkle_root() b45.calc_sha256() b45.solve() @@ -564,6 +566,7 @@ def run_test(self): b46.hashPrevBlock = b44.sha256 b46.nBits = 0x207fffff b46.vtx = [] + b46.block_height = height+1 b46.hashMerkleRoot = 0 b46.solve() self.block_heights[b46.sha256] = self.block_heights[b44.sha256] + 1 diff --git a/test/functional/feature_block_subsidy.py b/test/functional/feature_block_subsidy.py index 8eafef2d0cc..4da1d075db7 100755 --- a/test/functional/feature_block_subsidy.py +++ b/test/functional/feature_block_subsidy.py @@ -60,7 +60,7 @@ def run_test(self): tmpl = self.nodes[0].getblocktemplate() # Template with invalid amount(50*COIN) will be invalid in both - coinbase_tx = create_coinbase(height=int(tmpl["height"]) + 1) + coinbase_tx = create_coinbase(height=int(tmpl["height"])) block = CBlock() block.nVersion = tmpl["version"] @@ -68,6 +68,7 @@ def run_test(self): block.nTime = tmpl["curtime"] block.nBits = int(tmpl["bits"], 16) block.nNonce = 0 + block.block_height = int(tmpl["height"]) block.vtx = [coinbase_tx] assert_template(self.nodes[0], block, "bad-cb-amount") diff --git a/test/functional/feature_mandatory_coinbase.py b/test/functional/feature_mandatory_coinbase.py index 0cca617bd1a..253b9387270 100755 --- a/test/functional/feature_mandatory_coinbase.py +++ b/test/functional/feature_mandatory_coinbase.py @@ -51,7 +51,7 @@ def run_test(self): tmpl = node1.getblocktemplate() # We make a block with OP_TRUE coinbase output that will fail on node0 - coinbase_tx = create_coinbase(height=int(tmpl["height"]) + 1) + coinbase_tx = create_coinbase(height=int(tmpl["height"])) # sequence numbers must not be max for nLockTime to have effect coinbase_tx.vin[0].nSequence = 2 ** 32 - 2 coinbase_tx.rehash() @@ -63,6 +63,7 @@ def run_test(self): block.nBits = int(tmpl["bits"], 16) block.nNonce = 0 block.vtx = [coinbase_tx] + block.block_height = int(tmpl["height"]) self.log.info("getblocktemplate: Test block on both nodes") assert_equal(node0.submitblock(b2x(block.serialize())), 'invalid') diff --git a/test/functional/interface_rest.py b/test/functional/interface_rest.py index 41a1b4a35df..423e0b02b33 100755 --- a/test/functional/interface_rest.py +++ b/test/functional/interface_rest.py @@ -200,14 +200,14 @@ def run_test(self): # Check binary format response = self.test_rest_request("/block/{}".format(bb_hash), req_type=ReqType.BIN, ret_type=RetType.OBJ) - assert_greater_than(int(response.getheader('content-length')), 80) + assert_greater_than(int(response.getheader('content-length')), 84) response_bytes = response.read() # Compare with block header response_header = self.test_rest_request("/headers/1/{}".format(bb_hash), req_type=ReqType.BIN, ret_type=RetType.OBJ) - assert_equal(int(response_header.getheader('content-length')), 80) + assert_equal(int(response_header.getheader('content-length')), 84) response_header_bytes = response_header.read() - assert_equal(response_bytes[:80], response_header_bytes) + assert_equal(response_bytes[:84], response_header_bytes) # Check block hex format response_hex = self.test_rest_request("/block/{}".format(bb_hash), req_type=ReqType.HEX, ret_type=RetType.OBJ) @@ -218,8 +218,8 @@ def run_test(self): # Compare with hex block header response_header_hex = self.test_rest_request("/headers/1/{}".format(bb_hash), req_type=ReqType.HEX, ret_type=RetType.OBJ) assert_greater_than(int(response_header_hex.getheader('content-length')), 160) - response_header_hex_bytes = response_header_hex.read(160) - assert_equal(binascii.hexlify(response_bytes[:80]), response_header_hex_bytes) + response_header_hex_bytes = response_header_hex.read(168) + assert_equal(binascii.hexlify(response_bytes[:84]), response_header_hex_bytes) # Check json format block_json_obj = self.test_rest_request("/block/{}".format(bb_hash)) diff --git a/test/functional/interface_zmq.py b/test/functional/interface_zmq.py index 72de6962590..c032c967d28 100755 --- a/test/functional/interface_zmq.py +++ b/test/functional/interface_zmq.py @@ -96,7 +96,7 @@ def _zmq_test(self): # Should receive the generated raw block. block = self.rawblock.receive() - assert_equal(genhashes[x], bytes_to_hex_str(hash256(block[:80]))) + assert_equal(genhashes[x], bytes_to_hex_str(hash256(block[:84]))) self.log.info("Wait for tx from second node") payment_txid = self.nodes[1].sendtoaddress(self.nodes[0].getnewaddress(), 1.0) diff --git a/test/functional/mining_basic.py b/test/functional/mining_basic.py index a99c2fc8d4d..87acbbad88c 100755 --- a/test/functional/mining_basic.py +++ b/test/functional/mining_basic.py @@ -60,6 +60,7 @@ def run_test(self): block.nVersion = tmpl["version"] block.hashPrevBlock = int(tmpl["previousblockhash"], 16) block.nTime = tmpl["curtime"] + block.block_height = node.getblockcount()+1 block.nBits = int(tmpl["bits"], 16) block.nNonce = 0 block.vtx = [coinbase_tx] @@ -103,7 +104,7 @@ def run_test(self): self.log.info("getblocktemplate: Test bad tx count") # The tx count is immediately after the block header - TX_COUNT_OFFSET = 80 + TX_COUNT_OFFSET = 80+4 # height is extra 4 bad_block_sn = bytearray(block.serialize()) assert_equal(bad_block_sn[TX_COUNT_OFFSET], 1) bad_block_sn[TX_COUNT_OFFSET] += 1 diff --git a/test/functional/p2p_compactblocks.py b/test/functional/p2p_compactblocks.py index 5cec5dc6f01..52134a816db 100755 --- a/test/functional/p2p_compactblocks.py +++ b/test/functional/p2p_compactblocks.py @@ -655,6 +655,7 @@ def test_compactblocks_not_at_tip(self, node, test_node): hashPrevBlock = int(node.getblockhash(cur_height-5), 16) block = self.build_block_on_tip(node) block.hashPrevBlock = hashPrevBlock + block.block_height = cur_height-4 block.solve() comp_block = HeaderAndShortIDs() diff --git a/test/functional/p2p_sendheaders.py b/test/functional/p2p_sendheaders.py index 9cc496d510e..1b7ef15c0cd 100755 --- a/test/functional/p2p_sendheaders.py +++ b/test/functional/p2p_sendheaders.py @@ -489,7 +489,7 @@ def test_nonnull_locators(self, test_node, inv_node): # Now announce a header that forks the last two blocks tip = blocks[0].sha256 - height -= 1 + height -= 2 blocks = [] # Create extra blocks for later diff --git a/test/functional/test_framework/blocktools.py b/test/functional/test_framework/blocktools.py index 987ade4044f..2094d7baa1d 100644 --- a/test/functional/test_framework/blocktools.py +++ b/test/functional/test_framework/blocktools.py @@ -30,6 +30,7 @@ ) from .script import ( CScript, + CScriptNum, OP_0, OP_1, OP_CHECKMULTISIG, @@ -44,6 +45,10 @@ # From BIP141 WITNESS_COMMITMENT_HEADER = b"\xaa\x21\xa9\xed" +# Assumes a BIP34 valid commitment exists +def get_coinbase_height(coinbase): + return CScriptNum.decode(coinbase.vin[0].scriptSig) + def create_block(hashprev, coinbase, ntime=None): """Create a block (with regtest difficulty).""" block = CBlock() @@ -52,6 +57,7 @@ def create_block(hashprev, coinbase, ntime=None): block.nTime = int(time.time() + 600) else: block.nTime = ntime + block.block_height = get_coinbase_height(coinbase) block.hashPrevBlock = hashprev block.nBits = 0x207fffff # difficulty retargeting is disabled in REGTEST chainparams block.vtx.append(coinbase) diff --git a/test/functional/test_framework/messages.py b/test/functional/test_framework/messages.py index 7276f6b450b..465cfca5cf3 100755 --- a/test/functional/test_framework/messages.py +++ b/test/functional/test_framework/messages.py @@ -505,6 +505,7 @@ def __init__(self, header=None): self.hashPrevBlock = header.hashPrevBlock self.hashMerkleRoot = header.hashMerkleRoot self.nTime = header.nTime + self.block_height = header.block_height self.nBits = header.nBits self.nNonce = header.nNonce self.sha256 = header.sha256 @@ -516,6 +517,7 @@ def set_null(self): self.hashPrevBlock = 0 self.hashMerkleRoot = 0 self.nTime = 0 + self.block_height = 0 self.nBits = 0 self.nNonce = 0 self.sha256 = None @@ -526,6 +528,7 @@ def deserialize(self, f): self.hashPrevBlock = deser_uint256(f) self.hashMerkleRoot = deser_uint256(f) self.nTime = struct.unpack(">= 8 @@ -382,6 +383,22 @@ def encode(obj): r[-1] |= 0x80 return bytes([len(r)]) + r + @staticmethod + def decode(vch): + # We assume valid push_size and minimal encoding + value = vch[1:] + # Mask for all but the highest result bit + num_mask = (2**(len(value)*8) - 1) >> 1 + if len(value) == 0: + return 0 + else : + result = 0 + for i in range(len(value)): + result |= int(value[i]) << 8*i + if value[-1] >= 0x80: + result &= num_mask + result *= -1 + return result class CScript(bytes): """Serialized script